阅读量:33
CentOS环境下Oracle RAC集群搭建教程
一、前期准备
1. 硬件要求
- 服务器:至少2台(推荐配置:2颗CPU核心、16GB以上内存、300GB以上磁盘空间);
- 共享存储:1台(用于存储数据库文件,如SAN或NAS,确保所有节点可访问);
- 网络:高速以太网(千兆及以上),支持节点间低延迟通信。
2. 软件要求
- 操作系统:CentOS 7.x(64位,推荐最小安装);
- Oracle软件:Oracle 11g/19c RAC安装包(包括Grid Infrastructure和Database软件);
- 依赖包:binutils、compat-libcap1、compat-libstdc+±33、gcc、libaio、libaio-devel等(可通过
yum install批量安装)。
3. 网络规划
- Public IP:服务器物理网卡IP,用于对外提供服务(如
10.0.0.21、10.0.0.22); - Private IP:内网心跳网卡IP,用于节点间通信(如
172.16.1.21、172.16.1.22); - VIP:虚拟IP,与Public IP同网段,用于故障切换(如
10.0.0.23、10.0.0.24); - SCAN IP:集群对外服务的虚拟IP(11g及以上支持,最多3个,如
10.0.0.25)。
二、操作系统配置
1. 基础设置
- 修改主机名:在每台节点上执行
hostnamectl set-hostname <节点名>(如rac1、rac2),并更新/etc/hostname文件; - 关闭防火墙与SELinux:
systemctl stop firewalld && systemctl disable firewalld sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config setenforce 0 - 配置hosts文件:在
/etc/hosts中添加所有节点的IP与别名(包括Public、Private、VIP、SCAN):10.0.0.21 rac1 10.0.0.22 rac2 172.16.1.21 rac1-prv 172.16.1.22 rac2-prv 10.0.0.23 rac1-vip 10.0.0.24 rac2-vip 10.0.0.25 rac-scan
2. 依赖包安装
在每台节点上执行以下命令安装Oracle所需依赖:
yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat zlib-devel elfutils-libelf-devel
3. 用户与组配置
- 创建组:创建Oracle所需用户组(
oinstall、dba、asmadmin等); - 创建用户:创建
grid(管理Grid Infrastructure)和oracle(管理数据库)用户,并添加到对应组; - 设置环境变量:分别为
grid和oracle用户配置.bash_profile,设置ORACLE_BASE、ORACLE_HOME、PATH等变量(如ORACLE_BASE=/u01/app/grid、ORACLE_HOME=/u01/app/11.2.0/grid)。
三、共享存储配置
1. 创建共享磁盘
- 关闭所有节点,通过虚拟化管理工具(如VirtualBox、VMware)添加虚拟硬盘(建议3块及以上,用于ASM存储);
- 将虚拟硬盘添加到所有节点,并在BIOS中启用AHCI模式(确保磁盘可被识别)。
2. 安装与配置ASMlib(可选但推荐)
- 安装软件包:
rpm -ivh oracleasm-support-2.1.8-1.el6.x86_64.rpm yum install -y kmod-oracleasm rpm -ivh oracleasmlib-2.0.4-1.el6.x86_64.rpm - 加载模块:重启所有节点,执行
lsmod | grep oracleasm确认模块加载成功; - 配置ASM磁盘:使用
oracleasm命令创建ASM磁盘(如oracleasm createdisk DISK1 /dev/sdb、oracleasm createdisk DISK2 /dev/sdc)。
四、Grid Infrastructure安装
1. 解压安装包
在grid用户下,将Oracle Grid Infrastructure安装包解压到/u01/app/grid目录:
su - grid
unzip LINUX.X64_193000_grid_home.zip -d /u01/app/grid
2. 运行安装向导
- 执行
./runInstaller启动图形化安装界面; - 选择“安装Oracle Grid Infrastructure for a Cluster”;
- 配置OCR(Oracle Cluster Registry)和表决磁盘(Voting Disk)的存储位置(建议使用ASM);
- 完成安装后,执行
/u01/app/11.2.0/grid/root.sh脚本(在所有节点上执行)。
五、Oracle Database安装
1. 解压安装包
在oracle用户下,将Oracle Database安装包解压到/u01/app/oracle/product/11.2.0/dbhome_1目录:
su - oracle
unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/11.2.0/dbhome_1
2. 运行安装向导
- 执行
./runInstaller启动图形化安装界面; - 选择“安装数据库软件”;
- 配置数据库字符集(如AL32UTF8)、内存参数(如SGA_TARGET、PGA_AGGREGATE_TARGET);
- 完成安装后,执行
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh脚本(在所有节点上执行)。
3. 创建RAC数据库
- 使用
dbca(Database Configuration Assistant)工具创建数据库; - 选择“RAC Database”模板,配置数据库名称(如
orcl)、实例数量(与节点数一致); - 完成数据库创建后,验证集群状态(如
crsctl status resource -t)。
六、验证与测试
1. 集群状态检查
执行以下命令查看集群资源状态:
crsctl status cluster
crsctl stat res -t
确保所有资源(如数据库实例、ASM磁盘、监听器)均处于“ONLINE”状态。
2. 故障转移测试
- 手动停止某节点的数据库实例(如
sqlplus / as sysdba执行shutdown immediate); - 观察集群是否自动将实例转移到其他节点(通过
crsctl status resource -t确认)。
3. 负载均衡测试
- 使用客户端工具(如SQL Developer)同时连接集群的Public IP和SCAN IP;
- 执行大量并发查询,观察各节点的CPU、内存利用率(通过
top、vmstat命令),确认负载是否均衡。
七、常见问题排查
- 安装错误:若安装过程中提示“ORA-12170: TNS连接超时”,需检查网络连通性(如
ping节点间IP)和防火墙状态; - ASM磁盘无法识别:确认
oracleasm模块已加载(lsmod | grep oracleasm),并检查磁盘权限(oracleasm listdisks); - 节点无法加入集群:检查
/etc/hosts文件配置是否正确,以及grid用户的互信是否建立(ssh grid@rac2 date是否无需密码)。