在DG的运维过程中,备库可能因为缺少日志,而爆出下面的错误。

遇到这样的错误的时候,就需要从主库将缺少的归档日志传到备库,以便于备库日志应用进程执行。

但是遇到的问题是:备库的归档目录中可能有很多文件,无法判断到底哪些编号缺少而打断了SEQUENCE的连续性。
这时候,可以通过编写脚本去做这方面的检查。

下面是我为了解决这个问题而写的脚本:

而它的执行效果是这样的:

————————————————
Done。
2016年9月20日17:30:53

2 thoughts on “Oracle DG:备库归档日志缺少检查”

  1. #!/usr/bin/env sh# Check Oracle DG archive sequence#start_num=$1#end_num=$2#start_num=ls -l /oracle/ERN/oraarch/ERNarch/ | cut -d '_' -f3 | head -n 3 | tail -n 1start_num=$1end_num=ls -l /oracle/ERN/oraarch/ERNarch/ | cut -d '_' -f3 | tail -n 1echo “————————“echo “DG archive: sequence check”echo “————————“echo “Begin SEQUENCE# $start_num”echo “End SEQUENCE# $end_num”echo “===========”loop_item=$start_numwhile(($loop_item < $end_num))doexsist_str=ls -l /oracle/ERN/oraarch/ERNarch/ | cut -d '_' -f3 | grep $loop_itemif [ “$exsist_str” -ne “$loop_item” ]then echo “Need be Add ## $loop_item”filet loop_item=loop_item+1done

    1. 以这种方式可以更灵活的去设定起始的SEQUENCE号码:uxgdc106:oraern 102> sh check_arch_sequence.sh 954355————————DG archive: sequence check————————Begin SEQUENCE# 954355End SEQUENCE# 965281===========Need be Add ## 954357Need be Add ## 954358…类似这样。2016年10月25日17:31:26

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.

隐藏
变装