温馨提示×

CentOS Oracle集群搭建教程

小樊
41
2025-11-07 21:50:00
栏目: 云计算

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.2110.0.0.22);
  • Private IP:内网心跳网卡IP,用于节点间通信(如172.16.1.21172.16.1.22);
  • VIP:虚拟IP,与Public IP同网段,用于故障切换(如10.0.0.2310.0.0.24);
  • SCAN IP:集群对外服务的虚拟IP(11g及以上支持,最多3个,如10.0.0.25)。

二、操作系统配置

1. 基础设置

  • 修改主机名:在每台节点上执行hostnamectl set-hostname <节点名>(如rac1rac2),并更新/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所需用户组(oinstalldbaasmadmin等);
  • 创建用户:创建grid(管理Grid Infrastructure)和oracle(管理数据库)用户,并添加到对应组;
  • 设置环境变量:分别为gridoracle用户配置.bash_profile,设置ORACLE_BASEORACLE_HOMEPATH等变量(如ORACLE_BASE=/u01/app/gridORACLE_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/sdboracleasm 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、内存利用率(通过topvmstat命令),确认负载是否均衡。

七、常见问题排查

  • 安装错误:若安装过程中提示“ORA-12170: TNS连接超时”,需检查网络连通性(如ping节点间IP)和防火墙状态;
  • ASM磁盘无法识别:确认oracleasm模块已加载(lsmod | grep oracleasm),并检查磁盘权限(oracleasm listdisks);
  • 节点无法加入集群:检查/etc/hosts文件配置是否正确,以及grid用户的互信是否建立(ssh grid@rac2 date是否无需密码)。

0