最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何在没有图形化界面的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++-33、libaio)仍需安装 i686 版本,否则运行 runInstaller 会直接报 libaio.so.1: cannot open shared object file 或提示缺少 32 位库。
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-
ksh和pdksh冲突: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 - 别信
yum groupinstall "Development Tools"—— 它不包含compat-libstdc++-33.i686这类关键兼容包
响应文件 db_install.rsp 最容易填错的 4 个字段
静默安装成败几乎全系于此文件。最新模板里很多字段默认为空或注释掉,不手动填就会中断。
-
oracle.install.option=INSTALL_DB_SWONLY(只装软件)或INSTALL_DB_AND_CONFIG(装软件+建库),别写成INSTALL_DB_SWONLY(末尾空格会导致解析失败) -
ORACLE_HOSTNAME必须和/etc/hosts中解析一致,且不能含下划线(ora_db❌,oradb✅) -
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE,若选DATA_WAREHOUSE却没调大内存参数,建库时会因SGA_TARGET不足失败 -
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 目录未提前创建并赋权。
- 必须用
root提前建目录并授权:mkdir -p /u01/app/oracle && chown -R oracle:oinstall /u01/app/oracle && chmod -R 775 /u01/app/oracle -
runInstaller必须用oracle用户执行,且该用户.bash_profile中已正确导出ORACLE_BASE、ORACLE_HOME、DISPLAY(设为空或删掉,避免 X11 干扰) - 若卡在 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.globalDBName 和 oracle.install.db.config.starterdb.sid 不一致导致的。
- 确认两者值完全相同(如都为
orcl),否则实例启动时找不到对应 init 文件 - 手动补救:
cp $ORACLE_HOME/dbs/init.ora $ORACLE_HOME/dbs/initorcl.ora,再编辑该文件,把db_name=行改成实际 SID - 别跳过
root.sh:它负责写入 oraInventory 权限和 root 级配置,漏执行会导致后续sqlplus / as sysdba报ORA-01031: insufficient privileges
真正麻烦的从来不是命令敲多少行,而是某处少了个点、多了一行空格、或者 /etc/hosts 里 IP 和主机名没对上 —— 静默安装没反馈,得靠日志倒推,建议每步做完都验证:用 id oracle 看组、env | grep ORA 看变量、ls -ld $ORACLE_BASE 看权限。