Oracle RAC+DG生产实战(4):Oracle21c RAC DataGuard搭建2+2

71 阅读6分钟

在数字化转型的浪潮中,企业的数据架构不再是支撑业务的IT后台,而是驱动业务创新的核心引擎。一个脆弱、僵化的数据架构,如同建在沙滩上的城堡,无法抵御市场的风浪。Oracle 21c RAC + Data Guard 2+2架构,正是为构建一个高可用、高可靠、且具备长远演进能力的“数据堡垒”而生的经典范式。

本文将从实战部署出发,通过关键代码片段揭示其技术精髓,并最终回归战略,探讨这一架构如何赋能企业数据架构的长效升级。

第一部分:实战部署——构筑数据堡垒的基石

Oracle 21c RAC + Data Guard 2+2架构,意为两个节点构成RAC高可用集群,同时通过Data Guard技术,将这个集群的数据实时复制到另一个由两个节点组成的异地灾备集群。其核心思想是“零单点故障”和“异地容灾”。

阶段一:RAC集群的部署核心

RAC的核心是共享存储和集群件。在存储和操作系统准备就绪后,关键在于Grid Infrastructure和数据库软件的安装与配置。

核心代码片段 1:验证OCR和Voting Disk的共享存储

在安装Grid Infrastructure前,必须确认所有RAC节点都能看到共享的ASM磁盘。这是RAC的“命脉”。

bash

复制

# 在所有RAC节点上执行,以grid用户身份
# 使用oracleasm扫描并列出磁盘
/sbin/oracleasm listdisks

# 输出示例,确保所有节点都能看到DISK1, DISK2, DISK3...
# DISK1
# DISK2
# DISK3

核心代码片段 2:使用ASMCA创建磁盘组

安装完成后,使用ASM Configuration Assistant (asmca) 或命令行创建用于存放数据文件的磁盘组。

sql

复制

-- 在任一RAC节点上,以sysasm身份登录SQL*Plus
sqlplus / as sysasm

-- 创建一个名为DATA的冗余磁盘组
CREATE DISKGROUP DATA NORMAL REDUNDANCY
  DISK 'ORCL:DISK1' NAME data_disk1,
       'ORCL:DISK2' NAME data_disk2,
       'ORCL:DISK3' NAME data_disk3
  ATTRIBUTE 'compatible.asm' = '21.0.0.0.0';

阶段二:Data Guard的配置核心

Data Guard的核心是主备库之间的日志传输和应用。配置的关键在于主库的归档模式和备库的参数设置。

核心代码片段 3:主库启用强制日志记录和归档

这是Data Guard的前提。所有操作都必须产生redo日志,才能被复制到备库。

sql

复制

-- 在主库RAC集群的任一节点上,以sys身份登录
sqlplus / as sysdba

-- 启用强制日志记录,确保所有DML都产生日志
ALTER DATABASE FORCE LOGGING;

-- 开启归档模式
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

核心代码片段 4:配置主备库的TNSNames和Listener

网络是主备库沟通的桥梁。必须在主备库所有节点的$ORACLE_HOME/network/admin/tnsnames.oralistener.ora中正确配置。

ini

复制

-- 在主备库所有节点的 tnsnames.ora 文件中添加如下条目
-- 主库连接描述符
PRIMARY_DG =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = primary-scan)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = primary_db)
    )
  )

-- 备库连接描述符
STANDBY_DG =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = standby-scan)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = standby_db)
    )
  )

核心代码片段 5:在备库上使用RMAN Duplicate创建物理备库

这是最关键的一步,通过RMAN(Recovery Manager)网络直连,无需备份集,直接从主库克隆出一个一模一样的备库。

bash

复制

# 在备库节点上,执行RMAN命令
rman TARGET sys/password@PRIMARY_DG AUXILIARY sys/password@STANDBY_DG

-- 在RMAN提示符下执行
DUPLICATE TARGET DATABASE FOR STANDBY
  FROM ACTIVE DATABASE
  SPFILE
  SET DB_UNIQUE_NAME='standby_db' COMMENT 'Standby'
  SET FAL_CLIENT='STANDBY_DG' COMMENT 'Standby'
  SET FAL_SERVER='PRIMARY_DG' COMMENT 'Primary'
  NOFILENAMECHECK;

核心代码片段 6:启动备库并开启实时应用

sql

复制

-- 在备库上,以sys身份登录
sqlplus / as sysdba

-- 将备库启动到mount状态
STARTUP MOUNT;

-- 开启实时应用redo数据
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

引用

至此,一个完整的2+2架构的核心部署已完成。主库的任何数据变化,都会实时、一致地复制到备库集群。

第二部分:未来战略——赋能数据架构长效升级

部署完成只是开始,真正的价值在于如何利用这个强大的架构,实现企业数据的长效演进。

1. 从“灾备”到“双活”:释放资源价值

传统的Data Guard备库处于闲置状态,是巨大的资源浪费。Oracle 21c的Active Data Guard功能,允许备库在应用日志的同时,以只读方式开放给业务。

  • 战略价值:将备库用于报表查询、数据分析、开发测试等业务,实现“零RTO(恢复时间目标)”的灾备能力和“生产级”的分析能力并存。这不仅是成本的节约,更是业务敏捷性的提升,是企业数据中台建设的理想平台。

2. 智能运维与自动化:降低管理复杂度

2+2架构的复杂性是巨大的挑战,而Oracle Enterprise Manager (OEM) 和自动化运维脚本是长效管理的保障。

  • 战略价值:通过OEM实现一键式监控、告警、性能调优和故障切换。结合Python/Shell脚本,实现巡检、备份验证等任务的自动化。这能将DBA从繁琐的重复劳动中解放出来,聚焦于更高价值的架构优化和战略规划,实现运维的“降本增效”。

3. 平滑演进与云集成:拥抱未来不确定性

技术总是在不断迭代。一个优秀的架构必须具备平滑演进的能力。

  • 战略价值:这套架构为未来的技术升级提供了完美的跳板。无论是升级到更新的Oracle数据库版本,还是将备库迁移到云端(如Oracle Cloud Infrastructure),都可以在不影响主库业务的情况下,以备库为试点,逐步完成。这种“灰度发布”式的演进能力,让企业在拥抱云计算等新技术时,拥有了最大的灵活性和最低的风险。

结论

从一行行严谨的代码部署,到一个个前瞻性的战略布局,Oracle 21c RAC + Data Guard 2+2架构所承载的,远不止是数据的安全。它是一种 “确定性” 的承诺——在充满不确定性的商业环境中,确保企业的核心数据资产永远在线、永远可靠。

选择并精通这套架构,意味着企业不仅为今天筑起了坚固的防线,更为明天的业务创新和数字化转型,铺设了一条宽广、坚实且可持续演进的高速公路。这,才是从实战到未来的真正价值所在。