在Oracle Dataguard日常运维的时候,我们总会涉及到查询备库日志应用情况的需求。

我们通常的做法是:
select sequence#,applied,to_char(next_time,’yyyy-mm-dd hh25:mi:ss’) “Next” from v$archived_log order by sequence#;

然后,查看最后结果集中,最后Applied的YES条目停在了哪个Sequence#上。

这种方式的问题是,如果DG跑了很久,那么这个v$archived_log表的记录会非常长,不易于查阅。

其实解决这个不好阅读的方法很简单,我们修改一下查询语句就可以让结果集更易读,也更快速的拉出来,节省时间,也保护眼睛。

具体如下:
set linesize 400
col name for a60
select name,thread#,sequence#,to_char(first_time,’yyyy-mm-dd hh24:mi:ss’) “First”,to_char(next_time,’yyyy-mm-dd hh24:mi:ss’) “Next”,applied from v$archived_log,(select max(sequence#) “SEQ#” from v$archived_log where applied=’YES’) b where sequence# between b.seq#-5 and b.seq#+5 order by sequence#;

只查询应用成功的SEQUENCE#上下文5条内的记录,这样查询的速度很快,而且结果集更易读。

————————————
Done。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

隐藏
变装