Linux环境下Oracle RAC集群配置实现指南
一、前置规划与准备
1. 系统与环境规划
-
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。
2. 操作系统准备
- 安装兼容Linux发行版:推荐使用Oracle Linux(与Oracle软件兼容性最佳)、CentOS(需调整内核参数)或RHEL(Red Hat Enterprise Linux)。安装时选择“带GUI”选项(便于后续管理)。
- 安装依赖包:以Oracle Linux为例,需安装以下依赖包(可通过
yum install命令批量安装):
kmod-oracleasm oracleasm-support libaio libaio-devel unixODBC unixODBC-devel sysstat psmisc - 关闭不必要的服务:停止并禁用防火墙(
systemctl 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),确保节点间可通过主机名互相通信。
二、共享存储配置
1. ASM共享存储设置
-
创建共享分区:使用
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
2. OCR与VotingDisk配置
- OCR(Oracle Cluster Registry):存储集群配置信息(如节点列表、资源状态),需创建2个镜像副本(确保高可用)。
- VotingDisk(表决磁盘):用于集群节点间的心跳检测,需创建3个镜像副本(奇数个,避免脑裂)。
- 挂载OCR/VotingDisk:将共享分区挂载到
/u01/app/19.3.0/grid/cdata目录(路径随Oracle版本调整),并设置权限(chown -R grid:oinstall /u01/app/19.3.0/grid)。
三、Oracle Grid Infrastructure安装
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 RAC数据库创建
1. 安装数据库软件
-
上传并解压安装包:将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脚本(在每个节点上执行),完成数据库软件安装。
2. 创建RAC数据库
- 使用DBCA工具:以
oracle用户运行dbca命令,选择“创建数据库”,配置数据库名称(如orcl)、字符集(如ZHS16GBK)、数据块大小(如8KB),并选择“RAC数据库”选项。DBCA会自动创建数据库实例(如orcl1、orcl2),并将数据文件存放在ASM磁盘组中。
五、集群验证与测试
1. 检查集群状态
-
查看集群整体状态:使用
crsctl命令检查集群是否正常运行。
示例:crsctl check cluster all # 预期输出:Cluster Synchronization Services appears healthy、Cluster Ready Services appears healthy -
查看ASM实例状态:使用
asmcmd命令检查ASM磁盘组是否挂载。
示例:asmcmd lsdg # 预期输出:+DATA ONLINE 50G 10% ...
2. 测试故障转移
- 模拟节点故障:停止rac1节点的Oracle服务(
crsctl stop crs),观察rac2节点是否自动接管VIP和数据库实例(通过crsctl status resource查看资源状态)。 - 客户端连接测试:使用SCAN IP(如192.168.1.205)连接数据库,验证故障转移后连接是否正常(无需修改客户端配置)。
六、后续维护
- 备份策略:配置RMAN(Recovery Manager)定期备份数据库(全量备份+增量备份),并将备份文件存放在共享存储或异地位置。
- 性能优化:通过
AWR(Automatic Workload Repository)、ASH(Active Session History)报告分析数据库性能,调整SGA(System Global Area)、PGA(Program Global Area)参数,优化SQL语句。 - 补丁更新:定期下载Oracle官方补丁,通过
opatch工具应用补丁(避免安全漏洞)。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1446601.html