《Oracle 11g RAC 在 CentOS 5.5 的安装日志》
一、引言
Oracle Real Application Clusters(RAC)作为高可用性数据库解决方案,通过多节点共享存储架构实现负载均衡与故障自动切换。本日志详细记录在CentOS 5.5(x86_64)环境下部署Oracle 11g RAC的全过程,涵盖系统配置、软件安装、集群搭建及验证等关键步骤,为后续运维提供技术参考。
二、环境准备
1. 硬件配置
两台物理服务器(Node1、Node2),每台配置:
- CPU:2×四核Intel Xeon E5620(16逻辑核)
- 内存:32GB DDR3
- 存储:共享磁盘阵列(LUN划分见下文)
- 网络:双网卡(公网1Gbps、私网10Gbps)
2. 操作系统配置
安装CentOS 5.5 x86_64,执行以下初始化操作:
# 修改主机名
echo "NODE1" > /etc/sysconfig/network
hostname NODE1
# 配置/etc/hosts(两节点同步)
192.168.1.101 NODE1
192.168.1.102 NODE2
192.168.2.101 NODE1-PRIV
192.168.2.102 NODE2-PRIV
# 禁用SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 配置NTP同步
echo "server 192.168.1.1 iburst" >> /etc/ntp.conf
service ntpd start
chkconfig ntpd on
3. 存储配置
使用ASM管理共享存储,划分三个LUN:
- OCR/Voting Disk:10GB(镜像)
- DATA:100GB(条带化)
- FRA:50GB(条带化)
通过multipath配置多路径访问:
# 安装multipath
yum install device-mapper-multipath
# 配置/etc/multipath.conf
devices {
device {
vendor "COMPAQ"
product "HSV110"
path_grouping_policy multibus
failback immediate
no_path_retry 5
}
}
# 启动服务
service multipathd start
三、安装前依赖检查
1. 安装必要软件包
yum install -y binutils compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel \
ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat \
unixODBC unixODBC-devel
2. 用户与组配置
# 创建用户组
groupadd oinstall
groupadd dba
groupadd oper
# 创建oracle用户
useradd -g oinstall -G dba,oper oracle
echo "oracle123" | passwd oracle --stdin
3. 内核参数调整
修改/etc/sysctl.conf:
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
执行sysctl -p生效。
4. 用户限制配置
修改/etc/security/limits.conf:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
四、安装Oracle Clusterware
1. 共享存储准备
使用ASMLib管理磁盘:
# 安装ASMLib
rpm -ivh oracleasmlib-2.0.4-1.el5.x86_64.rpm
rpm -ivh oracleasm-support-2.1.8-1.el5.x86_64.rpm
# 加载内核模块
modprobe oracleasm
echo "oracleasm" >> /etc/modules.conf
# 配置ASMLib
/etc/init.d/oracleasm configure -u oracle -g oinstall -e YES
# 创建磁盘组
/etc/init.d/oracleasm createdisk OCR_DISK1 /dev/mapper/mpath1
/etc/init.d/oracleasm createdisk OCR_DISK2 /dev/mapper/mpath2
/etc/init.d/oracleasm createdisk DATA_DISK1 /dev/mapper/mpath3
/etc/init.d/oracleasm createdisk FRA_DISK1 /dev/mapper/mpath4
2. 安装Clusterware软件
上传安装包至/tmp/oracle,解压后执行:
cd /tmp/oracle/clusterware
./runInstaller -ignoreSysPrereqs -responseFile /tmp/oracle/cw_response.rsp
响应文件关键参数:
[UNIX_GROUP_NAME]
oinstall
[INSTALL_TYPE]
CRS_SWONLY
[ORACLE_BASE]
/u01/app/oracle
[ORACLE_HOME]
/u01/app/11.2.0/grid
[CLUSTER_NODES]
NODE1,NODE2
[NETWORK_INTERFACE_LIST]
eth1:192.168.1.0:1,eth2:192.168.2.0:2
[STORAGE_OPTION]
ASM_STORAGE
[ASM_DISK_GROUP]
OCR:OCR_DISK1,OCR_DISK2:MIRROR
DATA:DATA_DISK1:EXTERNAL
FRA:FRA_DISK1:EXTERNAL
3. 执行root脚本
在两节点依次执行:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/11.2.0/grid/root.sh
五、安装Oracle Database软件
1. 创建数据库响应文件
[ORACLE_INSTALL_OPTION]
INSTALL_DB_SWONLY
[UNIX_GROUP_NAME]
oinstall
[ORACLE_HOME]
/u01/app/oracle/product/11.2.0/dbhome_1
[ORACLE_BASE]
/u01/app/oracle
[oracle.install.db.InstallEdition]
EE
[ORACLE_HOSTNAME]
NODE1
[CLUSTER_NODES]
NODE1,NODE2
[DATABASE_TYPE]
MULTIPURPOSE
[CONFIGURE_SHARED_FILESYSTEM]
false
[STORAGE_TYPE]
ASM_STORAGE
[RECOVERY_AREA_DESTINATION]
+FRA
[CHARACTER_SET]
AL32UTF8
[NATIONALCHARACTER_SET]
UTF8
2. 执行数据库安装
cd /tmp/oracle/database
./runInstaller -ignoreSysPrereqs -responseFile /tmp/oracle/db_response.rsp
3. 执行数据库配置脚本
在两节点运行:
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh
六、创建RAC数据库
1. 使用DBCA创建数据库
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName ORACLRAC \
-sid ORACLRAC1 \
-responseFileName /tmp/oracle/dbca_response.rsp \
-sysPassword oracle123 \
-systemPassword oracle123 \
-emConfiguration LOCAL \
-storageType ASM \
-datafileJunctionPoint +DATA \
-redoLogGroups 3 \
-characterSet AL32UTF8 \
-totalMemory 16384
2. 配置服务资源
# 创建服务
srvctl add service -d ORACLRAC -s SALES_SVC -r PRIMARY -preferred "NODE1,NODE2" \
-available "NODE1,NODE2" -t TAFFY -notify FAN
七、验证部署
1. 集群状态检查
# 检查CRS状态
crsctl check crs
# 预期输出:
# CRS-4638: Oracle High Availability Services is online
# CRS-4537: Cluster Ready Services is online
# CRS-4529: Cluster Synchronization Services is online
# 检查数据库实例
srvctl config database -d ORACLRAC
srvctl status database -d ORACLRAC
2. 负载测试
# 生成测试负载
sqlplus / as sysdba
八、常见问题处理
1. 存储识别失败
问题现象:ASM无法发现磁盘
解决方案:
- 检查oracleasm扫描状态:/etc/init.d/oracleasm listdisks
- 验证多路径配置:multipath -ll
- 重新加载ASMLib:/etc/init.d/oracleasm restart
2. 节点间通信故障
问题现象:CRS-4000错误
解决方案:
- 检查私网连通性:ping NODE1-PRIV
- 验证防火墙设置:iptables -L
- 检查OCR配置:ocrcheck
3. 内存不足警告
问题现象:ORA-04031错误
解决方案:
- 调整SGA/PGA参数:alter system set sga_target=12G scope=spfile;
- 增加共享内存:修改kernel.shmmax参数
- 检查AWE内存配置(32位系统)
九、总结
本次部署成功在CentOS 5.5环境构建Oracle 11g RAC集群,关键经验包括:
- 严格遵循硬件兼容性列表(HCL)
- 采用ASMLib简化存储管理
- 通过响应文件实现自动化安装
- 建立完善的监控告警机制
后续建议:
- 定期执行健康检查脚本
- 配置Data Guard实现灾难恢复
- 升级至Oracle Enterprise Manager 12c进行集中管理
关键词:Oracle 11g RAC、CentOS 5.5、集群安装、ASM存储、高可用性、响应文件、故障排除
简介:本文详细记录在CentOS 5.5系统部署Oracle 11g RAC集群的全过程,涵盖系统配置、软件安装、集群搭建及验证等关键步骤,包含完整的响应文件示例和故障处理方案,为数据库管理员提供可复用的技术参考。