这次我们来看一个针对 Oracle 26ai RAC 在 Linux 环境下的双节点安装教程。Oracle RACReal Application Clusters是 Oracle 官方提供的高可用集群解决方案能够在多个节点间实现负载均衡和故障自动切换特别适合企业级数据库的高可用需求。Oracle 26ai 作为最新版本在 AI 功能集成和性能优化方面有显著提升。本文将重点演示如何在 Linux 环境下完成双节点 RAC 的完整部署包括共享存储配置、网络规划、集群软件安装和数据库实例创建等关键步骤。整个部署过程涉及硬件资源规划、系统配置优化和故障排查适合需要构建高可用数据库架构的 DBA 和系统管理员。对于企业级应用场景RAC 能够实现零停机维护、自动负载均衡和故障自愈是金融、电信、互联网等高并发行业的首选架构。下面我们将从环境准备开始逐步完成整个部署流程。1. 核心能力速览能力项说明集群类型Oracle RACReal Application Clusters双节点数据库版本Oracle 26ai最新AI增强版本操作系统Oracle Linux 8.x/Red Hat Enterprise Linux 8.x硬件要求每个节点≥16GB内存≥4核CPUSSD存储网络架构公网、私网、存储网络三网分离存储方案ASM推荐、NFS、iSCSILVM高可用特性负载均衡、故障自动切换、滚动升级部署复杂度中等需严格遵循步骤验证2. 适用场景与使用边界Oracle RAC 主要适用于对数据库高可用性和性能扩展有严格要求的企业级场景。在金融交易系统、电信计费平台、电商核心数据库等需要7×24小时不间断服务的环境中RAC 能够确保单节点故障时业务无感知切换。对于数据中台、实时分析平台等需要处理高并发查询的场景RAC 的负载均衡功能可以将请求分发到不同节点显著提升吞吐量。数字孪生、物联网数据采集等需要持续写入的应用也能受益于 RAC 的扩展能力。需要注意的是RAC 不适合小规模测试环境或资源有限的场景。部署和维护 RAC 需要专业的 DBA 技能且对硬件和网络基础设施有较高要求。在预算有限或技术团队经验不足的情况下建议先从单实例开始。3. 环境准备与前置条件在开始部署之前必须确保所有硬件和软件条件满足 Oracle RAC 的最低要求。以下是详细的环境检查清单3.1 硬件资源配置每个节点需要独立的服务器硬件建议配置CPU4核以上支持64位架构内存16GB以上推荐32GB用于生产环境存储系统盘≥100GB数据盘根据业务需求规划网卡至少3个独立网口公网、私网、存储网络双节点硬件配置必须完全一致避免因性能差异导致负载不均衡。存储方面建议使用 SSD 提升 I/O 性能特别是对于重做日志和归档日志区域。3.2 操作系统要求推荐使用 Oracle Linux 8.x 或 RHEL 8.x内核版本需≥4.18。安装完成后需要更新到最新补丁版本并安装以下必备软件包# 安装基础依赖 yum install -y oracle-database-preinstall-26ai yum install -y binutils.x86_64 yum install -y gcc.x86_64 gcc-c.x86_64 yum install -y glibc.x86_64 glibc-devel.x86_643.3 网络规划RAC 对网络延迟极为敏感必须规划三个独立的网络段公网用于客户端连接和集群管理IP地址需要静态配置私网节点间心跳和缓存融合要求延迟1ms必须与公网物理隔离存储网络如果使用 iSCSI 或 NFS需要单独划分 VLAN网络配置示例# 节点1网络配置 公网: 192.168.1.10/24 私网: 192.168.10.10/24 # 节点2网络配置 公网: 192.168.1.11/24 私网: 192.168.10.11/243.4 共享存储准备共享存储是 RAC 的核心所有节点必须能够同时访问相同的数据库文件。推荐使用 ASM自动存储管理作为存储解决方案它提供原生的卷管理、条带化和镜像功能。4. 共享存储配置实战4.1 ASM 磁盘配置首先在所有节点识别相同的磁盘设备确保设备名和权限一致# 查看可用磁盘 lsblk # 对共享磁盘进行分区 fdisk /dev/sdb # 输入n创建新分区选择默认参数最后w保存 # 在所有节点执行相同操作确保分区表一致4.2 安装和配置 ASMlib在 Oracle Linux 中可以使用 ASMlib 简化磁盘管理# 安装ASM支持包 yum install -y oracleasm-support oracleasm-disks # 配置ASMlib oracleasm configure -i # 按照提示设置默认用户和组为oracle、dba # 标记ASM磁盘 oracleasm createdisk DATA01 /dev/sdb1 oracleasm createdisk DATA02 /dev/sdc1 # 在所有节点扫描磁盘 oracleasm scandisks oracleasm listdisks4.3 验证共享存储确保所有节点都能看到相同的 ASM 磁盘# 在节点1执行 oracleasm listdisks # 输出: DATA01 DATA02 # 在节点2执行相同命令必须看到相同输出如果某个节点无法识别磁盘检查磁盘权限、多路径配置和网络连接。共享存储配置正确是 RAC 部署成功的关键前提。5. 系统预配置步骤5.1 主机名和 hosts 文件配置所有节点需要正确配置主机名解析编辑/etc/hosts文件# 公网IP和主机名 192.168.1.10 node1.example.com node1 192.168.1.11 node2.example.com node2 # 私网IP和主机名 192.168.10.10 node1-priv.example.com node1-priv 192.168.10.11 node2-priv.example.com node2-priv # SCAN名称需要DNS支持或在hosts中添加 192.168.1.20 rac-scan.example.com rac-scan5.2 系统参数优化编辑/etc/sysctl.conf添加以下参数# 内存相关设置 kernel.shmall 4294967296 kernel.shmmax 68719476736 kernel.shmmni 4096 # 网络参数 net.ipv4.ip_local_port_range 9000 65500 net.core.rmem_default 262144 net.core.wmem_default 262144 net.core.rmem_max 4194304 net.core.wmem_max 1048576 # 应用配置 sysctl -p5.3 用户和权限配置创建统一的 Oracle 用户和组结构# 创建组 groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper # 创建Oracle用户 useradd -u 54321 -g oinstall -G dba,oper oracle # 设置密码 echo oracle:YourSecurePassword123! | chpasswd # 创建安装目录 mkdir -p /u01/app/oracle chown -R oracle:oinstall /u01 chmod -R 775 /u015.4 安全设置调整临时关闭防火墙和 SELinux 以便安装# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 设置SELinux为permissive setenforce 0 sed -i s/SELINUXenforcing/SELINUXpermissive/g /etc/selinux/config安装完成后可以根据安全要求重新启用这些服务并配置相应的例外规则。6. Grid Infrastructure 安装6.1 软件包准备下载 Oracle 26ai Grid Infrastructure 软件包解压到所有节点的相同路径# 解压软件包 unzip p13390677_26000_Linux-x86-64.zip -d /u01/app/oracle # 设置权限 chown -R oracle:oinstall /u01/app/oracle/grid chmod -R 755 /u01/app/oracle/grid6.2 响应文件配置创建静默安装的响应文件/tmp/grid.rsporacle.install.optionCRS_CONFIG ORACLE_BASE/u01/app/oracle ORACLE_HOME/u01/app/oracle/grid oracle.install.asm.OSDBAasmdba oracle.install.asm.OSOPERasmoper oracle.install.asm.OSASMasmadmin oracle.install.crs.config.gpnp.scanNamerac-scan.example.com oracle.install.crs.config.gpnp.scanPort1521 oracle.install.crs.config.clusterNamerac-cluster oracle.install.crs.config.gpnp.configureGNSfalse oracle.install.crs.config.autoConfigureClusterNodeVIPfalse oracle.install.asm.configureAsmtrue oracle.install.asm.diskGroup.nameDATA oracle.install.asm.diskGroup.redundancyEXTERNAL oracle.install.asm.diskGroup.AUSize4 oracle.install.asm.diskGroup.disks/dev/oracleasm/disks/DATA01,/dev/oracleasm/disks/DATA02 oracle.install.asm.diskGroup.diskDiscoveryString/dev/oracleasm/disks/*6.3 执行安装使用 Oracle 用户执行安装# 切换到Oracle用户 su - oracle # 设置环境变量 export ORACLE_BASE/u01/app/oracle export ORACLE_HOME/u01/app/oracle/grid export PATH$ORACLE_HOME/bin:$PATH # 执行安装 cd /u01/app/oracle/grid ./gridSetup.sh -silent -responseFile /tmp/grid.rsp -ignorePrereqFailure安装过程需要10-30分钟具体时间取决于系统性能。安装完成后以 root 身份执行配置脚本# 在节点1执行 /u01/app/oracle/oraInventory/orainstRoot.sh /u01/app/oracle/grid/root.sh # 在节点2执行相同脚本6.4 验证集群状态安装完成后验证集群组件状态# 检查集群服务 crsctl check cluster -all # 查看资源状态 crsctl stat res -t # 验证ASM实例 srvctl status asm # 检查SCAN监听器 srvctl status scan_listener所有服务应该显示为 ONLINE 状态如果有任何异常检查日志文件/u01/app/oracle/grid/log/{hostname}中的错误信息。7. Oracle Database 软件安装7.1 数据库软件安装在第一个节点安装 Oracle Database 26ai 软件# 解压数据库软件包 unzip p13390677_26000_Linux-x86-64.zip -d /u01/app/oracle # 运行安装程序 cd /u01/app/oracle/database ./runInstaller -silent -responseFile /tmp/db_install.rsp响应文件配置示例oracle.install.optionINSTALL_DB_SWONLY UNIX_GROUP_NAMEoinstall INVENTORY_LOCATION/u01/app/oracle/oraInventory ORACLE_HOME/u01/app/oracle/product/26ai/dbhome_1 ORACLE_BASE/u01/app/oracle oracle.install.db.InstallEditionEE oracle.install.db.OSDBA_GROUPdba oracle.install.db.OSOPER_GROUPoper oracle.install.db.OSBACKUPDBA_GROUPdba oracle.install.db.OSDGDBA_GROUPdba oracle.install.db.OSKMDBA_GROUPdba oracle.install.db.OSRACDBA_GROUPdba7.2 第二个节点软件安装在第一个节点安装完成后将软件复制到第二个节点# 在节点1执行 cd /u01/app/oracle scp -r product/26ai/dbhome_1 node2:/u01/app/oracle/product/26ai/ # 在节点2执行root脚本 /u01/app/oracle/oraInventory/orainstRoot.sh /u01/app/oracle/product/26ai/dbhome_1/root.sh8. 创建 RAC 数据库实例8.1 使用 DBCA 创建数据库通过 DBCADatabase Configuration Assistant创建 RAC 数据库# 启动DBCA dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbName racdb.example.com \ -sid racdb \ -databaseType MULTIPURPOSE \ -characterSet AL32UTF8 \ -nationalCharacterSet AL16UTF16 \ -createAsContainerDatabase true \ -numberOfPDBs 1 \ -pdbName pdb1 \ -pdbAdminPassword YourPDBPass123! \ -storageType ASM \ -diskGroupName DATA \ -recoveryGroupName FRA \ -sampleSchema true \ -automaticMemoryManagement false \ -totalMemory 2048 \ -databaseConfigType RAC \ -nodelist node1,node2 \ -emConfiguration NONE \ -datafileDestination DATA \ -recoveryAreaDestination FRA \ -redoLogFileSize 100 \ -recoveryAreaSize 20480 \ -initParams db_create_online_log_dest_1DATA,db_create_online_log_dest_2FRA8.2 验证数据库状态创建完成后验证数据库实例状态-- 连接到任意节点 sqlplus / as sysdba -- 查看实例状态 SELECT instance_name, host_name, status, database_status FROM gv$instance; -- 检查PDB状态 SELECT name, open_mode FROM v$pdbs; -- 验证集群服务 srvctl status database -d racdb预期输出应该显示两个实例都处于 OPEN 状态数据库服务正常运行。9. 高可用性测试9.1 故障切换测试模拟节点故障验证自动切换功能-- 在节点1上停止实例 srvctl stop instance -d racdb -i racdb1 -- 在节点2上验证连接 sqlplus sys/YourPasswordracdb-scan.example.com:1521/racdb as sysdba -- 查询当前连接的实例 SELECT instance_name FROM v$instance; -- 重新启动节点1实例 srvctl start instance -d racdb -i racdb19.2 负载均衡测试验证连接请求是否在节点间均衡分布# 使用SCAN地址建立多个连接 for i in {1..10}; do sqlplus sys/YourPasswordracdb-scan.example.com:1521/racdb EOF SELECT instance_name FROM v\$instance; EOF done观察连接是否均匀分布到两个节点这证明负载均衡功能正常工作。10. 性能优化配置10.1 网络优化为私网通信启用 Jumbo Frames# 设置MTU为9000 ifconfig eth1 mtu 9000 # 永久生效编辑网卡配置文件 echo MTU9000 /etc/sysconfig/network-scripts/ifcfg-eth110.2 ASM 性能调优配置 ASM 磁盘组参数提升 I/O 性能-- 调整ASM磁盘组参数 ALTER DISKGROUP DATA SET ATTRIBUTE au_size 4M; ALTER DISKGROUP DATA SET ATTRIBUTE compatible.asm 26.0; ALTER DISKGROUP DATA SET ATTRIBUTE compatible.rdbms 26.0;10.3 数据库参数优化调整关键数据库参数以适应 RAC 环境-- 设置集群相关参数 ALTER SYSTEM SET cluster_database TRUE SCOPEspfile; ALTER SYSTEM SET cluster_database_instances 2 SCOPEspfile; ALTER SYSTEM SET instance_number 1 SCOPEspfile SIDracdb1; ALTER SYSTEM SET instance_number 2 SCOPEspfile SIDracdb2; -- 内存管理设置 ALTER SYSTEM SET memory_target 8G SCOPEspfile; ALTER SYSTEM SET sga_target 6G SCOPEspfile; ALTER SYSTEM SET pga_aggregate_target 2G SCOPEspfile; -- 重启数据库使参数生效 SHUTDOWN IMMEDIATE; STARTUP;11. 监控和维护11.1 集群状态监控建立日常监控脚本检查集群健康状态#!/bin/bash # rac_monitor.sh echo 集群状态检查 crsctl check cluster -all echo 资源状态 crsctl stat res -t echo 数据库实例状态 srvctl status database -d racdb echo ASM磁盘组状态 asmcmd lsdg echo 监听器状态 srvctl status listener11.2 性能监控配置 AWR自动工作负载仓库报告收集性能数据-- 设置AWR保留策略 BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention 11520, -- 8天 interval 60); END; / -- 生成AWR报告 ?/rdbms/admin/awrrpt.sql12. 常见问题与排查方法12.1 安装阶段问题问题现象可能原因解决方案OUI 安装界面无法启动显示设置错误设置 DISPLAY 变量安装 X11 转发共享存储无法识别磁盘权限或设备名不一致检查 /dev/oracleasm/disks/ 权限集群服务启动失败网络配置错误验证 hosts 文件和网络连通性12.2 运行阶段问题问题现象可能原因解决方案节点被驱逐私网通信中断检查私网延迟和丢包率ASM 实例无法挂载磁盘组损坏使用 amdu 工具分析磁盘组连接超时SCAN 解析问题验证 DNS 或 hosts 文件配置12.3 性能问题问题现象可能原因解决方案缓存融合延迟高私网带宽不足升级私网为万兆网络I/O 性能差ASM 配置不当调整 AU_SIZE 和条带化参数负载不均衡服务配置错误检查负载均衡顾问设置13. 备份和恢复策略13.1 RMAN 备份配置设置自动化的数据库备份策略-- 配置RMAN参数 CONFIGURE RETENTION POLICY TO REDUNDANCY 2; CONFIGURE BACKUP OPTIMIZATION ON; CONFIGURE DEFAULT DEVICE TYPE TO DISK; CONFIGURE DEVICE TYPE DISK PARALLELISM 4; CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT FRA/%U; -- 创建完整备份脚本 RUN { BACKUP DATABASE PLUS ARCHIVELOG; BACKUP CURRENT CONTROLFILE; CROSSCHECK BACKUP; DELETE NOPROMPT EXPIRED BACKUP; }13.2 恢复测试定期测试备份的可恢复性-- 模拟恢复测试 RUN { ALLOCATE CHANNEL ch1 TYPE DISK; RESTORE DATABASE VALIDATE; RELEASE CHANNEL ch1; }14. 安全最佳实践14.1 网络安全配置重新启用防火墙并配置最小权限规则# 启用防火墙 systemctl enable firewal systemctl start firewalld # 开放Oracle相关端口 firewall-cmd --permanent --add-port1521/tcp firewall-cmd --admin --add-port6200/tcp #ONS端口 firewall-cmd --reload14.2 数据库安全加固实施基本的安全配置-- 启用密码策略 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 90; -- 审计关键操作 AUDIT CREATE SESSION WHENEVER SUCCESSFUL; AUDIT CREATE ANY TABLE; -- 定期修改默认密码 ALTER USER SYS IDENTIFIED BY NewSecurePass123!;完成以上所有步骤后Oracle 26ai RAC 双节点集群就部署完成了。这个架构为企业级应用提供了高可用性和可扩展性能够满足严苛的业务连续性要求。建议在生产环境部署前进行充分的测试和演练确保团队熟悉维护和故障处理流程。