暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

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

695
作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验,
Oracle、PostgreSQL ACE
CSDN博客专家及B站知名UP主,全网粉丝10万+
擅长主流Oracle、MySQL、PG、
高斯及Greenplum备份恢复,
安装迁移,性能优化、故障应急处理

微信:jem_db
QQ交流群:587159446
公众号:IT邦德

文章目录

前言

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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论