一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

如何在没有图形化界面的Linux服务器上安装Oracle 11g?

时间:2026-08-16 10:06:49 编辑:袖梨 来源:一聚教程网

能装,但必须用静默模式;关键在于环境配置精准、响应文件字段无误、依赖包(含i686位)齐全、权限与内核参数到位,尤其注意pdksh替换、libaio位数匹配、ORACLE_HOSTNAME与hosts一致、root.sh执行及日志排查。

能装,但必须用静默模式(silent),图形界面缺失不是障碍,真正卡住人的往往是环境没配对、响应文件写错、权限或内核参数漏改。

检查依赖包是否全,尤其注意 pdksh 和 libaio 的位数

Oracle 11g R2 在 CentOS 7 上要求所有依赖包都是 x86_64 版本,但部分包(如 compat-libstdc++-33libaio)仍需安装 i686 版本,否则运行 runInstaller 会直接报 libaio.so.1: cannot open shared object file 或提示缺少 32 位库。

  1. yum install -y binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf-devel gcc gcc-c++ glibc-devel ksh libaio libaio.i686 libaio-devel libaio-devel.i686 unixODBC unixODBC-devel
  2. kshpdksh 冲突:CentOS 7 自带 ksh,但 Oracle 11g 要求 pdksh;先卸载再装:rpm -e --nodeps ksh,再从 CentOS 5 源下载安装:wget http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm && rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
  3. 别信 yum groupinstall "Development Tools" —— 它不包含 compat-libstdc++-33.i686 这类关键兼容包

响应文件 db_install.rsp 最容易填错的 4 个字段

静默安装成败几乎全系于此文件。最新模板里很多字段默认为空或注释掉,不手动填就会中断。

  1. oracle.install.option=INSTALL_DB_SWONLY(只装软件)或 INSTALL_DB_AND_CONFIG(装软件+建库),别写成 INSTALL_DB_SWONLY (末尾空格会导致解析失败)
  2. ORACLE_HOSTNAME 必须和 /etc/hosts 中解析一致,且不能含下划线(ora_db ❌,oradb ✅)
  3. oracle.install.db.config.starterdb.type=GENERAL_PURPOSE,若选 DATA_WAREHOUSE 却没调大内存参数,建库时会因 SGA_TARGET 不足失败
  4. oracle.install.db.config.starterdb.characterSet=AL32UTF8,别用 ZHS16GBK —— 后者在静默模式下常触发字符集校验失败,尤其当系统 locale 是 en_US.UTF-8

runInstaller 执行后卡在 92% 或报 SEVERE: [FATAL] [INS-32012] Cannot create directory

这不是磁盘满,而是 oracle 用户对目标路径无写权限,或 ORACLE_BASE 目录未提前创建并赋权。

  1. 必须用 root 提前建目录并授权:mkdir -p /u01/app/oracle && chown -R oracle:oinstall /u01/app/oracle && chmod -R 775 /u01/app/oracle
  2. runInstaller 必须用 oracle 用户执行,且该用户 .bash_profile 中已正确导出 ORACLE_BASEORACLE_HOMEDISPLAY(设为空或删掉,避免 X11 干扰)
  3. 若卡在 92%,立刻查 $ORACLE_BASE/cfgtoollogs/dbca 下最新日志,常见原因是监听器端口被占(netstat -tuln | grep :1521)或 listener.ora 路径写错

装完启动失败:ORA-01078、LRM-00109 找不到参数文件

静默建库后,$ORACLE_HOME/dbs 下没有 init$ORACLE_SID.ora,或者内容为空 —— 这是响应文件中 oracle.install.db.config.starterdb.globalDBNameoracle.install.db.config.starterdb.sid 不一致导致的。

  1. 确认两者值完全相同(如都为 orcl),否则实例启动时找不到对应 init 文件
  2. 手动补救:cp $ORACLE_HOME/dbs/init.ora $ORACLE_HOME/dbs/initorcl.ora,再编辑该文件,把 db_name= 行改成实际 SID
  3. 别跳过 root.sh:它负责写入 oraInventory 权限和 root 级配置,漏执行会导致后续 sqlplus / as sysdbaORA-01031: insufficient privileges

真正麻烦的从来不是命令敲多少行,而是某处少了个点、多了一行空格、或者 /etc/hosts 里 IP 和主机名没对上 —— 静默安装没反馈,得靠日志倒推,建议每步做完都验证:用 id oracle 看组、env | grep ORA 看变量、ls -ld $ORACLE_BASE 看权限。

热门栏目