RMAN备份归档日志ORA-19575
一、问题描述
1)环境oracle 10g;
2)报错现象RMAN进行备份归档报错失败ORA-19575
二、问题处理
1)根据客户说明的现象,百度了一波(详见参考链接)
2)操作系统mv修改名称存在问题的归档日志后,crosscheck检查归档日志,delete删除无效的归档日志后,再次进行备份,问题已解决。
三、参考链接
https://smarttechways.com/2012/11/01/ora-19575-expected-blocks-in-file-location-rman/
https://www.linuxidc.com/Linux/2014-05/102153.htm
https://community.oracle.com/message/9229357#9229357
MOS
BUG 9138594-RMAN ORA-19575备份10g之前的归档日志(文档ID 9138594.8)
ORA-19575 During RMAN Backup (文档 ID 1518129.1)
MOS信息说明
1.bug
10g数据库,升级至11g后,使用rman进行备份10g的归档日志,可能会报错无有效解决方案,但是可以进行全库备份即可11g的数据文件,也无法使用10g归档进行恢复。
2.ORA-19575 问题说明
简要说明就是控制文件记录的归档日志blocks与rman备份对归档日志进行检测发现不同,这个归档日志将无法进行备份,也无法应用于恢复。
四、实际测试
RMAN备份归档日志ORA-19575 一、问题描述 1)环境oracle 10g; 2)报错现象RMAN进行备份归档报错失败ORA-19575 二、问题处理 1)根据客户说明的现象,百度了一波(详见参考链接) 2)操作系统mv修改名称存在问题的归档日志后,crosscheck检查归档日志,delete删除无效的归档日志后,再次进行备份,问题已解决。 三、参考链接 https://smarttechways.com/2012/11/01/ora-19575-expected-blocks-in-file-location-rman/ https://www.linuxidc.com/Linux/2014-05/102153.htm https://community.oracle.com/message/9229357#9229357 MOS BUG 9138594-RMAN ORA-19575备份10g之前的归档日志(文档ID 9138594.8) ORA-19575 During RMAN Backup (文档 ID 1518129.1) MOS信息说明 1.bug 10g数据库,升级至11g后,使用rman进行备份10g的归档日志,可能会报错无有效解决方案,但是可以进行全库备份即可11g的数据文件,也无法使用10g归档进行恢复。 2.ORA-19575 问题说明 1)版本 APPLIES TO: Oracle Server - Enterprise Edition - Version 11.1.0.7 and later Information in this document applies to any platform. 2)说明 No problem with RMAN execution, just error derived from corrupted archivelog, which RMAN will not backup. ORA-19575, 00000, "expected %s blocks in file %s, found %s" // *Cause: During a backup, restore, copy, or scan operation, the indicated // file did not contain as many blocks as were indicated in the file // header. // *Action: The input copy or backup piece is probably corrupt. If another // backup or copy exists of the file that is being restored, then the // corrupt file can be deleted from the recovery catalog and the // operation can be restarted. 简要说明就是控制文件记录的归档日志blocks与rman备份对归档日志进行检测发现不同,这个归档日志将无法进行备份,也无法应用于恢复。 3)处理 Validate all archivelogs for corruption: RMAN> validate archivelog all; Move any corrupted archivelog to a temporary directory using an operating system command such as cp For example: $ mv /opt/app/oracle/oradata/ORA112/archivelog/2013_01_11/o1_mf_1_84_8gyj98c3_.arc /tmp/. Then run a crosscheck command to update RMAN‘s repository. Any files that have been moved will now be marked as expired and RMAN will no longer attempt to back them up. RMAN> crosscheck archivelog all; You can then proceed to take a full database and archivelog backup. WARNING !!!! Any archivelogs that are corrupted cannot be used for recovery, so the recoverability of the database is comprimised !任何损坏的archivelogs都不能用于恢复,因此数据库的可恢复性 四、实际测试 4.1 破坏归档日志(删除部分信息) SQL> alter system switch logfile; SQL> select name from v$archived_log where sequence#=(select max(sequence#) from v$archived_log); NAME -------------------------------------------------------------------------------- C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000614_0994609796.0001 通过windows文本编辑软件,打开归档日志文件,后删除一部分信息。 RMAN> crosscheck archivelog all; 对归档日志的验证失败 归档日志文件名=C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000614_0994609796.0001 RECID=61 STAMP=1021067372 已交叉检验的 28 对象 校验删除部分信息后,rman工具crosscheck检测会直接提示失败。 4.2 破坏归档日志(替换部分文字) SQL> alter system switch logfile; SQL> select name from v$archived_log where sequence#=(select max(sequence#) from v$archived_log); C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000615_0994609796.0001 ue编辑工具,替换NUL为CCC后,再次使用RMAN工具crosscheck 对归档日志的验证失败 归档日志文件名=C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000615_0994609796.0001 RECID=62 STAMP=1021067664 已交叉检验的 28 对象 还是失败 4.3 破坏归档日志,不使用RMAN CHECKCROSS,破坏后直接进行备份(上述的两个破坏性操作进行还原,使用操作前的备份进行还原) SQL> alter system switch logfile; RMAN> backup as compressed backupset full database format ‘C:\win_oracle_11_database\rmanbackup%U.bk‘ include current controlfile plus archivelog delete input format ‘C:\win_oracle_11_database\rmanbackup\%U.bk‘; 启动 backup 于 07-10月-19 当前日志已存档 使用目标数据库控制文件替代恢复目录 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=184 设备类型=DISK 通道 ORA_DISK_1: 正在启动压缩的归档日志备份集 通道 ORA_DISK_1: 正在指定备份集内的归档日志 输入归档日志线程=1 序列=590 RECID=37 STAMP=1019726288 输入归档日志线程=1 序列=591 RECID=38 STAMP=1019728061 输入归档日志线程=1 序列=592 RECID=39 STAMP=1019813814 输入归档日志线程=1 序列=593 RECID=40 STAMP=1019830780 输入归档日志线程=1 序列=594 RECID=41 STAMP=1019864373 输入归档日志线程=1 序列=595 RECID=42 STAMP=1019951079 输入归档日志线程=1 序列=596 RECID=43 STAMP=1019981966 输入归档日志线程=1 序列=597 RECID=44 STAMP=1019982137 输入归档日志线程=1 序列=598 RECID=45 STAMP=1020031215 输入归档日志线程=1 序列=599 RECID=46 STAMP=1020072700 输入归档日志线程=1 序列=600 RECID=47 STAMP=1020182589 输入归档日志线程=1 序列=601 RECID=48 STAMP=1020182604 输入归档日志线程=1 序列=602 RECID=49 STAMP=1020211222 输入归档日志线程=1 序列=603 RECID=50 STAMP=1020244644 输入归档日志线程=1 序列=604 RECID=51 STAMP=1020269122 输入归档日志线程=1 序列=605 RECID=52 STAMP=1020337210 输入归档日志线程=1 序列=606 RECID=53 STAMP=1020681819 输入归档日志线程=1 序列=607 RECID=54 STAMP=1020683592 输入归档日志线程=1 序列=608 RECID=55 STAMP=1020683592 输入归档日志线程=1 序列=609 RECID=56 STAMP=1020934755 输入归档日志线程=1 序列=610 RECID=57 STAMP=1020934777 输入归档日志线程=1 序列=611 RECID=58 STAMP=1020936521 输入归档日志线程=1 序列=612 RECID=59 STAMP=1020949726 输入归档日志线程=1 序列=613 RECID=60 STAMP=1021054890 输入归档日志线程=1 序列=616 RECID=63 STAMP=1021067822 输入归档日志线程=1 序列=617 RECID=64 STAMP=1021068003 通道 ORA_DISK_1: 正在启动段 1 于 07-10月-19 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: backup plus archivelog 命令 (在 10/07/2019 22:00:29 上) 失败 ORA-19599: 块编号 2 已在 archived log C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000616_0994609796.0001 中损坏 RMAN> list expired archivelog all; 无616这个损坏的归档日志 疑问:并且,在本次备份过程中,第一步骤是先备份数据库数据文件,再进行备份归档日志操作,再删除已备份的归档日志? 为何会中断? 4.4 RMAN直接使用crosscheck之后,该归档日志被置为损坏的,后续能否直接备份 RMAN> crosscheck archivelog all; 对归档日志的验证成功 归档日志文件名=C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000614_0994609796.0001 RECID=61 STAMP=1021067372 对归档日志的验证成功 归档日志文件名=C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000615_0994609796.0001 RECID=62 STAMP=1021067664 对归档日志的验证成功 归档日志文件名=C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000616_0994609796.0001 RECID=63 STAMP=1021067822 对归档日志的验证成功 归档日志文件名=C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000617_0994609796.0001 RECID=64 STAMP=1021068003 对归档日志的验证成功 归档日志文件名=C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000618_0994609796.0001 RECID=65 STAMP=1021068470 已交叉检验的 28 对象 RMAN> list expired archivelog all; Null RMAN> backup as compressed backupset full database format ‘C:\win_oracle_11_database\rmanbackup%U.bk‘ include current controlfile plus archivelog delete input format ‘C:\win_oracle_11_database\rmanbackup\%U.bk‘; RMAN-03002: backup plus archivelog 命令 (在 10/07/2019 22:09:56 上) 失败 ORA-19599: 块编号 2 已在 archived log C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000616_0994609796.0001 中损坏 及时使用crosscheck archivelog all;命令,再次进行备份,还是报错,并且无法观察到错误的归档信息。 解答4.3疑问 从报错的内容可以发现,rman是在执行backup plus archivelog时失败的,如果是单独执行backup database是可以正常执行的。 RMAN> backup as compressed backupset full database format ‘C:\win_oracle_11_database\rmanbackup%U.bk‘; 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:45 完成 backup 于 07-10月-19 4.5 RMAN备份命令执行,后台对应的数据库什么操作? C:\Users\Thinkpad> rman target / debug trace=C:\Users\Thinkpad\Desktop\命令\备份\debug_20191007.txt 恢复管理器: Release 11.2.0.4.0 - Production on 星期一 10月 7 22:14:48 2019 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. RMAN-06005: 已连接到目标数据库: WIN11 (DBID=3546669248) RMAN> backup as compressed backupset full database format ‘C:\win_oracle_11_database\rmanbackup%U.bk‘ include current controlfile plus archivelog delete input format ‘C:\win_oracle_11_database\rmanbackup\%U.bk‘; RMAN-03090: 启动 backup 于 07-10月-19 RMAN-03033: 当前日志已存档 RMAN-06009: 使用目标数据库控制文件替代恢复目录 RMAN-08030: 分配的通道: ORA_DISK_1 RMAN-08500: 通道 ORA_DISK_1: SID=358 设备类型=DISK RMAN-08049: 通道 ORA_DISK_1: 正在启动压缩的归档日志备份集 RMAN-08014: 通道 ORA_DISK_1: 正在指定备份集内的归档日志 RMAN-08504: 输入归档日志线程=1 序列=593 RECID=40 STAMP=1019830780 RMAN-08504: 输入归档日志线程=1 序列=594 RECID=41 STAMP=1019864373 RMAN-08504: 输入归档日志线程=1 序列=595 RECID=42 STAMP=1019951079 RMAN-08504: 输入归档日志线程=1 序列=596 RECID=43 STAMP=1019981966 RMAN-08504: 输入归档日志线程=1 序列=597 RECID=44 STAMP=1019982137 RMAN-08504: 输入归档日志线程=1 序列=598 RECID=45 STAMP=1020031215 RMAN-08504: 输入归档日志线程=1 序列=599 RECID=46 STAMP=1020072700 RMAN-08504: 输入归档日志线程=1 序列=600 RECID=47 STAMP=1020182589 RMAN-08504: 输入归档日志线程=1 序列=601 RECID=48 STAMP=1020182604 RMAN-08504: 输入归档日志线程=1 序列=602 RECID=49 STAMP=1020211222 RMAN-08504: 输入归档日志线程=1 序列=603 RECID=50 STAMP=1020244644 RMAN-08504: 输入归档日志线程=1 序列=604 RECID=51 STAMP=1020269122 RMAN-08504: 输入归档日志线程=1 序列=605 RECID=52 STAMP=1020337210 RMAN-08504: 输入归档日志线程=1 序列=606 RECID=53 STAMP=1020681819 RMAN-08504: 输入归档日志线程=1 序列=607 RECID=54 STAMP=1020683592 RMAN-08504: 输入归档日志线程=1 序列=608 RECID=55 STAMP=1020683592 RMAN-08504: 输入归档日志线程=1 序列=609 RECID=56 STAMP=1020934755 RMAN-08504: 输入归档日志线程=1 序列=610 RECID=57 STAMP=1020934777 RMAN-08504: 输入归档日志线程=1 序列=611 RECID=58 STAMP=1020936521 RMAN-08504: 输入归档日志线程=1 序列=612 RECID=59 STAMP=1020949726 RMAN-08504: 输入归档日志线程=1 序列=613 RECID=60 STAMP=1021054890 RMAN-08504: 输入归档日志线程=1 序列=614 RECID=61 STAMP=1021067372 RMAN-08504: 输入归档日志线程=1 序列=615 RECID=62 STAMP=1021067664 RMAN-08504: 输入归档日志线程=1 序列=616 RECID=63 STAMP=1021067822 RMAN-08504: 输入归档日志线程=1 序列=617 RECID=64 STAMP=1021068003 RMAN-08504: 输入归档日志线程=1 序列=618 RECID=65 STAMP=1021068470 RMAN-08504: 输入归档日志线程=1 序列=619 RECID=66 STAMP=1021068571 RMAN-08504: 输入归档日志线程=1 序列=620 RECID=67 STAMP=1021068934 RMAN-08038: 通道 ORA_DISK_1: 正在启动段 1 于 07-10月-19 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: backup plus archivelog 命令 (在 10/07/2019 22:16:10 上) 失败 RMAN-03009: backup 命令 (ORA_DISK_1 通道上, 在 10/07/2019 22:16:10 上) 失败 ORA-19599: 块编号 2 已在 archived log C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000616_0994609796.0001 中损坏 RMAN> ---截取debug少量日志 RMAN-08504: 输入归档日志线程=1 序列=619 RECID=66 STAMP=1021068571 DBGMISC: EXITED krmzlog [22:15:44.788] elapsed time [00:00:00:00.004] DBGIO: channel ORA_DISK_1: blocks=2 block_size=512 [22:15:44.791] (name_log) DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.BACKUPARCHIVEDLOG excl: 0 DBGMISC: ENTERED krmzlog [22:15:44.804] RMAN-08504: 输入归档日志线程=1 序列=620 RECID=67 STAMP=1021068934 DBGMISC: EXITED krmzlog [22:15:44.813] elapsed time [00:00:00:00.009] DBGIO: channel ORA_DISK_1: blocks=304 block_size=512 [22:15:44.818] (name_log) DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.BACKUPSTATUS excl: 0 DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.SETLIMIT excl: 0 DBGMISC: ENTERED krmzlog [22:15:44.840] RMAN-08038: 通道 ORA_DISK_1: 正在启动段 1 于 07-10月-19 DBGMISC: EXITED krmzlog [22:15:44.847] elapsed time [00:00:00:00.007] DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.GENPIECENAME excl: 0 DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.ISFILENAMEOMF excl: 0 DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=3123 db=target proc=SYS.DBMS_BACKUP_RESTORE.BACKUPPIECECREATE excl: 0 DBGRPC: krmxr - channel ORA_DISK_1 returned from peicnt DBGRPC: krmxpoq - returning rpc_number: 72 with status: STARTED16 for channel ORA_DISK_1 DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=backup cmdid=1 status=NOT STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=STARTED DBGRPC: 2 STEPstepid=2 cmdid=1 status=NOT STARTED DBGRPC: 1 DON_F stepid=1 satisfied=FALSE DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: krmxpoq - returning rpc_number: 72 with status: STARTED16 for channel ORA_DISK_1 DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=backup cmdid=1 status=NOT STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=STARTED DBGRPC: 2 STEPstepid=2 cmdid=1 status=NOT STARTED DBGRPC: 1 DON_F stepid=1 satisfied=FALSE DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: krmxpoq - returning rpc_number: 72 with status: STARTED16 for channel ORA_DISK_1 DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=backup cmdid=1 status=NOT STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=STARTED DBGRPC: 2 STEPstepid=2 cmdid=1 status=NOT STARTED DBGRPC: 1 DON_F stepid=1 satisfied=FALSE DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: krmxpoq - returning rpc_number: 72 with status: STARTED16 for channel ORA_DISK_1 DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=backup cmdid=1 status=NOT STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=STARTED DBGRPC: 2 STEPstepid=2 cmdid=1 status=NOT STARTED DBGRPC: 1 DON_F stepid=1 satisfied=FALSE DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: krmxpoq - returning rpc_number: 72 with status: STARTED16 for channel ORA_DISK_1 DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=backup cmdid=1 status=NOT STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=STARTED DBGRPC: 2 STEPstepid=2 cmdid=1 status=NOT STARTED DBGRPC: 1 DON_F stepid=1 satisfied=FALSE DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: krmxpoq - returning rpc_number: 72 with status: STARTED16 for channel ORA_DISK_1 DBGRPC: ENTERED krmqgns DBGRPC: krmqgns: looking for work for channel default (krmqgns) DBGRPC: krmqgns: commands remaining to be executed: (krmqgns) DBGRPC: CMD type=backup cmdid=1 status=NOT STARTED DBGRPC: 1 STEPstepid=1 cmdid=1 status=STARTED DBGRPC: 2 STEPstepid=2 cmdid=1 status=NOT STARTED DBGRPC: 1 DON_F stepid=1 satisfied=FALSE DBGRPC: krmqgns: no work found for channel default (krmqgns) DBGRPC: (krmqgns) DBGRPC: EXITED krmqgns with status 1 DBGRPC: krmxpoq - returning rpc_number: 72 with status: FINISHED16 for channel ORA_DISK_1 DBGRPC: krmxr - channel ORA_DISK_1 calling peicnt DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=19624 db=target proc=SYS.DBMS_BACKUP_RESTORE.BACKUPPIECECREATE excl: 204 DBGRPC: krmxrpc - caloing krmxtrim: with message of length 204: @@@ORA-19624: 操作失败, 如果可能请重试 DBGRPC: ORA-19599: 块编号 2 已在 archived log C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000616_0994609796.0001 中损坏 DBGRPC: ORA-06512: 在 "SYS.DBMS_BACKUP_RESTORE", line 1381 DBGRPC: @@@ DBGMISC: ENTERED krmzejob [22:16:10.070] DBGMISC: Input Args(failed=1),(errnum=-19624) [22:16:10.072] (krmzejob) DBGMISC: duration(stepid=1),endtime=1021040170,jobtime=26s [22:16:10.074] (krmzejob) DBGMISC: duration(stepid=1), remaining(chn sec,bytes)=(0,738811904) [22:16:10.076] (krmzejob) DBGMISC: EXITED krmzejob with status 0 (FALSE) [22:16:10.078] elapsed time [00:00:00:00.008] DBGRPC: krmxrpc - channel ORA_DISK_1 kpurpc2 err=0 db=target proc=SYS.DBMS_BACKUP_RESTORE.GETLIMIT excl: 0 DBGRPC: krmxr - channel ORA_DISK_1 returned from peicnt DBGMISC: ENTERED krmstrim [22:16:10.084] DBGMISC: Trimming message: ORA-19624: 操作失败, 如果可能请重试 [22:16:10.086] (krmstrim) DBGMISC: ORA-19599: 块编号 2 已在 archived log C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000616_0994609796.0001 中损坏 (krmstrim) DBGMISC: ORA-06512: 在 "SYS.DBMS_BACKUP_RESTORE", line 1381 (krmstrim) DBGMISC: ORA-06512: at line 729 (krmstrim) DBGMISC: (227) (krmstrim) ````````````` RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: backup plus archivelog 命令 (在 10/07/2019 22:16:10 上) 失败 RMAN-03009: backup 命令 (ORA_DISK_1 通道上, 在 10/07/2019 22:16:10 上) 失败 RMAN-10032: 执行作业步骤 1 时出现未处理的异常错误: ORA-06512: at line 729 RMAN-10035: RPC 中出现异常错误: ORA-19624: 操作失败, 如果可能请重试 ORA-19599: 块编号 2 已在 archived log C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000616_0994609796.0001 中损坏 ORA-06512: 在 "SYS.DBMS_BACKUP_RESTORE", line 1381 RMAN-10031: RPC 错误: ORA-19624, 在调用 DBMS_BACKUP_RESTORE.BACKUPPIECECREATE 时出现 DBGMISC: ENTERED krmkursr [22:16:10.779] 小结,也就是说,Orace在你执行备份操作的时候,不是上去就备份,而是后台一系列的检测,确认文件无异常后,在进行的有效备份。 4.6 上述问题如何处理,本次演练一下: 1)mv修改上述归档日志名称(损坏的,或者直接删除) 2)RMAN> crosscheck archivelog all; RMAN> list expired archivelog all; 使用目标数据库控制文件替代恢复目录 db_unique_name 为 WIN11 的数据库的归档日志副本列表 ===================================================================== 关键字 线程序列 S 时间下限 ------- ---- ------- - ---------- 63 1 616 X 07-10月-19 名称: C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000616_0994609796.0001 再次进行rman备份 上述4.4的操作有点问题,破坏归档日志后,rman全备失败报错,随后使用rman crosscheck 由于文件存在,检测竟然通过了,list查询损坏的无效的归档日志也看不到。 本次4.6,rm删除了损坏的文件,后续crosscheck检测后,list可以查询到,再次进行rman全备,进行观察。 备份成功!!! 也就是说,解决问题的关键是,mv或者删除归档日志文件后,在进行crosscheck,只要归档日志被标记为无效,oracle备份就不会备份该归档日志 ==========如下信息截取,备份及删除清理已备份的归档,直接跳过了无效的归档序列号616! 输入归档日志线程=1 序列=615 RECID=62 STAMP=1021067664 输入归档日志线程=1 序列=617 RECID=64 STAMP=1021068003 通道 ORA_DISK_1: 正在启动段 1 于 07-10月-19 通道 ORA_DISK_1: 已完成段 1 于 07-10月-19 段句柄=C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\17UDOI5K_1_1.BK 标记=TAG20191007T222451 注释=NONE 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:25 通道 ORA_DISK_1: 正在删除归档日志 归档日志文件名=C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000615_0994609796.0001 RECID=62 STAMP=1021067664 归档日志文件名=C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000617_0994609796.0001 RECID=64 STAMP=1021068003 完成 backup 于 07-10月-19 4.7 学习跳过某个归档日志进行备份的操作 1)破坏归档 626 sequence 2)RMAN备份还原报错场景 RMAN> backup as compressed backupset full database format ‘C:\win_oracle_11_database\rmanbackup%U.bk‘ include current controlfile plus archivelog delete input format ‘C:\win_oracle_11_database\rmanbackup\%U.bk‘; 启动 backup 于 07-10月-19 当前日志已存档 使用通道 ORA_DISK_1 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: backup plus archivelog 命令 (在 10/07/2019 22:34:21 上) 失败 ORA-19563: 标头 (文件 ) 验证失败 *本次不深入研究报错,不再次深入 3)跳过sequence# RUN { change archivelog sequence 626 uncatalog; backup as compressed backupset full database format ‘C:\win_oracle_11_database\rmanbackup%U.bk‘ include current controlfile plus archivelog delete input format ‘C:\win_oracle_11_database\rmanbackup\%U.bk‘; } RMAN日志输出 未编目的归档日志 归档日志文件名=C:\WIN_ORACLE_11_DATABASE\RMANBACKUP\ARCH\ARC0000000626_0994609796.0001 RECID=73 STAMP=1021069922 未分类的 1 对象 ······ 输入归档日志线程=1 序列=625 RECID=72 STAMP=1021069921 输入归档日志线程=1 序列=627 RECID=74 STAMP=1021070044 ······ 跳过去了!!! 因此备份也可以顺利进行!
原文地址:https://www.cnblogs.com/lvcha001/p/11631067.html
时间: 2024-10-10 22:57:47