配置 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用户有读取权限。
- 将安装 CD/DVD 或 ISO 文件挂载到一个目录(如
-
启动 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) 等。
- NETCA: 配置监听器 (Listener),通常接受默认设置(监听器名称
- 执行配置脚本: 在安装和数据库创建的最后阶段,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 在今天更多是一种技术挑战或历史回顾,而非实际部署的推荐方案。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/292655.html

