Linux Oracle RAC 配置全流程
一 规划与准备
- 架构与规模:至少准备2 台服务器(虚拟机或物理机),规划主机名、实例名、软件版本与目录结构一致,便于后续扩展与维护。
- 网络规划:明确并分配Public IP、Private IP、Virtual IP(VIP)、SCAN IP;公网用于业务访问,私网用于节点间集群互连(RAC Interconnect),VIP 与 SCAN 提供高可用与负载均衡能力。
- 共享存储:选择ASM作为共享存储,规划磁盘组(如:OCR/Voting 盘组、DATA 盘组、FRA 盘组);物理机优先使用多路径(multipathd),虚拟机可使用共享 VMDK 并开启 SCSI 共享总线。
- 操作系统与依赖:统一Linux 发行版与内核版本(如 Oracle Linux 7.x / RHEL 7.x),安装必要依赖包(如 bc、gcc、libaio、elfutils、net-tools、unixODBC 等),并准备 Oracle 安装介质(Grid Infrastructure 与 Database)。
- 用户与目录:创建 oinstall、dba、asmadmin、asmdba、asmoper 等组与 grid、oracle 用户;统一 ORACLE_BASE、ORACLE_HOME、GRID_HOME、ORA_INVENTORY 等目录与权限。
- 时间同步:配置 NTP 或 chrony 保证节点间时钟一致(生产环境建议 NTP 并配置定期校时任务)。
- 安全策略:按需配置 firewalld/iptables 与 SELinux(测试环境可临时关闭,生产环境建议精细化放行与策略调优)。
二 系统与环境配置
- 主机名与解析:设置唯一主机名(建议小写),在 /etc/hosts 中配置 Public/Private/VIP/SCAN 的解析,确保节点间与客户端均能解析。
- 网络与链路:公网/私网分网段,禁用不必要网络服务;私网建议使用**双网卡绑定(bond)**或多路径提升可靠性。
- 资源与内核参数:配置 /etc/security/limits.conf(nofile、nproc、stack 等)、内核参数(如 shmmax/shmall、sem、file-max、ip_local_port_range)、关闭透明大页(THP)与NUMA绑定(按官方建议)。
- 多路径与 UDEV(物理机):使用 multipathd 管理共享盘,获取 WWID 并配置多路径别名;通过 UDEV 规则固化设备节点与权限(OWNER=grid、GROUP=asmadmin、MODE=0660)。
- 依赖与用户:安装 OS 依赖包,创建 grid/oracle 用户与组,设置 SSH 互信(两节点互相免密,用于 OUI/安装器与集群部署)。
三 安装与部署 Grid Infrastructure
- 介质与环境:上传并解压 LINUX.X64_193000_grid_home.zip 到 GRID_HOME,以 grid 用户设置环境变量(ORACLE_HOME、PATH、LD_LIBRARY_PATH 等)。
- 预检查:使用 cluvfy(如 cluvfy stage -pre crsinst)进行预检,修正不满足项(网络、存储、用户权限、内核参数等)。
- 安装 GI:运行 gridSetup.sh 图形化或静默安装,选择“Install and Configure Grid Infrastructure for a Cluster”,配置 SCAN 名称与地址、选择 ASM 作为存储、创建 OCR/Voting 磁盘组。
- 完成与验证:安装完成后以 root 在每个节点执行 root.sh;使用 crsctl check crs、crs_stat -t、olsnodes -n、srvctl status asm -a 等命令检查集群与 ASM 状态。
四 创建 RAC 数据库
- 安装数据库软件:以 oracle 用户解压 LINUX.X64_193000_db_home.zip 到 DB_HOME,运行 runInstaller 安装数据库软件(仅软件,不建库)。
- 建库方式:使用 DBCA(图形或静默)创建 RAC 数据库,选择 ASM 存储,指定 SYS/SYSTEM 口令、字符集、SGA/PGA、Redo/Undo、归档模式与 FRA 位置;创建必要的**服务(Service)**用于客户端连接与负载均衡。
- 连接验证:在客户端 tnsnames.ora 中使用 SCAN 地址配置连接描述符,启用 LOAD_BALANCE=yes;测试故障切换(关闭某实例或节点)与负载均衡效果。
五 扩容与日常运维
- 扩容节点(Add Node):在新节点完成 OS 与依赖、网络、用户/目录、SSH 互信等准备后,运行 $GRID_HOME/oui/bin/addNode.sh 将节点加入集群;以 root 在新节点执行 root.sh;如未自动配置,使用 VIPCA 在新节点配置 VIP/GSD/ONS;随后运行 $DB_HOME/oui/bin/addNode.sh 扩展数据库实例,并使用 srvctl 启动新实例与服务。
- 常用运维命令:
- 集群启停:crsctl start/stop crs
- 资源状态:crsctl status resource -t、srvctl status database -d 、srvctl status instance -d -i
- 监听与 SCAN:srvctl status listener、srvctl status scan_listener
- ASM 管理:srvctl status asm -a、asmca
- 高可用验证:定期演练节点/实例故障切换、SCAN 连通性、服务迁移与存储链路切换,确保 RTO/RPO 符合业务要求。