ORA-19625: error identifying file

问题描述:rman进行备份的时候,出现报错ORA-19625,无效的文件

1.进行数据库备份,然后就出现了报错,没有这个24号的归档日志

RMAN> run{

2> allocate channel ch_1 type disk;

3> allocate channel ch_2 type disk;

4> backup database format '/u01/app/oracle/oradata/Backup/database_%t_%u_%c.bak';

5> backup archivelog all format '/u01/app/oracle/oradata/Backup/archive_%t_%u_%c.bak';

6> }

 

 

2.想起来之前是做SCN增量备份的时候,把24号归档就不知道是删除了还是mv到哪了,反正就是丢了,这个其它文档交代的很清楚,操作系统删除了这个归档日志,但是还没备份过,找不到归档就出错了。然后就执行以下命令,发现了failed for archived log

RMAN> change archivelog all crosscheck;       (物理上删除了归档,但是控制文件不知道,需要交叉同步消息

 

 

 

 

 

 

 3.一开始不知道直接以为执行change archivelog all crosscheck; 告诉控制文件这个归档已经不行了,找不到了,就可以了。然后就进行备份,在我本地的备份路径上所有东西都是ok的,但是rman备份的时候发现24号归档还是被备份进去了,这里没有来的及截图,下边可以备份到完整的bak

RMAN> run{

2> allocate channel ch_1 type disk;

3> allocate channel ch_2 type disk;

4> backup database format '/u01/app/oracle/oradata/Backup/database_%t_%u_%c.bak';

5> backup archivelog all format '/u01/app/oracle/oradata/Backup/archive_%t_%u_%c.bak';

6> }

 

 

 

4.这里就牵扯到另外一条命令:delete expired archivelog all;   这条命令才是同步控制文件和实际物理文件的信息的,之前的change archivelog all crosscheck; 是比较一下控制文件和物理文件的差别的,所以我又把备份文件全都删除,重新备了一遍

删除备份

delete expired archivelog all;  同步信息

重新rman备份

 

 

 

 5.完成

posted @   我爱睡莲  阅读(2104)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示