前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【云原生进阶之数据库技术】第二章-Oracle-使用-3.4.1-Oracle Active Data Guard综述

【云原生进阶之数据库技术】第二章-Oracle-使用-3.4.1-Oracle Active Data Guard综述

作者头像
江中散人_Jun
发布2024-05-29 12:06:43
2380
发布2024-05-29 12:06:43
举报
文章被收录于专栏:云原生布道专栏

1 Oracle Active Data Guard简介

1.1 Oracle ADG基本概念

Oracle ADG全称为Oracle Active Data Guard,它是Oracle Data Guard功能集中的一个高级选项。Active Data Guard是Oracle数据库提供的一种高级高可用性和灾难恢复解决方案,它在Oracle Data Guard的基础上进一步增强了备用数据库(Standby Database)的功能和利用率。

在Oracle 11g之前,物理备库(physical Standby)在应用redo的时候,是不可以打开的,只可以mount。从11g开始,在应用redo的时候,物理备库可以处于read-only模式,这就称为Active Data Guard 。通过Active Data Guard,可以在物理备库进行查询或者导出数据,从而减少对主库的访问和压力。

Active Data Guard适用于一些只读性的应用,比如,有的应用程序只是查询数据,进行一些报表业务,不会产生redo数据,这些应用可以转移到备库上,避免对主库资源的争用。

Oracle Active Data Guard 是Oracle Database Enterprise Edition的一个功能,需要额外付费来使用这个功能。如需启用Active Data Guard, 只需要将备库以 read-only 模式打开,而且执行 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE语句就可以。需要注意的是:主库和备库的COMPATIBLE 参数至少要设置为11.0.0。

Data Guard可以以只读的方式打开数据库,但此时Media Recovery利用日志进行数据同步的过程就停止了,如果物理备用数据库处于恢复的过程中数据库就不能打开查询,也就是说日志应用和只读打开两个状态是互斥的。Oracle 11g 中推出的Active Data Guard功能解决了这个矛盾,在利用日志恢复数据的同时可以用只读的方式打开数据库,用户可以在备用数据库上进行查询、报表等操作,这类似逻辑Data Guard备用数据库的功能(查询功能方面),但是,数据同步的效率更高、对硬件的资源要求更低。这样可以更大程度地发挥物理备用数据库的硬件资源的效能。

1.2 Oracle ADG主要特点

  1. 实时查询能力
  2. 快速故障切换
  3. 数据保护与一致性
  4. 多站点支持与远程保护
  5. 增强监控与管理

1.3 ADG搭建

1.3.1 ADG搭建流程

ADG(Advanced Data Guard)是Oracle数据库的一个功能,用于实时数据复制和灾难恢复。下面是ADG搭建的详细流程:

  1. 确认环境要求:首先,要确保主库和备库的硬件和操作系统满足Oracle ADG的最低要求。此外,还需要确认数据库版本和Patch级别一致。
  2. 确认网络连接:主库和备库之间需要建立可靠的网络连接。确保网络连接的稳定性和带宽满足数据复制的需求。可以使用私有网络或专用链路来确保数据传输的可靠性和安全性。
  3. 配置主库和备库的参数:在主库中,需要启用redo log文件归档和归档传输功能。在备库中,需要启用redo apply功能。相关参数包括LOG_ARCHIVE_CONFIG、DB_RECOVERY_FILE_DEST和FAL_SERVER等。
  4. 创建主库的备份:在主库上进行全备份,并将备份文件传输到备库。可以使用Oracle RMAN工具进行备份,然后通过网络传输备份文件到备库。
  5. 在备库上恢复数据库:在备库上使用Oracle RMAN工具,将主库的备份文件恢复到备库上。这将建立备库的初始数据。
  6. 配置数据保护模式:在主库和备库上配置数据保护模式。常用的模式包括最大性能模式(Maximum Performance)、最大可用性模式(Maximum Availability)和最大保护模式(Maximum Protection)。根据需求选择适合的模式。
  7. 启动数据传输:在主库上启动数据传输,将主库的归档日志传输到备库上。可以使用Oracle Data Guard Broker进行配置和管理。
  8. 启动备库的应用进程:在备库上启动MRP(Managed Recovery Process)进程,开始将归档日志应用到备库上。
  9. 验证复制的正确性:在主库上进行一些数据操作,确保数据可以正确地同步到备库。可以使用SQL语句和Oracle Data Guard Broker进行验证。
  10. 配置ADG增量修复:在ADG环境中,可以启用ADG增量修复功能,用于在备库上修复主库上的物理块损坏或数据丢失。
  11. ADG搭建的流程包括准备环境、配置参数、创建备份、恢复数据库、配置数据保护模式、启动数据传输和验证复制的正确性。通过正确的配置和管理,可以建立可靠的主备关系,并提供实时数据复制和灾难恢复的能力。
1.3.2 ADG搭建示例

1. 创建主库和从库

在ADG中,需要创建主库和从库节点,并将其进行部署和配置,以实现主从同步和高可用性。在主库节点上创建主数据库和备份集,可以使用以下代码实现:

代码语言:javascript
复制
CREATE USER sys_admin IDENTIFIED BY password;
GRANT SYSDBA TO sys_admin;
CREATE PFILE=’/tmp/init.ora’ FROM SPFILE;
CREATE TABLESPACE ts01 DATAFILE ‘/u01/app/oracle/oradata/ts01_01.dbf’ SIZE 100M;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;

然后,在从库节点上进行部署和初始化,可以使用以下代码实现:

代码语言:javascript
复制
CREATE USER sys_admin IDENTIFIED BY password;
GRANT SYSDBA TO sys_admin;
CREATE PFILE=’/tmp/init.ora’ FROM SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG=’DG_CONFIG=(testdb,testdb_adg)’;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=’SERVICE=testdb_adg LGWR ASYNC VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=testdb_adg’;
ALTER SYSTEM SWITCH LOGFILE;

2. 配置主从同步

在完成主库和从库的创建和初始化之后,需要将两者进行主从同步。可以使用以下代码实现:

代码语言:javascript
复制
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG=’DG_CONFIG=(testdb,testdb_adg)’;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=’SERVICE=testdb_adg LGWR ASYNC VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=testdb_adg’;

在上述代码中,LOG_ARCHIVE_DEST_2表示从库节点的名称,SERVICE=testdb_adg指定了主从同步的服务名称,DB_UNIQUE_NAME=testdb_adg指定了从库节点的唯一名称。完成上述配置后,主从同步即可生效。

3. 测试主从切换

为了验证ADG的高可用性,需要进行主从切换测试。可以使用以下代码实现:

代码语言:javascript
复制
ALTER SYSTEM SWITCH LOGFILE;

在执行上述代码时,主库节点会立即将当前的 redo log 切换到一个新的 redo log,从库节点会自动将主库节点的更改同步到本地,从而实现主从切换。测试完成后,即可验证ADG的高可用性和灾难恢复能力。

1.4 工作原理

ADG的原理如下:

  1. 建立主备库:首先,需要配置一个主库和一个备库。主库是用来处理用户请求的数据库,而备库是主库的一个副本。
  2. 启动日志传输:主库会将产生的Redo Log交给Data Guard Broker,然后Data Guard Broker会将这些日志传输给备库。这样,备库就能够实时地同步主库的数据变化。
  3. 数据保护模式:备库可以处于不同的保护模式中,包括最大性能模式、最大可用性模式和最大保护模式。不同的模式可以提供不同的数据保护级别和容灾能力。
  4. 故障切换:当主库发生故障或计划维护时,ADG可以自动地将备库切换为可读写模式,从而保证系统的连续性。一旦主库恢复正常,ADG还可以自动地将备库切换回只读模式。
  5. 监测和管理:ADG通过Data Guard Broker来监测和管理主备库的状态。Data Guard Broker是一个集中管理工具,可以实时地监控主备库的同步状态、处理故障切换以及进行备库的维护和管理。

Oracle ADG是一种基于Oracle Data Guard的高可用和灾难恢复技术,它通过实时传输日志将主库和备库保持同步,并提供自动故障切换和集中管理功能,以提供数据保护和容灾能力。

1.4.1 关键技术特性

数据复制过程:

  • 主数据库在事务提交时生成重做日志(Redo Log)。这些日志记录了对数据库所做的更改。
  • 通过Log Transport Services(LTS),主数据库将重做日志实时发送到备用数据库。
  • 备用数据库接收到重做日志后,通过Log Apply Services(LAS)将这些日志应用到本地数据库,更新数据块以保持与主数据库的一致性。

只读查询服务:

  • 在ADG环境中,备用数据库在保持数据同步的同时,被配置为只读模式,对外提供查询服务。
  • 查询请求可以直接发送到备用数据库,无需访问主数据库,减轻主库压力,提升查询响应速度。

故障切换与恢复:

  • 当主数据库出现故障或需要计划内维护时,ADG可以自动或由管理员触发故障切换过程。
  • 故障切换过程中,备用数据库被提升为主数据库角色,开始接受客户端的写入请求。
  • 同时,原主数据库在修复后可以重新配置为备用数据库,继续接收并应用重做日志,恢复至最新状态,形成一个新的高可用循环。
1.4.2 ADG相关参数

在Oracle数据库中,有一些与Oracle ADG(Advanced Data Guard)相关的参数可以用来配置和管理ADG功能。以下是一些常用的ADG参数的详细介绍:

  • LOG_ARCHIVE_DEST_n:这个参数用于指定归档日志的目标位置。在ADG中,通常需要将归档日志传输给备库以保持数据同步。可以通过设置LOG_ARCHIVE_DEST_n参数来指定备库的位置。其中,n表示一个整数,可以使用多个LOG_ARCHIVE_DEST_n参数指定多个备库。
  • LOG_ARCHIVE_CONFIG:这个参数用于指定归档日志的配置。可以通过设置这个参数来指定在哪个归档目标上将日志发送给备库,以及应用归档日志的验证选项。通过配置LOG_ARCHIVE_CONFIG参数,可以灵活地控制归档日志的传输和应用。
  • LOG_ARCHIVE_MAX_PROCESSES:这个参数用于指定归档日志传输的最大并行进程数。可以通过设置这个参数来增加归档日志传输的并行度,从而提高数据同步的速度。建议将LOG_ARCHIVE_MAX_PROCESSES设置为与实际系统的处理能力相匹配的适当值。
  • LOG_ARCHIVE_FORMAT:这个参数用于指定归档日志的命名格式。可以通过设置这个参数来定义归档日志的文件名规则。其中,%t表示日志序列号,%s表示日志序列号的后缀,%r表示数据库的线程号。
  • DB_UNIQUE_NAME:这个参数用于指定数据库的唯一名称。在ADG中,可以通过设置这个参数来区分不同的主备库。主库和备库必须有不同的DB_UNIQUE_NAME。这样,ADG才能正确地识别数据库的角色和状态。
  • FAST_START_FAILOVER_TARGET:这个参数用于指定ADG故障切换的目标时间。可以通过设置这个参数来控制当主库发生故障时,ADG自动切换为备库的时间。建议将FAST_START_FAILOVER_TARGET设置为一个合理的值,以满足业务的需求。

通过合理地配置和管理这些参数,可以实现高可用和灾难恢复的目标。需要注意的是,参数的具体配置和使用可能会根据实际的环境和需求而有所不同。建议在使用这些参数时参考官方文档或咨询Oracle的支持人员。

1.4.3 增量修复

ADG(Advanced Data Guard)是Oracle数据库的一个功能,用于实时数据复制和灾难恢复。ADG增量修复是ADG的一个重要特性,用于在备库上修复主库上发生的物理块损坏或数据丢失。

ADG增量修复的原理是,在主库上发生数据损坏或丢失时,备库会自动从主库获取相应的增量日志,并应用到备库上进行修复。这样可以保证主库和备库之间的数据一致性,并且减少了数据修复的时间。

ADG增量修复的流程如下:

  1. 检测主库上的物理块损坏或数据丢失。Oracle数据库会使用校验和和数据自愈机制来检测数据的完整性。
  2. 当发现物理块损坏或数据丢失时,主库会生成一个增量日志,记录被损坏或丢失的物理块的修改操作。
  3. 备库会通过网络传输获取增量日志。Oracle数据库会使用Redo Transport Services来传输增量日志。
  4. 备库将增量日志应用到备库上,进行逐块修复。Oracle数据库会使用数据库恢复流程来应用增量日志,并将被修复的物理块恢复到与主库一致的状态。
  5. 当修复完成后,备库将与主库保持一致,并可用于故障切换或灾难恢复。

ADG增量修复的好处是可以实现实时的数据修复和恢复,减少了故障恢复的时间窗口。同时,由于是增量修复,只需要传输和应用增量日志,减少了网络带宽的使用和数据库的负载。

需要注意的是,ADG增量修复需要在ADG环境中正确配置和启用。还需要保证主库和备库之间的网络连接和传输是稳定和可靠的。此外,增量日志的传输和应用速度也会受到网络带宽和数据库负载的影响,需要根据实际情况进行调整和优化。

ADG增量修复是Oracle ADG的一个重要特性,用于实时数据修复和灾难恢复。通过自动获取增量日志,并将其应用到备库上,可以保证主库和备库之间的数据一致性,并提供故障切换和灾难恢复的能力。

参考链接

oracle adg性能,ADG设计及优化的最佳实践-CSDN博客

oracle 11g 新特性 active data guard(ADG)_oracle adg-CSDN博客

Oracle ADG的基本概念-CSDN博客

读写分离之Oracle物理ADG备库性能调优经验分享 - 知乎

Oracle实现数据库高可用之ADG指南(oracle下的ADG)-数据运维技术

Oracle ADG 与 DG 的区别-CSDN博客

Oracle 11g Data Guard (ADG) 原理_oracle adg原理-CSDN博客

深入浅出Oracle ADG原理剖析(oracle adg原理)-云搜网

Oracle ADG相关介绍-CSDN博客

记Exadata上以RMAN Duplicate方式搭建ADG部署 - 知乎

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 Oracle ADG基本概念
  • 1.2 Oracle ADG主要特点
  • 1.3 ADG搭建
    • 1.3.1 ADG搭建流程
      • 1.3.2 ADG搭建示例
      • 1.4 工作原理
        • 1.4.1 关键技术特性
          • 1.4.2 ADG相关参数
            • 1.4.3 增量修复
            • 参考链接
            相关产品与服务
            容器服务
            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档