【原创】rman备份出现ORA-19625

本文详细描述了当Oracle数据库的归档日志被操作系统意外删除时,使用RMAN工具进行日志恢复的过程。包括通过RMAN命令检查并验证归档日志状态,然后重新备份丢失的日志文件,最终确保数据库的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[oracle@sunny stage]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Sun Mar 18 17:21:22 2007
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
connected to target database: ORCL (DBID=1141870147)
 
RMAN> backup archivelog all;
Starting backup at 18-MAR-07
current log archived
using channel ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 03/18/2007 17:52:42
RMAN-06059: expected archived log not found, lost of archived log compromises recoverability
ORA-19625: error identifying file /u01/1_2_616734317.dbf
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
 
原因在于操作系统下删除了这个归档日志,这个日志还没备份过,rman去备份的时候,找不到这个归档就出错了。可用以下方法解决:
 
RMAN> change archivelog all crosscheck;
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=152 devtype=DISK
validation succeeded for archived log
archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2007_02_12/o1_mf_1_1_2x01h9c2_.arc recid=1 stam
p=614355305
validation succeeded for archived log
archive log filename=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2007_02_13/o1_mf_1_2_2x147xxt_.arc recid=2 stam
p=614390912
validation succeeded for archived log
......
......
archive log Crosschecked 27 objects

RMAN> backup archivelog all;
Starting backup at 18-MAR-07
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=1 recid=14 stamp=616946466
input archive log thread=1 sequence=3 recid=16 stamp=616947068
input archive log thread=1 sequence=4 recid=17 stamp=617035270
input archive log thread=1 sequence=5 recid=18 stamp=617068230
input archive log thread=1 sequence=6 recid=19 stamp=617214283
input archive log thread=1 sequence=7 recid=20 stamp=617236569
input archive log thread=1 sequence=8 recid=21 stamp=617317844
input archive log thread=1 sequence=9 recid=22 stamp=617365403
input archive log thread=1 sequence=10 recid=23 stamp=617373909
input archive log thread=1 sequence=11 recid=24 stamp=617388719
input archive log thread=1 sequence=12 recid=25 stamp=617546548
input archive log thread=1 sequence=13 recid=26 stamp=617562955
input archive log thread=1 sequence=14 recid=27 stamp=617565160
input archive log thread=1 sequence=15 recid=28 stamp=617565330
channel ORA_DISK_1: starting piece 1 at 18-MAR-07
channel ORA_DISK_1: finished piece 1 at 18-MAR-07
piece handle=/stage/test/ORCL/backupset/2007_03_18/o1_mf_annnn_TAG20070318T175530_2zt34n86_.bkp tag=TAG20070318T175530 c
omment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:36
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=1 recid=1 stamp=614355305
input archive log thread=1 sequence=2 recid=2 stamp=614390912
input archive log thread=1 sequence=3 recid=3 stamp=616178167
input archive log thread=1 sequence=4 recid=4 stamp=616179332
input archive log thread=1 sequence=5 recid=5 stamp=616337492
input archive log thread=1 sequence=6 recid=6 stamp=616456995
input archive log thread=1 sequence=7 recid=7 stamp=616458691
input archive log thread=1 sequence=8 recid=10 stamp=616734185
input archive log thread=1 sequence=9 recid=12 stamp=616734187
input archive log thread=1 sequence=10 recid=11 stamp=616734186
channel ORA_DISK_1: starting piece 1 at 18-MAR-07
channel ORA_DISK_1: finished piece 1 at 18-MAR-07
piece handle=/stage/test/ORCL/backupset/2007_03_18/o1_mf_annnn_TAG20070318T175530_2zt35rxm_.bkp tag=TAG20070318T175530 c
omment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:26
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=1 recid=13 stamp=616734317
channel ORA_DISK_1: starting piece 1 at 18-MAR-07
channel ORA_DISK_1: finished piece 1 at 18-MAR-07
piece handle=/stage/test/ORCL/backupset/2007_03_18/o1_mf_annnn_TAG20070318T175530_2zt36m4w_.bkp tag=TAG20070318T175530 c
omment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 18-MAR-07
备份成功

转载于:https://www.cnblogs.com/zhangxsh/p/3494525.html

Oracle数据库中使用RMAN(Recovery Manager)进行备份时,如果出现错误 `RMAN-03002`、`RMAN-06059` 和 `ORA-19625`,这些错误通常与归档日志文件丢失或路径不一致有关。以下是针对这些问题的解决方案: ### 错误分析与解决方法 1. **RMAN-03002: failure of backup command** - 该错误表示RMAN备份命令执行失败。它通常作为其他错误(如`RMAN-06059`)的包装错误,指示具体的失败原因。 - 这个错误本身不会提供详细的失败原因,因此需要查看堆栈中的其他错误信息以确定根本原因。 2. **RMAN-06059: expected archived log not found, loss of archived log compromises recoverability** - 该错误表明RMAN期望找到某个归档日志文件,但未找到。这通常是因为归档日志文件已被手动删除或路径不一致导致的。 - 这会直接影响数据库的可恢复性,因为RMAN无法找到必要的归档日志文件来完成备份或恢复操作。 3. **ORA-19625: error identifying file** - 该错误进一步说明了文件路径问题,例如归档日志文件不存在或路径错误。 - 在Linux系统上,错误 `ORA-27037: unable to obtain file status` 和 `Linux-x86_64 Error: 2: No such file or directory` 表明RMAN无法访问指定的归档日志文件路径。 ### 解决方案 1. **验证归档日志文件路径** - 检查归档日志文件的实际存储路径是否与RMAN目录中记录的路径一致。 - 如果归档日志文件已被手动删除,可以使用以下命令从RMAN目录中清除无效的归档日志信息: ```sql RMAN> crosscheck archivelog all; RMAN> delete expired archivelog all; ``` 这些命令会标记无效的归档日志条目,并从RMAN目录中删除它们[^2]。 2. **更新归档日志路径** - 如果归档日志文件被移动到新的路径,需要更新RMAN目录中的路径信息。可以使用以下命令注册新的归档日志文件: ```sql RMAN> catalog start with '/new/archivelog/path/'; ``` 这将重新注册指定路径下的所有归档日志文件。 3. **避免手动删除归档日志文件** - 手动删除归档日志文件可能导致RMAN目录与实际文件状态不一致。建议通过RMAN命令删除归档日志文件,以确保目录信息同步: ```sql RMAN> delete archivelog until time 'sysdate-7'; ``` 这将删除7天前的归档日志文件,并更新RMAN目录。 4. **检查归档日志路径权限** - 确保Oracle数据库实例具有对归档日志文件路径的读写权限。权限不足可能导致RMAN无法访问或写入归档日志文件。 5. **配置归档日志删除策略** - 为了避免归档日志文件占用过多磁盘空间,可以配置RMAN的归档日志删除策略: ```sql RMAN> configure archivelog deletion policy to applied on standby; ``` 这将确保归档日志文件在备用数据库上应用后自动删除。 ### 示例:清理无效归档日志条目 ```sql RMAN> run { crosscheck archivelog all; delete expired archivelog all; } ``` 此脚本会检查所有归档日志文件的状态,并删除RMAN目录中无效的条目。 ### 示例:重新注册归档日志文件 ```sql RMAN> catalog start with '/new/archivelog/path/'; ``` 此命令会重新注册指定路径下的所有归档日志文件。 ### 示例:配置归档日志删除策略 ```sql RMAN> configure archivelog deletion policy to applied on standby; ``` 此命令配置归档日志删除策略,确保归档日志文件在备用数据库上应用后自动删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值