达梦8 查找丢失的归档日志

文章讲述了在数据库备份过程中遇到归档日志不连续的错误(-718),通常通过执行checkpoint来解决。但在归档日志缺失的情况下,执行checkpoint无效。对于Oracle数据库,可以通过RMAN命令定位丢失的归档日志,而在达梦数据库中,作者自编了脚本来检测日志丢失情况。文章提供了解决该问题的步骤,包括使用脚本检查和找回丢失的日志,以及后续的备份验证过程。
摘要由CSDN通过智能技术生成

我们知道归档日志备份时有时会出现如下错误:

错误号: -718,错误消息: 收集到的归档日志不连续

这时通常执行checkpoint(100)后再备份即可通过。但有的时候是历史归档缺失造成的,这时候执行chekc。下面做一个实验,把某份归档日志移走,归档全备份时报同样的错误:

如果归档日志是曾经不小心删除的,我们这时可能会不停地执行checkpoint(100),结果备份还是失败,最后开始怀疑人生。

如果是ORACLE数据库,它的归档日志文件名字是按照sequence排序的。所以可以肉眼发现哪个中间的文件丢失了。但达梦的归档日志是按照日期时间排序。我们无法知道哪个时间段有没有归档产生。

其实在ORACLE中还可以通过rman命令执行crosscheck archivelog;list expired archivelog ;快速地定位出被误删的归档。

但是在达梦目前版本中我还没有发现简单易行的方法。因此自己编写了两个脚本:

#能恢复到的最后一个归档,如果显示一条状态为ACTIVE表示不缺归档,如果有其他行表示中间有日志丢失
 select ARCH_LSN,status,path from v$arch_file a
 where not exists ( select * from v$arch_file b
 where b.arch_seq=a.next_seq+1)

#显示最近一次备份以来是否缺失归档日志,空行代表不缺失,如果查出一行,代表这行归档日志下面缺失
 select path,create_time from v$arch_file a
 where not exists ( select * from v$arch_file b
 where a.arch_seq=b.next_seq+1)
 and arch_lsn >=(select max(begin_lsn) from v$backupset)

执行上面语句显示出,启始LSN为8259147的归档下方的文件有丢失。

把丢失文件找回后再执行备份,成功

执行下面命令检查:

SQL> select FILE_NAME from v$backupset_arch;

行号     FILE_NAME                                                      
---------- ---------------------------------------------------------------   
1          /DM8/arch/ARCHIVE_LOCAL1_0x20FF03CE_EP0_2023-02-11_10-07-27.log
2          /DM8/arch/ARCHIVE_LOCAL1_0x20FF03CE_EP0_2023-02-11_10-11-32.log
3          /DM8/arch/ARCHIVE_LOCAL1_0x20FF03CE_EP0_2023-02-11_10-14-41.log

显示三个归档日志已经完成备份

再检查没有备份过的归档日志:

SQL> select * from v$arch_file
where not exists (select * from v$backupset_arch
 where path=file_name)2   3   
4   /

行号     DB_MAGIC             STATUS LEN                  FREE                 ARCH_LSN             CLSN                
---------- -------------------- ------ -------------------- -------------------- -------------------- --------------------
           ARCH_SEQ             NEXT_SEQ             CREATE_TIME                CLOSE_TIME                
           -------------------- -------------------- -------------------------- --------------------------
           PATH                                                            PMNT_MAGIC           DSC_SEQNO   CRC_CHECK  
           --------------------------------------------------------------- -------------------- ----------- -----------
           LAST_PKG_OFF         PREV_LSN             GLOBAL_NEXT_SEQ      SRC_DB_MAGIC        
           -------------------- -------------------- -------------------- --------------------
1          553583566            ACTIVE 67108864             28160                8261456              8261504
           1109085              1109131              2023-02-11 10:53:05.569975 2023-02-11 10:53:05.569975
           /DM8/arch/ARCHIVE_LOCAL1_0x20FF03CE_EP0_2023-02-11_10-53-05.log 1966004981           0           1
           27648                0                    1109131              553583566

这个归档日志是备份后新产生的。每次归档日志备份都触发一个日志切换操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值