之前已经整理出: 1.【DG】DataGuard搭建-11gR2单主单备 2.【DG】DataGuard架构和部分概念整理 下面继续整理DataGuard相关动态性能视图,用于查看物理DG状态,以及日志传输/应用服务简单说明,要结合架构和概念篇看
序号 | 动态性能视图名称 | 说明 |
---|---|---|
1 | v$database | 查询打开模式,角色,保护模式,保护级别 |
2 | v$managed_standby | 备库查询进程情况,RFS、MRP0 |
3 | v$standby_log | 查看standby redo log |
4 | v$archive_dest_status | 查看归档目的地的状态 |
5 | v$archive_dest | 查看归档的目的地 |
6 | v$dataguard_status | 查看DG状态事件 |
7 | v$standby_log | 查看归档日志应用情况,非常重要 |
8 | v$archive_gap | 查询主备之间gap |
9 | v$log_history | 查询归档历史 |
10 | v$dataguard_config | 查看DG配置的DB_UNIQUE_NAME |
首当其冲肯定是v$database,在主备库执行下面语句分别查看:
--查看db_name,打开模式,数据库角色,保护模式,保护级别
select name,open_mode,database_role,protection_mode,protection_level from v$database;
上两张图可见该环境搭建了物理备库,最大性能模式并且已经开启了日志应用(MRP),如果备库取消日志应用的话,则执行该语句显示
查看进程情况,如果没有MRP0,就是没开启日志应用
select process,pid,status,thread#,sequence# from v$managed_standby;
说明下这几个字段:
查看standby redo log
select group#,sequence#,archived,status from v$standby_log;
关于archived和status的官方文档说明
注意:最大可用模式,最高保护模式的备库都必须要有standby redo log
V$ARCHIVE_DEST_STATUS displays runtime and configuration information for the archived redo log destinations. 就是查看归档目的地的状态
select dest_name,status,type,recovery_mode,SYNCHRONIZATION_STATUS,ERROR from v$archive_dest_status;
--验证是否有gap,dest_id=2代表备库,1代表主库
select t."STATUS", t."GAP_STATUS" from v$archive_dest_status t where t."DEST_ID" = 2;
主要是看归档的目的地,搭建的时候配置了LOG_ARCHIVE_DEST_1和LOG_ARCHIVE_DEST_2
select dest_name,status,DESTINATION,ERROR from v$archive_dest;
查看DG状态事件,如果有什么错误就可以在这里查看
select * from v$dataguard_status t order by t."TIMESTAMP" desc
--查看日志应用情况
select unique thread#,max(sequence#) over(partition by thread#) last from v$archived_log;
--查看哪些日志尚未应用(备库)
select thread#,sequence#,first_time,next_time,applied from v$archived_log where applied='NO';
--查看哪些已应用
select thread#,name,sequence#,first_time,next_time,applied from v$archived_log;
查询备库有哪些没有同步
查询归档历史
select database_role,db_unique_name,open_mode,protection_mode,protection_level,switchover_status from v$database;
查看DG配置的DB_UNIQUE_NAME
--1.归档目的地的位置
show parameter log_archive_dest_1 本地
show parameter log_archive_dest_2 备库
--2.归档目的地状态(enable:开启 defer:禁用)
show parameter log_archive_dest_state_1 本地
show parameter log_archive_dest_state_2 备库
官方文档说明的配置:
SYNC AFFIRM NET_TIMEOUT=15 REOPEN=60 COMPRESSION=ENABLE
SERVICE=tnssbdb LGWR SYNC AFFIRM NET_TIMEOUT=15 REOPEN=60 COMPRESSION=ENABLE
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=sbdb
本质上是使用介质恢复来保持主库和备库的数据同步。
应用redo数据(主库)到standby备库,以保持与primary主库的数据一致。 redo数据即可以从standby数据库的归档文件读取,也可直接应用standby redo log文件(如果实时应用打开了的话)。
--1.开启实时应用
alter database recover managed standby database using current logfile disconnect;
--2.开启非实时应用,切换归档才应用日志
alter database recover managed standby database disconnect;
--3.取消应用
alter database recover managed standby database cancel;