上一篇
Oracle9i安装失败怎么办?详细配置教程与常见问题解决
- 虚拟主机
- 2026-02-12
- 4999
配置 Oracle 9i 是一项相对复杂的任务,因为它是一个较老的版本(发布于 2000-2001 年),现代操作系统和硬件可能不完全兼容,且官方早已停止支持,存在安全隐患。强烈建议在非生产环境(如虚拟机)中进行测试,并优先考虑升级到受支持的版本(如 19c 或 23c)。
以下是 Oracle 9i (9.2.0.x) 在 Linux/Unix 类系统上安装和基本配置的核心步骤:
关键前提与警告
- 系统要求:
- 操作系统: 仅支持特定的旧版本(如 Red Hat Linux 7.1-7.3, 8.0; SuSE SLES 7, 8; Solaris 8, 9 SPARC/x86; HP-UX 11.0, 11i; AIX 4.3.3, 5L)。不支持现代 Linux 发行版(如 CentOS 7/8, Ubuntu 20.04+)或 Windows 10/11。
- 内核参数: 需要调整共享内存、信号量、文件句柄限制等 (/etc/sysctl.conf, /etc/security/limits.conf)。
- 软件包: 需要特定的兼容包(如 compat-libstdc++, compat-gcc, compat-glibc, binutils, make, gcc, libaio 等旧版本),务必参考对应 OS 版本的安装指南。
- 内存: 至少 512MB RAM (推荐 1GB+),交换空间通常为 RAM 的 1.5-2 倍。
- 磁盘空间: 软件文件约 1.5-2GB,数据库文件根据需求而定(初始安装至少 1GB)。
- 用户和组: 需要创建 oracle 用户和 dba、oinstall 组。
- 获取软件: Oracle 9i 已无法从官方渠道下载,你需要拥有合法的历史 License 并从归档介质或可信来源获取安装文件(通常包含 3 张 CD 或 1 个 DVD 的 ISO)。
- 停止支持: 没有安全补丁! 暴露在公网或处理敏感数据极其危险。
- 兼容性问题: 在现代硬件(尤其是 64 位 CPU)和操作系统上安装会遇到大量库依赖、编译器、内核兼容性问题,解决起来非常耗时。
核心配置步骤
-
准备操作系统环境:
- 以 root 登录。
- 创建用户和组: groupadd oinstall groupadd dba groupadd oper # (可选) useradd -g oinstall -G dba[,oper] oracle passwd oracle
- 创建 Oracle 基目录 (ORACLE_BASE) 和软件目录 (ORACLE_HOME): mkdir -p /u01/app/oracle mkdir -p /u01/app/oracle/product/9.2.0 chown -R oracle:oinstall /u01/app chmod -R 775 /u01/app
- 配置内核参数 (/etc/sysctl.conf),示例值(必须根据具体 OS 文档调整!): kernel.shmall = 2097152
kernel.shmmax = 2147483648 # 通常为物理内存一半或更多
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
运行 sysctl -p 应用更改。
- 配置用户资源限制 (/etc/security/limits.conf): oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 # 或 10240-32768 之间
- 安装必需的兼容包 (根据你的 OS 版本查找确切包名)。
- 设置 oracle 用户环境变量 (.bash_profile 或 .profile): export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_SID=orcl # 你的实例名
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
# 设置正确的语言环境(避免安装界面乱码)
export LANG=en_US.UTF-8 # 或 C
export LC_ALL=en_US.UTF-8 # 或 C
运行 source ~/.bash_profile 使配置生效。

-
挂载安装介质:
- 将安装 CD/DVD 或 ISO 文件挂载到一个目录(如 /mnt/cdrom),确保 oracle 用户有读取权限。
-
启动 Oracle Universal Installer (OUI):
- 切换到 oracle 用户: su - oracle
- 导航到挂载点,通常是 Disk1 目录: cd /mnt/cdrom/Disk1
- 启动安装程序: ./runInstaller
- 如果遇到与 jre 或 libXp 相关的错误,需要安装旧版兼容包或设置 DISPLAY 变量(用于远程图形界面)并确保 X11 转发正常工作(如使用 ssh -X 或 ssh -Y),有时需要手动指定 OUI 使用的 JRE 路径(通过 -jreLoc 参数)。
-
图形化安装向导:

- 欢迎界面: 点击下一步。
- 文件位置: 源路径通常自动识别(指向 /mnt/cdrom/Disk1/stage/products.jar),目标路径输入 $ORACLE_HOME (如 /u01/app/oracle/product/9.2.0)。
- 可用产品: 选择 Oracle9i Database 9.2.0.x.x。
- 安装类型: 通常选择 Enterprise Edition,对于学习或简单测试,Standard Edition 也可。
- 数据库配置: 有两个主要选项:
- 通用: 创建一个预配置的通用数据库 (包含数据字典等)。
- 自定义: 允许更精细地控制数据库创建参数(高级用户)。建议初次安装选“通用”。
- 数据库标识: 输入 全局数据库名 (如 orcl.yourdomain.com) 和 Oracle 系统标识符 (SID) (如 orcl),确保 SID 与 .bash_profile 中的 ORACLE_SID 一致。
- 数据库文件位置: 指定数据库文件(数据文件、控制文件、重做日志)的存储位置,默认在 $ORACLE_BASE/oradata/$ORACLE_SID,确保该目录存在且 oracle 用户有读写权限。
- 数据库字符集: 选择适合你应用的字符集。UTF8 (AL32UTF8) 是通用性最好的选择,注意:9i 的 Unicode 支持是 UTF8,不是后来的 AL32UTF8(但名称可能仍显示为 UTF8)。
- 检查配置摘要,点击 安装。
- 安装过程: OUI 开始安装软件文件,这需要一段时间。
- 配置工具: 软件安装完成后,OUI 会自动启动 Oracle Net Configuration Assistant (NETCA) 和 Oracle Database Configuration Assistant (DBCA)。
- NETCA: 配置监听器 (Listener),通常接受默认设置(监听器名称 LISTENER,端口 1521)即可。
- DBCA: 根据你之前的选择(通用或自定义)创建数据库实例,你需要设置:
- SYS 和 SYSTEM 密码: 牢记这些关键的管理员密码!
- 数据库创建选项: 如果是自定义安装,可以配置内存分配(SGA, PGA)、数据库块大小、进程数、归档模式、示例模式 (SCOTT/TIGER) 等。
- 执行配置脚本: 在安装和数据库创建的最后阶段,OUI 会提示你以 root 用户身份执行两个脚本: /u01/app/oracle/product/9.2.0/root.sh
# 可能还有一个在 $ORACLE_HOME/network/install 下的脚本(较新版本常见,9i 可能没有)
打开另一个终端窗口,切换到 root 用户,依次执行这些脚本。
-
安装后验证:
- 检查监听器状态: lsnrctl status
应显示 LISTENER 正在运行并监听 1521 端口。

- 检查数据库状态 (以 oracle 用户): sqlplus / as sysdba
SQL> SELECT status FROM v$instance;
应返回 OPEN。
- 尝试连接: sqlplus system/your_system_password@orcl # 使用你的实例名和密码
-
基本网络配置 (可选但推荐):
- 监听器 (listener.ora): 通常位于 $ORACLE_HOME/network/admin,默认配置通常够用,使用 lsnrctl stop / lsnrctl start / lsnrctl reload 管理。
- 本地网络服务名 (tnsnames.ora): 在同一目录下,为你的数据库添加一个条目,方便客户端连接: ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname_or_ip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.yourdomain.com) # 必须与创建数据库时的全局数据库名一致 ) )
使用 tnsping ORCL 测试配置。
- DISPLAY 未设置 / 无法打开显示: 确保在支持图形界面的终端运行 runInstaller,并正确设置了 DISPLAY 环境变量(如 export DISPLAY=:0.0 或远程主机的 IP)。
- libXp.so.6 等库缺失: 安装 libXp 或 compat-libXp 等兼容包。
- jre / java 错误: 安装旧版 JDK/JRE (如 1.3.1 或 1.4.2),并使用 runInstaller -jreLoc /path/to/old/jre 启动 OUI。
- ins_oemagent.mk 链接错误: 在运行 root.sh 之前,编辑 $ORACLE_HOME/network/lib/ins_oemagent.mk,找到 $(MK_EMAGENT_NMECTL) 这一行,在 -lnmz 后面添加 -ldl(变成 $(MK_EMAGENT_NMECTL) -lnmz -ldl)。
- 监听器无法启动: 检查端口 1521 是否被占用 (netstat -tulnp | grep 1521),检查 listener.ora 语法错误,检查 $ORACLE_HOME/bin/tnslsnr 权限。
- 数据库创建失败: 检查 $ORACLE_BASE/admin/$ORACLE_SID/create 或 $ORACLE_BASE/cfgtoollogs/dbca/$ORACLE_SID 下的日志文件,常见原因包括:空间不足、权限问题、参数设置不当、字符集问题。
- 内存参数 (init.ora): 9i 主要使用文本初始化参数文件 init$ORACLE_SID.ora (位于 $ORACLE_HOME/dbs),修改后需要重启实例生效,注意 shared_pool_size, db_cache_size, pga_aggregate_target (9i 引入) 等关键参数。
- 仅供学习/测试/遗留系统维护: 绝对不要 在生产环境或暴露于互联网的环境中使用 Oracle 9i。
- 文档: 务必找到与你目标操作系统版本对应的 Oracle9i Database Installation Guide 官方文档(PDF),这是最权威的参考,包含所有特定于平台的先决条件和步骤。
- 耐心: 在现代系统上安装 9i 会遇到许多兼容性问题,需要耐心查找解决方案(通常涉及安装旧版库、修改环境变量、打补丁甚至修改安装脚本)。
常见问题与注意事项
重要提醒
再次强调,强烈建议将任何需要 Oracle 数据库的应用迁移到受支持的版本上。 配置 Oracle 9i 在今天更多是一种技术挑战或历史回顾,而非实际部署的推荐方案。
- 检查监听器状态: lsnrctl status