温馨提示×

Linux Oracle集群配置如何实现

小樊
42
2025-11-04 18:04:13
栏目: 云计算

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),避免冲突。
  • 配置主机名与解析:为每个节点设置唯一主机名(如rac1rac2),并修改/etc/hosts文件,添加节点IP与主机名的映射(包括公共IP、私有IP、虚拟IP、扫描IP),确保节点间可通过主机名互相通信。

二、共享存储配置

1. ASM共享存储设置

  • 创建共享分区:使用fdiskparted工具在共享存储设备(如/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用户(需提前创建,属于oinstalldba组)执行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用户(属于oinstalldba组)执行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会自动创建数据库实例(如orcl1orcl2),并将数据文件存放在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工具应用补丁(避免安全漏洞)。

0