作者:IT邦德
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程(Web\java\Python)工作,主要服务于生产制造
现拥有 Oracle 11g OCP/OCM、Mysql、Oceanbase(OBCA)认证
分布式TBase\TDSQL数据库、国产达梦数据库以及红帽子认证
从业8年DBA工作,在数据库领域有丰富的经验
B站主播Oracle、Mysql、PG实战课程,请搜索:jeames007
微信:jem_db
QQ交流群:168797397
更多内容请关注B站(搜索jeames007)
更多内容请关注B站,搜索jeames007
https://space.bilibili.com/660863136

1. DG的日常管理操作
1.1 开关数据库
主库
startup mount
alter database open
备库
startup mount
alter database recover managed standby database disconnect from session
1.2 正确关闭顺序
备库
alter database recover managed standby database cancel
shutdown immediate
主库
shutdown immediate
1.3 shutdown immediate
SQL> recover managed standby database cancel;
SQL> alter database open;
SQL> STARTUP;

1.4 以读/写方式打开standby db
物理standby可以w/r方式打开,进行修改操作,结束后需要用flashback技术,将数据库闪回到修改前的状态
2. DG相关的视图
2.1 v$database
On Primary database
NAME OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME
---------- ------------ -------------------- --------------
MKSL READ WRITE PRIMARY mksl
On Standby database
NAME OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME
---------- ------------ -------------------- --------------
MKSL MOUNTED PHYSICAL STANDBY mkslsb
select name,open_mode,database_role,db_unique_name from v$database;
2.2 v$archive_dest (归档路径)
select DEST_NAME,STATUS,DESTINATION,TARGET,ARCHIVER, SCHEDULE,REOPEN_SECS,DELAY_MINS,MAX_CONNECTIONS, VALID_TYPE,VALID_ROLE,DB_UNIQUE_NAME from v$archive_dest;
2.3 v$standby_log
select THREAD#, GROUP#,SEQUENCE#,STATUS,ARCHIVED, FIRST_CHANGE#,FIRST_TIME,LAST_CHANGE#,LAST_TIME from v$standby_log
2.4 v$archive_gap
select THREAD#,LOW_SEQUENCE#,HIGH_SEQUENCE# from v$archive_gap
2.5 v$dataguard_stats(类似alter日志)
select NAME,VALUE,DATUM_TIME from v$dataguard_stats
2.6 v$archive_log
select REG,CREA,THRD,APLD,SEQ#,FIRST_CHANGE#,NEXT_CHANGE#,COMPT_TIME from v$archive_log
2.7 v$archive_dest_status(归档路径状态)
select DEST_NAME, RECOVERY_MODE STATUS,ARCHIVED_THREAD#,ARCHIVED_SEQ#,APPLIED_THREAD#,APPLIED_SEQ# from v$archive_dest_status
2.8 v$managed_standby 进程状态
On Primary database
PROCES SEQUENCE# STATUS DELAY_MINS
------ -------------- ---------------- ---------
ARCH 4573 CLOSING 0
ARCH 4574 CLOSING 0
LNS 4575 WRITING 0
On Standby database
PROCES SEQUENCE# STATUS DELAY_MINS
------ -------------- ---------------- ---------
ARCH 0 CONNECTED 0
RFS 3777 RECEIVING 0
ARCH 4573 CLOSING 0
ARCH 4574 CLOSING 0
MRP0 4575 APPLYING_LOG 0
select PROCESS, SEQUENCE#,STATUS,DELAY_MINS from v$managed_standby
3. Switchover

3.1 主库端检验数据库可切换状态
select switchover_status from v$database;
SWITCHOVER_STATUS:TO STANDBY表示可以正常切换.
SWITCHOVER_STATUS:SESSIONS ACTIVE,表示当前有会话 处于ACTIVE状态
3.2 角色互换--switchover
如果:SWITCHOVER_STATUS:TO STANDBY,则
SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
如果:SWITCHOVER_STATUS:SESSIONS ACTIVE,则
SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
成功运行命令后,主库被修改为备库
3.3 重启之前的主库,验证备库状态
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>select switchover_status from v$database;
将目标备库转换为主库
如果:SWITCHOVER_STATUS:TO STANDBY,则
SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
如果:SWITCHOVER_STATUS:SESSIONS ACTIVE,则
SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
成功运行命令后,备库修改为主库
select database_role from v$database;
4.DG Broker
重启目标备库
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP;
先前主库启动日志传送进程
SQL>alter database recover managed standby database disconnect;
PS 总结:这样主库的一次正常切换完成,切换后的状态,原来的主库变为备库,原来的备库变为主库;
4.1 DG broker的优势

DGMGRL命令
DGMGRL>show configuration

DGMGRL>switchover to 备库; --直接可以进行切换
4.2 Data Guard Fast Start Failover

本文如有错误或不完善的地方请大家多多指正,请关注公众号:IT邦德
留言微信:jem_db 或 QQ:2243967774 皆可,您的批评指正是我写作的最大动力!
大家多多点赞,转发,谢谢
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




