Oracle Linux 7.3 ECS上搭建RAC 18c + 单实例DG + EMCC + DG FSFO快速故障转移全流程指南

本文详解在Oracle Linux 7.3 ECS环境部署Oracle 18c RAC集群、搭建单实例Data Guard物理备库、集成EMCC监控平台,并配置Data Guard Fast-Start Failover(FSFO)实现秒级故障转移的全流程方案。适用于高可用生产环境建设,满足99.99% SLA要求。

目录#


2. 系统环境与前提条件#

2.1 硬件配置#

组件配置说明
ECS实例2节点 (racnode1, racnode2)
CPU8 vCPUs (支持AVX指令集)
内存32 GB/节点
存储ASM磁盘组:OCR/Voting 10G, DATA 100G, FRA 50G
网络2 NICs: Public IP + 私有心跳网络

2.2 软件环境#

# 操作系统
$ cat /etc/oracle-release
Oracle Linux Server release 7.3
 
# 内核要求
$ uname -r
3.10.0-514.el7.x86_64
 
# 软件包
oracle-database-preinstall-18c

2.3 网络规划#

节点Public IPVIPSCAN IP私有心跳
racnode110.0.0.10110.0.0.20110.0.0.210192.168.1.1
racnode210.0.0.10210.0.0.20210.0.0.210192.168.1.2

3. RAC 18c集群部署#

3.1 Grid Infrastructure安装#

# 配置共享存储
$ sudo /sbin/scsi_id -g -u /dev/sdb 
1ATA_VBOX_HARDDISK_VB00000000
 
# 创建udev规则
/etc/udev/rules.d/99-oracle-asmdevices.rules:
KERNEL=="sd?1", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id -g -u -d $devnode", RESULT=="1ATA_VBOX_HARDDISK_VB00000000", SYMLINK+="oracleasm/disk1", OWNER="grid", GROUP="asmadmin", MODE="0660"

3.2 运行gridSetup#

# 静默安装模板
$ ./gridSetup.sh -silent \
  oracle.install.option=CRS_CONFIG \
  ORACLE_HOSTNAME=racnode1 \
  INVENTORY_LOCATION=/u01/app/oraInventory \
  SELECTED_LANGUAGES=en \
  oracle.install.asm.OSDBA=asmdba \
  oracle.install.asm.OSOPER=asmoper \
  oracle.install.asm.OSASM=asmadmin \
  oracle.install.asm.diskGroup.name=DATA \
  oracle.install.asm.diskGroup.redundancy=EXTERNAL \
  oracle.install.asm.diskGroup.disks=/dev/oracleasm/disk1 \
  oracle.install.crs.config.gpnp.configureNodeType=CLUSTER

3.3 数据库软件安装#

# RAC数据库实例创建
$ dbca -silent -createDatabase \
  -templateName General_Purpose.dbc \
  -gdbName RACDB -sid RACDB \
  -sysPassword oracle_123 \
  -storageType ASM \
  -datafileDestination +DATA \
  ...

4. 单实例Data Guard配置#

4.1 备库环境准备#

-- 主库启用归档与Force Logging
SQL> ALTER DATABASE FORCE LOGGING;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(RACDB,STDBYDB)';
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=stdbydb ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=STDBYDB';

4.2 备库RMAN克隆#

# 主库生成pfile
SQL> CREATE PFILE='/tmp/initRACDB.ora' FROM SPFILE;
 
# 备库RMAN克隆命令
RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE;

5. EMCC 13.5安装与集成#

5.1 安装步骤摘要#

# 安装软件仓库
$ yum install oracle-oss-release-el7
$ yum install oracle-emcc-13.5
 
# 配置EMCC
$ /opt/oracle/middleware/bin/emctl config oms -details

5.2 添加监控目标#

  1. EMCC控制台访问 https://:7803/em
  2. 添加目标 > Oracle数据库
  3. 输入RAC SCAN IP和备库IP
  4. 启用 Data Guard Broker 监控

6. FSFO快速故障转移配置#

6.1 Data Guard Broker配置#

-- 启用Broker
SQL> ALTER SYSTEM SET DG_BROKER_START=TRUE;
 
-- 创建配置
DGMGRL> CREATE CONFIGURATION DG_RAC AS PRIMARY DATABASE IS 'RACDB' CONNECT IDENTIFIER IS RACDB;
DGMGRL> ADD DATABASE 'STDBYDB' AS CONNECT IDENTIFIER IS STDBYDB;

6.2 FSFO核心参数#

-- 配置快速故障转移
DGMGRL> EDIT DATABASE 'RACDB' SET PROPERTY FastStartFailoverTarget='STDBYDB';
DGMGRL> EDIT DATABASE 'STDBYDB' SET PROPERTY FastStartFailoverTarget='RACDB';
 
-- 启用FSFO
DGMGRL> ENABLE FAST_START FAILOVER CONDITION 385; -- Datafile Offline错误
 
-- 验证状态
DGMGRL> SHOW FAST_START FAILOVER;
Fast-Start Failover: ENABLED

6.3 Observer部署(推荐独立ECS)#

# 启动Observer
$ dgmgrl -silent /
  sys/oracle_123@RACDB \
  "START OBSERVER FILE=$ORACLE_HOME/observer.racdb"

7. 故障转移测试#

7.1 模拟主库故障#

# 停止主库集群服务
$ srvctl stop database -d RACDB -o abort

7.2 自动切换验证#

-- 观察DGMGRL状态变化
DGMGRL> SHOW CONFIGURATION;
Configuration - DG_RAC
  Failover Status: SUCCESS
  Current Primary: STDBYDB

7.3 回切操作#

DGMGRL> REINSTATE DATABASE 'RACDB';
Reinstatement succeeded

8. 最佳实践#

  1. 网络心跳优化

    # 私有网络MTU调整
    $ ifconfig eth1 mtu 9000
  2. FSFO超时设置

    DGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold=30; -- 超时秒数
  3. 备库实时应用

    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
  4. EMCC告警规则

    • 配置 DG Broker状态变更 短信通知
    • 设置 FSFO事件 P1级告警

9. 参考#

  1. Oracle 18c Data Guard Administration
  2. My Oracle Support: FSFO Best Practices (Doc ID 1265884.1)
  3. Enterprise Manager Cloud Control Administrator’s Guide