Oracle 11g R2 ADG 监控
admin
2023-04-18 12:23:56
0次

--===============在standby监控DG的恢复过程==================

v$managed_standby
v$archived_standby
v$archive_desc_status
v$log_history


--在主库查看状态
select dest_name,status,error from v$archive_dest;

--在standby上查询最后收到和应用的归档日志
--archived_seq# 和 applied_seq#的差值就是standby上需要应用primary上的日志数量
--这个只是显示standby上的可用日志和已应用日志
--有可能日志没有从primary传到standby,这种情况下更多日志需要同步到standby

select archived_thread#,archived_seq#,applied_thread#,applied_seq#
from v$archive_dest_status;


--上面的archived_seq#需要与primary上的最后归档日志相比较
--primary上的最后归档日志可以从v$log_history上的sequence#得到
--在primary上执行

select max(sequence#) latest_archive_log
from v$log_history;


--每个归档日志的管理恢复进程的详细过程可以从v$archived_log得到
--registrar中的RFS表示日志从primary通过日志传输服务传输过来
--在standby上执行
--备注:registrar='RFS'并且applied='YES'的归档日志可以从standby的归档日志位置安全移除

select thread#,sequence#,applied,registrar
from v$archived_log;


--在管理恢复操作中,在standby有各种进程,可以从v$managed_standby看到进程状态。

select process,sequence#,status
from v$managed_standby;


--查看DG的基本统计信息
--在standby上执行
set linesize 150
column value format a20
select * from v$dataguard_stats;

set linesize 2000
select sysdate,sum(apply_finish) apply_finish,
sum(apply_lag) apply_lag,
sum(transport_lag) transport_lag,
sum(startup_time) startup_time,
min(TIME_COMPUTED) TIME_COMPUTED
from
(
select
decode(name,'apply finish time',to_number(substr(value,2,2))*86400+to_number(substr(value,5,2))*3600 +to_number(substr(value,8,2))*60 +to_number(substr(value,11,2)),0) apply_finish,
decode(name,'apply lag',to_number(substr(value,2,2))*86400+to_number(substr(value,5,2))*3600 +to_number(substr(value,8,2))*60 +to_number(substr(value,11,2)),0) apply_lag,
decode(name,'transport lag',to_number(substr(value,2,2))*86400+to_number(substr(value,5,2))*3600 +to_number(substr(value,8,2))*60 +to_number(substr(value,11,2)),0) transport_lag,
decode(name ,'estimated startup time',value,0) startup_time,
TIME_COMPUTED
from v$dataguard_stats
where name in (
'apply finish time',
'apply lag',
'estimated startup time',
'transport lag' )
)


--在standby上执行
Set linesize 140
column Timestamp Format a20
column Facility  Format a24
column Severity  Format a13
column Message   Format a60 trunc
 
Select
    to_char(timestamp,'YYYY-MON-DD HH24:MI:SS') Timestamp,
    Facility,
    Severity,
    Message
From
    v$dataguard_status
Order by
    Timestamp;


select *
   from (select TIMESTAMP,
                completion_time "ArchTime",
                SEQUENCE#,
                round((blocks * block_size) / (1024 * 1024), 1) "Size Meg",
                round((TIMESTAMP - lag(TIMESTAMP, 1, TIMESTAMP)
                       OVER(order by TIMESTAMP)) * 24 * 60 * 60,
                      1) "Diff(sec)",
                round((blocks * block_size) / 1024 /
                      decode(((TIMESTAMP - lag(TIMESTAMP, 1, TIMESTAMP)
                              OVER(order by TIMESTAMP)) * 24 * 60 * 60),
                             0,
                             1,
                             (TIMESTAMP - lag(TIMESTAMP, 1, TIMESTAMP)
                              OVER(order by TIMESTAMP)) * 24 * 60 * 60),
                      1) "KB/sec",
                round((blocks * block_size) / (1024 * 1024) /
                      decode(((TIMESTAMP - lag(TIMESTAMP, 1, TIMESTAMP)
                              OVER(order by TIMESTAMP)) * 24 * 60 * 60),
                             0,
                             1,
                             (TIMESTAMP - lag(TIMESTAMP, 1, TIMESTAMP)
                              OVER(order by TIMESTAMP)) * 24 * 60 * 60),
                      3) "MB/sec",
                round(((lead(TIMESTAMP, 1, TIMESTAMP) over(order by TIMESTAMP)) -
                      completion_time) * 24 * 60 * 60,
                      1) "Lag(sec)"
           from v$archived_log a, v$dataguard_status dgs
          where a.name = replace(dgs.MESSAGE, 'Media Recovery Log ', '')
            and dgs.FACILITY = 'Log Apply Services'
          order by TIMESTAMP desc)
  where rownum < 10;

--PHYSICAL STANDBY / MAXIMUM PERFORMANCE
select database_role,LOG_MODE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;

select db_unique_name from v$dataguard_config

--在备用数据库上检查是否有archive redo log gaps
SQL>SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...