RAC Oracle指的是Oracle Real Application Clusters,它允许两个以上实例同时访问同一套数据库文件,从而实现高可用与负载均衡。安装RAC并不是简单重复单机Oracle的步骤,而是要先搭好集群基础软件Grid Infrastructure,再在其之上建立数据库。整个过程对网络、存储和权限的要求都更为严格。
一、安装前的环境准备
在动手执行任何安装程序之前,必须保证所有节点满足统一的硬件与系统条件。首先是操作系统,通常选择Oracle Linux或RHEL的特定版本,并且每个节点的小版本要保持一致,不能一个节点是7.6另一个节点是7.9却打了不同的补丁集。内核参数如 semaphores、file-max、ip_local_port_range 需要按官方文档调整,否则CSS进程在启动时可能报资源不足。
其次是用户和组规划。RAC需要 grid 和 oracle 两个用户,分别对应集群软件与数据库软件,并且两者的属组(oinstall、dba、asmadmin等)必须存在且gid相同。很多初次部署的人在这里栽跟头,因为用useradd时不同节点自动分配的gid不一致,后续SSH等价性配置就会失败。建议手动指定gid创建组和用户。
# 在所有节点以相同gid创建组 groupadd -g 1000 oinstall groupadd -g 1001 dba groupadd -g 1002 asmadmin groupadd -g 1003 asmdba # 创建grid与oracle用户并指定附属组 useradd -u 1001 -g oinstall -G dba,asmadmin,asmdba grid useradd -u 1002 -g oinstall -G dba,asmdba oracle
1.1 网络与时钟要求
RAC至少使用两块网卡:公共网络(public)用于客户端连接,私有网络(private)用于节点间缓存融合和心跳。私有网络务必使用独立交换机或VLAN,并且关闭网卡卸载功能以防包乱序。主机名解析不能只靠DNS,还要在 /etc/hosts 中写明每个节点的公网、私网以及对应的虚拟IP(VIP)。
时间同步是另一个隐形杀手。如果节点间时间差超过特定阈值,Clusterware会认为节点异常并将其驱逐。生产环境应部署NTP或Chrony,且私有网络接口不参与NTP服务,仅公网同步外部时钟源即可。下面展示简化的hosts文件结构:
# 公网与私网规划示例 127.0.0.1 localhost 192.168.0.11 rac1 192.168.0.12 rac2 10.10.10.11 rac1-priv 10.10.10.12 rac2-priv 192.168.0.21 rac1-vip 192.168.0.22 rac2-vip
二、共享存储与ASM配置
RAC的数据库文件必须位于所有节点都能并发访问的共享存储上。常见方案包括SAN上的LUN通过多路径软件映射,或使用iSCSI目标。Oracle推荐使用ASM(Automatic Storage Management)来管理这些磁盘,而不是直接用文件系统。ASM将磁盘组抽象成类似于逻辑卷的容器,并自带冗余与条带化。
在Linux下,需要把共享盘标记为ASM磁盘。早期用asmlib,现在更多使用udev规则绑定设备持久名。要注意的是,磁盘权限必须属于 grid:asmadmin,否则Grid安装时扫描不到。以下udev规则可将SCSI磁盘绑定为asm_disk1:
# /etc/udev/rules.d/99-oracle-asm.rules 示例 KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --device=/dev/$name", RESULT=="36000c29abcd1234", SYMLINK+="asm_disk1", OWNER="grid", GROUP="asmadmin", MODE="0660"
2.1 多路径与设备名稳定
如果后端存储通过多条链路接入,必须配置multipath使多条路径合并为一个稳定设备名,不然重启后/dev/sdX可能错乱。配置完成后用 multipath -ll 确认状态为active ready,然后再写udev规则匹配wwid。这样无论系统识别顺序如何,ASM都能找到正确的盘。
对于投票盘(voting disk)和OCR(Oracle Cluster Registry),Grid安装程序会在创建ASM磁盘组时自动放置。建议单独建一个小型磁盘组(如GRIDDG)专门存放集群元数据,与数据磁盘组分离,降低管理风险。
三、Grid Infrastructure安装
Grid Infrastructure是RAC的根基,包含OHAS、CSS、CRS等守护进程。安装时以 grid 用户登录,执行 runInstaller,选择“Install and Configure Grid Infrastructure for a Cluster”。安装向导会要求填写集群名称、扫描IP(SCAN)、节点列表以及SSH等价性测试。
SSH等价性是为了让安装程序能在各节点间无密码执行命令。如果前面用户gid不一致或/home/grid权限过宽,这里就会卡住。通过界面自动配置失败时可手动用 ssh-keygen 与 ssh-copy-id 打通。安装末尾会提示以root执行两个脚本:orainstRoot.sh 和 root.sh,其中 root.sh 会启动集群并初始化OCR,耗时较长且不能中断。
# 以root在各节点按顺序执行 /u01/app/oraInventory/orainstRoot.sh /u01/app/11.2.0/grid/root.sh # 检查集群状态 su - grid -c "crsctl check cluster"
3.1 常见安装故障
一类典型问题是 root.sh 执行到启动CSS时超时,日志显示投票盘无法访问。这通常是多路径或udev权限错误,需要返回存储章节核对。另一类是时间不同步导致节点被剔除,此时要暂停安装,先修正NTP再清理配置重跑。
安装完成后可用 crsctl stat res -t 查看资源状态,正常应看到ora.crsd、ora.cssd 以及网络资源均为ONLINE。只有Grid完全正常,才能进行下一步数据库软件安装。
四、Oracle数据库软件与实例创建
Grid就绪后,切换为 oracle 用户运行数据库安装程序,选择“Oracle Real Application Clusters database installation”。此处只需装软件,不建库。完成后用 dbca 启动数据库配置助手,选择“Create a Database with RAC”,并勾选参与实例的所有节点。
dbca过程中要指定前面建好的ASM数据磁盘组,并设置字符集、内存目标等。每个节点会自动生成一个实例(如orcl1、orcl2),它们共享同一个数据库。创建结束可通过 srvctl status database -d orcl 确认所有实例都已运行。
# 查看RAC数据库整体状态 srvctl status database -d orcl # 输出示例: # Instance orcl1 is running on node rac1 # Instance orcl2 is running on node rac2
4.1 连接与高可用验证
客户端可通过SCAN IP或VIP连接,Oracle会把连接按负载分配到不同实例。为验证故障切换,可在一个节点执行 crsctl stop instance -d orcl -i orcl1,观察其他节点实例是否继续提供服务且会话能否自动重连。这一步是检验RAC价值的关键。
最后提醒,RAC不是备份替代方案。共享存储损坏仍会导致全部实例不可用,因此RMAN备份与异地容灾依旧不可或缺。安装只是起点,后续的打补丁、添加节点和性能调优才是长期工作。
RAC_Oracle集群安装Oracle_ASM修改时间:2026-08-03 14:09:44