news 2026/5/23 14:48:20

【Oracle】Ubuntu 部署 Oracle 10g 的完整实战复盘

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Oracle】Ubuntu 部署 Oracle 10g 的完整实战复盘

说实话,如果是新项目,我绝对不会首选 Oracle 10g。但工作中你难免会遇到一些老系统的迁移工作,这就没有办法了。之前我也分享过使用 Docker 来进行快速部署,但并不是每个项目都能允许我这样做,因此 Oracle 的 Linux 部署多多少少也要会一点(可能是公司的业务缘故,我参与的项目用 Oracle 的还是比较多)。

但不得不说 Oracle 10g 对系统环境的苛刻程度,反而非常适合用来测试自己的 Linux 基本功。

一、Oracle 部署的难点不在 Oracle

真正的难点在这三点:

  1. Oracle 假设你在用RHEL / CentOS
  2. Ubuntu 的库版本、包名、目录结构都不一样
  3. 安装脚本写死了很多“旧时代假设”

过往的经验告诉我,Oracle 安装失败,80% 是系统没准备好,而不是安装步骤错了。

二、安装前准备

1.操作系统选择

Oracle 10g 对内核和 glibc 非常挑剔。在 Ubuntu 上,我默认遵循三个原则:

  • 尽量使用 LTS 版本
  • 不追新内核(重点)
  • 不混用奇怪的第三方源

2.创建 Oracle 专用用户与用户组

这个是多次惨痛经历换来的教训,不要用 root 跑 Oracle

groupaddoinstallgroupadddbauseradd-g oinstall -G dba oraclepasswdoracle

在 Oracle 的世界里,用户就相当于“安全边界”、“权限模型”和“安装与运行的唯一载体”,这就是底线。

3.目录规划

mkdir-p /u01/app/oraclechown-R oracle:oinstall /u01chmod-R775/u01

永远不用随意路径,免得出现奇奇怪怪的情况

三、内核参数与系统限制

这是最关键、最容易被忽略的一步

1.修改/etc/sysctl.conf

fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 net.ipv4.ip_local_port_range = 9000 65500

然后:

sysctl -p

以上参数不能“照抄”,这是 Oracle 对系统资源的最低预期而已,建议根据用户的实际情况进行配置。

2.用户级限制/etc/security/limits.conf

oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536

如果这里没配置好,那么你会发现你安装的时候虽然能够通过,但数据库启动时会死的很难看。

四、Ubuntu 与 Oracle 依赖冲突(重点)

Oracle 10g 依赖了一堆早已被 Ubuntu 淘汰的库。

我遇到最多的是 libaio、libstdc++5 和 gcc 的版本不匹配问题。

我的解决办法是:

  • 缺什么 → 查包名 → 找 Ubuntu 对应版本
  • 没有 → 用兼容包 / 手动安装
  • 能不用--force就不用

坦白说,有时候真的会被折腾到没脾气,因此现在我是宁可多花时间补依赖,也不轻易破坏系统包管理一致性。

五、Oracle 安装

如果将上面的难关都过了,后面基本上就没什么问题了。

su- oracle ./runInstaller

安装过程我只盯三件事:

  1. 警告(Warning)和错误(Error)
  2. 是否卡在 linking 阶段
  3. 是否提示 kernel / OS 不支持

很多“看起来可怕的警告”,其实都可以忽略的。譬如,系统版本校验失败,swap 大小不满足推荐值等。但当出现“共享内存不足”,“文件句柄不够”、“权限错误”的时候就应该注意了,这些才是致命的。

六、root.sh

安装过程中会提示执行:

/u01/app/oracle/oraInventory/orainstRoot.sh /u01/app/oracle/product/10.2.0/db_1/root.sh

这是我唯一一次允许 root 介入 Oracle 安装流程(这没有办法)。但原则上只执行安装器明确要求的 root 操作,其余一律不要多做。

七、环境变量

oracle用户下的.bash_profile我是这样写的:

exportORACLE_BASE=/u01/app/oracleexportORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1exportORACLE_SID=orclexportPATH=$PATH:$ORACLE_HOME/bin

以前的我会选择将配置拆的稀碎,然后到处引用。经过多年的淬炼,现在的我不追求“灵活”,只追求“可读”、“可复制”、“可复现”。

八、我最怕的几类错误

当出现:

  • ORA-27102: out of memory
  • ORA-01034: ORACLE not available
  • ORA-12541: TNS:no listener

我知道肯定是我系统又没有配置好了,因为这些错误的出现 90% (盲猜)指向:

  • 内核参数
  • 用户限制
  • 环境变量

这意味着我又要重头检查一遍了,艹。

九、真正学到的东西

Oracle 并没有教会我如何使用数据库,它逼着我学会了如何对待一台 Linux 服务器。

从那之后,我对系统的态度不再是“尽量让它跑起来”,而是“在明确理解代价的前提下,让它长期、可控、可恢复地运行”。

这可能是我从 Oracle 安装这件事里,真正带走、并且一直沿用至今的东西。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 13:52:20

基于YOLOv8的校园安全隐患识别系统研究与实现(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于YOLOv8的校园安全隐患识别系统研究与实现 本文提出并实现了一种基于YOLOv8目标检测算法的校园安全隐患识别系统,可对校园场景中6类典型安全隐患(人员摔倒、交通事故、物品破坏、斗殴行为、火灾、盗窃行为)进行自动识别与实时预警 研究过程中,首先构建…

作者头像 李华
网站建设 2026/5/21 9:17:19

SVG静止无功发生器Matlab仿真设计(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

SVG静止无功发生器Matlab仿真设计(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码、算法描述:采用dq旋转坐标轴下的电压电流双闭环控制,同时对dq进行解耦控制。电压外环的作用是稳定直流侧电压750V,电流…

作者头像 李华
网站建设 2026/5/23 9:31:44

救命神器8个一键生成论文工具,继续教育学生轻松搞定论文!

救命神器8个一键生成论文工具,继续教育学生轻松搞定论文! AI 工具如何让论文写作变得轻松高效? 在当今快节奏的学习环境中,继续教育学生常常面临论文写作的挑战。无论是选题、撰写还是降重,每一个环节都可能成为阻碍进…

作者头像 李华
网站建设 2026/5/23 9:41:57

为什么选择BERT-base-chinese?中文预训练优势详解

为什么选择BERT-base-chinese?中文预训练优势详解 1. 这不是普通填空,是真正懂中文的语义推理 你有没有试过让AI补全一句古诗?比如输入“床前明月光,疑是地[MASK]霜”,它能立刻告诉你答案是“上”,而且信…

作者头像 李华
网站建设 2026/5/20 7:08:39

输入图片旋转问题?EXIF信息处理部署方案

输入图片旋转问题?EXIF信息处理部署方案 1. 功能概述 本工具基于阿里达摩院 ModelScope 的 DCT-Net 模型,支持将真人照片转换为卡通风格。在实际使用中,用户上传的图片常因设备拍摄方向不同而出现自动旋转或显示异常的问题——这背后的核心…

作者头像 李华
网站建设 2026/5/22 8:16:30

Live Avatar语音识别预处理:音频降噪与标准化工具推荐

Live Avatar语音识别预处理:音频降噪与标准化工具推荐 1. Live Avatar模型简介与硬件限制现实 Live Avatar是由阿里联合高校开源的数字人模型,专注于高质量语音驱动的视频生成。它能将一段普通录音与人物图像结合,生成口型同步、表情自然的…

作者头像 李华