Linux环境下Oracle RAC集群配置实现指南
IP地址规划:为每个节点分配公共IP(用于外部访问)、私有IP(用于集群节点间通信)、虚拟IP(VIP)(用于客户端连接,故障时自动漂移)、扫描IP(SCAN)(用于客户端统一访问集群,无需感知节点变化)。例如:
| 主机名 | 公共IP | 私有IP | 虚拟IP | 扫描IP |
|---|---|---|---|---|
| rac1 | 192.168.1.101 | 10.10.10.101 | 192.168.1.201 | 192.168.1.205 |
| rac2 | 192.168.1.102 | 10.10.10.102 | 192.168.1.202 | 192.168.1.206 |
| storage | (可选) | (可选) |
存储规划:Oracle RAC需共享存储(如ASM、iSCSI、NFS)存放数据库文件(数据文件、控制文件、重做日志、归档日志等)。需提前创建共享分区(如/dev/sdb1、/dev/sdc1),并格式化为支持的文件系统(如OCFS2、EXT4)。
硬件要求:服务器需满足Oracle RAC的最低配置(如CPU≥2核、内存≥4GB、磁盘≥100GB),并确保节点间网络延迟≤1ms、存储延迟≤5ms。
yum install命令批量安装):kmod-oracleasm oracleasm-support libaio libaio-devel unixODBC unixODBC-devel sysstat psmiscsystemctl stop firewalld; systemctl disable firewalld)、SELinux(setenforce 0; sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config)、NetworkManager(systemctl stop NetworkManager; systemctl disable NetworkManager),避免冲突。rac1、rac2),并修改/etc/hosts文件,添加节点IP与主机名的映射(包括公共IP、私有IP、虚拟IP、扫描IP),确保节点间可通过主机名互相通信。创建共享分区:使用fdisk或parted工具在共享存储设备(如/dev/sdb)上创建分区(如/dev/sdb1、/dev/sdb2),用于ASM磁盘组(如数据磁盘组+DATA、闪回恢复区+FRA)。
示例命令:
fdisk /dev/sdb
# 依次创建分区(+1G用于OCR/VotingDisk,+50G用于数据,+50G用于闪回)
mkfs.ext4 /dev/sdb1 # 格式化分区
挂载共享分区:创建挂载点(如/u01/shared),编辑/etc/fstab文件,添加自动挂载配置(确保重启后生效)。
示例:
mkdir -p /u01/shared
echo "/dev/sdb1 /u01/shared ext4 defaults,_netdev 0 0" >> /etc/fstab
mount -a
/u01/app/19.3.0/grid/cdata目录(路径随Oracle版本调整),并设置权限(chown -R grid:oinstall /u01/app/19.3.0/grid)。Grid Infrastructure是Oracle RAC的核心组件,负责集群管理、资源调度(如数据库实例、ASM实例)。
上传并解压安装包:将Oracle Grid Infrastructure安装介质(如LINUX.X64_193000_grid_home.zip)上传至节点(如rac1),解压至/u01/app/grid目录。
示例:
unzip LINUX.X64_193000_grid_home.zip -d /u01/app/grid
运行安装向导:以grid用户(需提前创建,属于oinstall、dba组)执行runInstaller命令,选择“集群安装模式”,指定集群节点(rac1、rac2)、SCAN名称(如racscan)、VIP信息(如192.168.1.205、192.168.1.206),并配置ASM(选择共享存储路径,如/u01/shared)。
示例:
su - grid
./runInstaller
完成安装:按照向导完成配置,运行root.sh脚本(在每个节点上执行),初始化集群环境。
上传并解压安装包:将Oracle Database安装介质(如LINUX.X64_193000_db_home.zip)上传至节点(如rac1),解压至/u01/app/oracle/product/19.3.0/db目录。
运行安装向导:以oracle用户(属于oinstall、dba组)执行runInstaller命令,选择“RAC安装选项”,指定集群节点(rac1、rac2),并关联已安装的Grid Infrastructure(路径如/u01/app/19.3.0/grid)。
示例:
su - oracle
./runInstaller
完成安装:运行root.sh脚本(在每个节点上执行),完成数据库软件安装。
oracle用户运行dbca命令,选择“创建数据库”,配置数据库名称(如orcl)、字符集(如ZHS16GBK)、数据块大小(如8KB),并选择“RAC数据库”选项。DBCA会自动创建数据库实例(如orcl1、orcl2),并将数据文件存放在ASM磁盘组中。查看集群整体状态:使用crsctl命令检查集群是否正常运行。
示例:
crsctl check cluster all
# 预期输出:Cluster Synchronization Services appears healthy、Cluster Ready Services appears healthy
查看ASM实例状态:使用asmcmd命令检查ASM磁盘组是否挂载。
示例:
asmcmd lsdg
# 预期输出:+DATA ONLINE 50G 10% ...
crsctl stop crs),观察rac2节点是否自动接管VIP和数据库实例(通过crsctl status resource查看资源状态)。AWR(Automatic Workload Repository)、ASH(Active Session History)报告分析数据库性能,调整SGA(System Global Area)、PGA(Program Global Area)参数,优化SQL语句。opatch工具应用补丁(避免安全漏洞)。