国产数据库都在学它,DG Broker完全颠覆你的想象!

来源:这里教程网 时间:2026-03-03 20:11:30 作者:
作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验,
Oracle、PostgreSQL ACE
CSDN博客专家及B站知名UP主,全网粉丝10万+
擅长主流Oracle、MySQL、PG、
高斯及Greenplum备份恢复,
安装迁移,性能优化、故障应急处理
微信:jem_db
QQ交流群:587159446
公众号:IT邦德

文章目录

  • 前言
  • 1.DG Broker
  • 2.switchover
  • 3.Failover
  • 3.1 模拟突发故障
  • 3.2 failover切换
  • 3.3 恢复主从关系
  • 4.Fast-Start Failover
  • 5.备库DML重定向
  • 6.总结

    前言

    Data Guard broker是建立在Data Guard基础上的一个对Data Guard配置,集中管理操作的一个平台,Data Guard为我们提供了一套高可用的解决方案。

    1.DG Broker

    在需要做switchover或者是failover的时候,平时我们需要操作一系列的命令才能完成一次switchover/failover的操作。Data Guard broker的推出就是为了简化DG复杂的管理过程的,它最大的作用就是集中化的统一管理。

    2.switchover

    switchover切换是在主数据库与其备数据库之间进行角色反转,
    切换确保不丢失数据。
    这是对于主系统计划维护的典型操作。
    在切换期间,主数据库转换到备角色,
    备数据库转换到主角色。
    转换发生不需要重建任何数据库。

    3.Failover

    故障转移是当主数据库不可用时执行的。
    故障转移只有在主数据库灾难故障的情况下执行,
    并且故障转移导致备数据库转换到主角色。
    用到的场景:非计划中的角色切换,一般在紧急情况下使用。
    根据保护模式的不同,可能会没有或者很少的数据损失。

    3.1 模拟突发故障

    以下是主库信息

    --主库每秒执行一条insert语句
    create table dgest(test_time date);
     
    begin
      for i in 1 .. 1800 loop
      insert into dgest values(sysdate);
      commit;
      DBMS_LOCK.SLEEP(1);
      end loop;
    end;
    /
    --insert过程中执行shutdown abort强行关闭该库
    shutdown abort
    此时主库已经发生报错
    ERROR at line 1:
    ORA-03113: end-of-file on communication channel
    Process ID: 90338
    Session ID: 9441 Serial number: 51166

    3.2 failover切换

    --确认主从信息,主库挂了
    DGMGRL> show configuration
    Configuration - fsf_prod_dg
      Protection Mode: MaxPerformance
      Members:
      proddb_st - Primary database
        Error: ORA-1034: ORACLE not available
        proddb    - Physical standby database
    Fast-Start Failover:  Disabled
    Configuration Status:
    ERROR   (status updated 0 seconds ago)
    --failover切换也变得简单无比,就一条命令
    DGMGRL> failover to proddb;
    Performing failover NOW, please wait...
    Failover succeeded, new primary is "proddb"

    3.3 恢复主从关系

    DGMGRL> reinstate database proddb_st;
    Reinstating database "proddb_st", please wait...
    Reinstatement of database "proddb_st" succeeded

    4.Fast-Start Failover

    Fast-Start Failover是建立在broker基础上的一个快速故障转换的机制,通过fast-start failover可以自动检测primary的故障,然后自动的failover到预先指定的standby上面,这样可以最大化的减少故障时间,提高数 据库的可用性。

    Fast-Start Failover是在broker的基础上再增加了一个单独的observer,用来监控primary和standby数据库的状态,一旦primary不可用,observer就会自动的切换到指定的standby上面。

    5.备库DML重定向

    DML 重定向整体的步骤如下:
    1.备库的客户端发起DML操作。
    2.备库的DML操作通过内部的dblink被重定向到主库执行。
    3.DML语句在主库被实施。
    4.主库生成更改的redo log传到备库。
    5.备库应用此日志完成DML重定向,客户端显示修改后的数据信息。
    1.会话级别修改参数
    --当前会话启用 DML 重定向
    ALTER SESSION ENABLE ADG_REDIRECT_DML;
    2.系统级别修改参数
    ALTER SYSTEM SET ADG_REDIRECT_DML=true;

    6.总结

    DataGuard是甲骨文推出的一种高可用性数据库方案 用户能够在对主数据库影响很小的情况下,实现主备数据库的同步。 而主备机之间的数据差异只限于在线日志部分,因此被不少企业用作数据容灾解决方案。

  • 相关推荐

    热文推荐