作者: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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




