RMAN-06059: 没有找到预期的归档日志, 归档日志的丢失将影响可恢复性

129 篇文章 7 订阅

问题描述

备份脚本如下:

#!/bin/bash
source /home/oracle/.bash_profile
rman target / log=/u01/app/oracle/oraclebak/full_backup.log<<EOF
run{
sql 'alter system switch logfile';
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup as compressed backupset database format '/u01/app/oracle/oraclebak/FULL_%T_%d_%U.bak' include current controlfile plus archivelog delete input format '/u01/app/oracle/oraclebak/arch_%T_%d_%U.bak';
release channel c1;   
release channel c2;   
release channel c3;
release channel c4; 
}
EOF

tail日志发现报错

启动 backup 于 27-9月 -19
来自目标数据库的 ORACLE 错误:
ORA-00258: NOARCHIVELOG 模式下的手动归档必须标识日志

释放的通道: c1
释放的通道: c2
释放的通道: c3
释放的通道: c4
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: backup plus archivelog 命令 (在 09/27/2019 08:07:06 上) 失败
RMAN-06059: 没有找到预期的归档日志, 归档日志的丢失将影响可恢复性
ORA-19625: 识别文件+FRA/racdb/archivelog/2017_11_19/thread_1_seq_350169.1638.960433109时出错
ORA-17503: ksfdopn: 2 未能打开文件 +FRA/racdb/archivelog/2017_11_19/thread_1_seq_350169.1638.960433109
ORA-15001: 磁盘组 "FRA" 不存在或尚未装载
ORA-15077: 找不到提供所需磁盘组的 ASM 实例
ORA-29701: 无法连接到集群同步服务

原因与解决

错误“没有找到预期的归档日志,归档日志的丢失将影响可恢复性” 是由于找不到归档日志,可能是之前手动删除物理归档日志造成的。

backup archivelog all里面的all是指所有,不管归档日志过不过期
出现RMAN-06059,ORA-19625此种情况是因为归档日志已被删,但RMAN备份的时候仍然需要,备份无法进行下去。
执行change archivelog all crosscheck ;检查归档日志命令

RMAN> crosscheck archivelog all  ;

使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=7227 设备类型=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: SID=634 设备类型=DISK
分配的通道: ORA_DISK_3
通道 ORA_DISK_3: SID=946 设备类型=DISK
分配的通道: ORA_DISK_4
通道 ORA_DISK_4: SID=1258 设备类型=DISK
分配的通道: ORA_DISK_5
通道 ORA_DISK_5: SID=1575 设备类型=DISK
分配的通道: ORA_DISK_6
通道 ORA_DISK_6: SID=1887 设备类型=DISK
分配的通道: ORA_DISK_7
通道 ORA_DISK_7: SID=2207 设备类型=DISK
分配的通道: ORA_DISK_8
通道 ORA_DISK_8: SID=2520 设备类型=DISK
对归档日志的验证成功
归档日志文件名=/u01/app/oracle/fast_recovery_area/RACDB/RACDB/archivelog/2017_12_15/o1_mf_2_257810_f36rr0ot_.arc RECID=1843089 STAMP=962805124
已交叉检验的 1 对象

对归档日志的验证失败
归档日志文件名=+FRA/racdb/archivelog/2017_11_19/thread_1_seq_350169.1638.960433109 RECID=1843046 STAMP=960433112
对归档日志的验证失败
归档日志文件名=+FRA/racdb/archivelog/2017_11_19/thread_1_seq_350170.745.960433619 RECID=1843048 STAMP=960433623
对归档日志的验证失败
归档日志文件名=+FRA/racdb/archivelog/2017_11_19/thread_1_seq_350171.2431.960434085 RECID=1843052 STAMP=960434090
对归档日志的验证失败
归档日志文件名=+FRA/racdb/archivelog/2017_11_19/thread_2_seq_257809.2113.960434031 RECID=1843051 STAMP=960434032
已交叉检验的 4 对象

发现有很多过期的归档,运行以下命令进行删除过期的归档
删除过期的归档,现在再执行一次备份就没问题了。

RMAN>  delete expired archivelog all;  

释放的通道: ORA_DISK_1
释放的通道: ORA_DISK_2
释放的通道: ORA_DISK_3
释放的通道: ORA_DISK_4
释放的通道: ORA_DISK_5
释放的通道: ORA_DISK_6
释放的通道: ORA_DISK_7
释放的通道: ORA_DISK_8
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=7227 设备类型=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: SID=634 设备类型=DISK
分配的通道: ORA_DISK_3
通道 ORA_DISK_3: SID=946 设备类型=DISK
分配的通道: ORA_DISK_4
通道 ORA_DISK_4: SID=1258 设备类型=DISK
分配的通道: ORA_DISK_5
通道 ORA_DISK_5: SID=1575 设备类型=DISK
分配的通道: ORA_DISK_6
通道 ORA_DISK_6: SID=1887 设备类型=DISK
分配的通道: ORA_DISK_7
通道 ORA_DISK_7: SID=2207 设备类型=DISK
分配的通道: ORA_DISK_8
通道 ORA_DISK_8: SID=2520 设备类型=DISK
db_unique_name 为 RACDB 的数据库的归档日志副本列表
=====================================================================

关键字     线程序列     S 时间下限  
------- ---- ------- - ----------
1843046 1    350169  X 19-11月-17
        名称: +FRA/racdb/archivelog/2017_11_19/thread_1_seq_350169.1638.960433109

1843048 1    350170  X 19-11月-17
        名称: +FRA/racdb/archivelog/2017_11_19/thread_1_seq_350170.745.960433619

1843052 1    350171  X 19-11月-17
        名称: +FRA/racdb/archivelog/2017_11_19/thread_1_seq_350171.2431.960434085

1843051 2    257809  X 19-11月-17
        名称: +FRA/racdb/archivelog/2017_11_19/thread_2_seq_257809.2113.960434031


是否确定要删除以上对象 (输入 YES 或 NO)? yes
已删除的归档日志
归档日志文件名=+FRA/racdb/archivelog/2017_11_19/thread_1_seq_350169.1638.960433109 RECID=1843046 STAMP=960433112
已删除的归档日志
归档日志文件名=+FRA/racdb/archivelog/2017_11_19/thread_1_seq_350170.745.960433619 RECID=1843048 STAMP=960433623
已删除的归档日志
归档日志文件名=+FRA/racdb/archivelog/2017_11_19/thread_1_seq_350171.2431.960434085 RECID=1843052 STAMP=960434090
已删除的归档日志
归档日志文件名=+FRA/racdb/archivelog/2017_11_19/thread_2_seq_257809.2113.960434031 RECID=1843051 STAMP=960434032
4 EXPIRED 对象已删除


RMAN> exit


恢复管理器完成。

假设有归档a,b,c,d
backup archivelog all命令就是a,b,c,d都要备份,而a,b其实已经过期,并且手动删除了,正常备份时就会报错。
crosscheck并删除过期的文件之后,记录里面就剩c,d,再备份就不报错了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值