Oracle Dataguard 漏传归档日志

Oracle dataguard因为设置为异步,非强制,有些时候会莫名漏掉一些日志不传递,很多时候都是看日志才发现日志无法应用了。
如果去找到底漏了那个日志很费功夫,于是就像写一个脚本。

 

1.在备份服务器上,新建一个checklog.vbs
dim fso,fs,f,f1
dim startnum,endnum
'设定其实数和结束数(这个需要根据自己的实际情况修改)
startnum=
endnum=
'创建两个文件,一个文件存放少那个日志
'另外一个日志记录注册语句
Set fso= CreateObject("Scripting.FileSystemObject")
if fso.FileExists("s:\result.txt") then
fso.DeleteFile("s:\result.txt")
fso.DeleteFile("s:\resultsql.txt")
end if
fso.CreateTextFile("s:\result.txt")
fso.CreateTextFile("s:\resultsql.txt")
'打开两个日志文件,记录缺少的日志文件
set f=Fso.OpenTextFile("s:\result.txt",2,true)
set f1=Fso.OpenTextFile("s:\resultsql.txt",2,true)
set fs=wscript.createobject("scripting.filesystemobject")
for i=startnum to endnum step 1
filestr="t:\oracle\PRD\oraarch\ARCH_1_"& i &"_845400201.ARC"
filesqlstr="Alter database register logfile'"&filestr&"';"
if (fs.FileExists(filestr)=false) then
f.WriteLine(filestr)
f1.WriteLine(filesqlstr)
end if
next
f.close
f1.close
set fso=nothing

 

2.在主服务上
将备份服务器上产生的结果result.txt拷贝过来。
也新建一个copylog.vbs
dim fso,fs,f
'打开结果,进行 遍历,把漏掉的log文件整理到一个文件夹中
Set Fso = CreateObject("Scripting.FileSystemObject")
set f=Fso.OpenTextFile("s:\result.txt",1,true)
set fs=wscript.createobject("scripting.filesystemobject")
Do While f.AtEndOfStream <> True
filestr=f.ReadLine()
fs.CopyFile filestr,"t:\aaa\"
loop
f.close
set fso = nothing

以为这样就成功了,结果还是不行,日志中记录:
FAL[client]: Failed to request gap sequence
 GAP - thread 1 sequence 605520-605537
 DBID 1806838021 branch 845400201
FAL[client]: All defined FAL servers have been attempted.
-------------------------------------------------------------
Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization
parameter is defined to a value that is sufficiently large
enough to maintain adequate log switch information to resolve
archivelog gaps.
-------------------------------------------------------------
原来这些之前手工拷贝过去的有漏掉注册的,手工注册一下,还是不行,再检查,发现605520这个日志文件有问题,主机上的文件大小和备份机的大小居然不一致,应该是拷贝导致的,重新拷贝一次,再注册一下,OK.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值