在64位操作系统上安装32位Oracle数据库是很多老业务系统迁移或部署时的常见需求,由于系统架构和软件版本的兼容性问题,安装过程比同架构安装更复杂,需要提前做好环境适配工作。

安装前准备
系统环境检查
首先确认当前系统为64位,同时检查内存、磁盘空间是否满足32位Oracle的最低要求,一般建议内存不低于2G,安装目录所在磁盘剩余空间不低于10G。然后关闭系统防火墙和SELinux,避免安装过程中端口被拦截或者权限被限制。
依赖包安装
32位Oracle需要32位的系统依赖库,以CentOS 7 64位系统为例,需要安装以下依赖:
- glibc.i686
- libX11.i686
- libXau.i686
- libXext.i686
- libXrender.i686
- libXtst.i686
- libaio.i686
- libgcc.i686
- libstdc++.i686
安装命令如下:
# 安装32位依赖包 yum install -y glibc.i686 libX11.i686 libXau.i686 libXext.i686 libXrender.i686 libXtst.i686 libaio.i686 libgcc.i686 libstdc++.i686
创建Oracle用户和用户组
执行以下命令创建专用用户和用户组,避免使用root用户直接安装:
# 创建oinstall和dba用户组 groupadd oinstall groupadd dba # 创建oracle用户并加入用户组 useradd -g oinstall -G dba oracle # 设置oracle用户密码 passwd oracle
安装过程配置
修改内核参数
编辑/etc/sysctl.conf文件,添加以下32位Oracle适配的内核参数:
# Oracle内核参数配置 fs.file-max = 6815744 fs.aio-max-nr = 1048576 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576
执行sysctl -p命令使参数生效。
配置用户环境变量
切换到oracle用户,编辑~/.bash_profile文件,添加以下内容:
# Oracle环境变量配置 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=orcl export PATH=$PATH:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/lib64 # 32位库路径优先 export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH
执行source ~/.bash_profile使环境变量生效。
运行安装程序
将32位Oracle安装包上传到服务器,解压后切换到oracle用户,进入解压目录运行安装脚本:
# 解压安装包 unzip linux_11gR2_database_32bit.zip # 进入安装目录 cd database # 启动安装程序 ./runInstaller
安装过程中注意选择32位对应的安装选项,当提示执行root脚本时,切换到root用户执行对应路径下的脚本即可。
安装后验证
安装完成后,切换到oracle用户,执行以下命令验证数据库是否正常启动:
# 登录sqlplus sqlplus / as sysdba # 启动数据库 startup # 查看数据库版本 select * from v$version;
如果可以正常查询到32位Oracle的版本信息,说明安装成功。
常见问题解决
如果安装过程中提示缺少32位库,检查对应的i686依赖包是否安装完整;如果启动数据库时提示内存相关错误,检查内核参数中的shmmax配置是否符合系统实际内存;如果出现权限错误,检查Oracle安装目录的所属用户是否为oracle:oinstall。