love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

Phone:18180207355 提供专业Oracle/MySQL/PostgreSQL数据恢复、性能优化、迁移升级、紧急救援等服务

rman delete archivelog with error ora-15028

本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

本文链接地址: rman delete archivelog with error ora-15028

近期好几个都遇到了rman在删除归档时候报错ora-15028,即文件被占用,不允许被删除。实际上该问题的分析过程并不复杂,

Oracle 模式也提供了相关的诊断手段,大致如下:

大致思路是做local或者系统级别的systemstate dump,或者针对操作session做15028 errorstack。本质上两种方式是一样的。

报错过程中,也可能出现ora-00600 kfncSlaveMsgFree1 错误:

 

当我们难道systemstate dump之后,直接搜索报错的归档文件即可,这里以1_370640_926351915.arc 为例:

定位到归档名称之后,跟进proc 我们可以直接反向定位到持有该文件的process是 123,也就自然能看到Unix pid信息。

如果继续进行搜索可能还能看到进程具体在干什么,例如这里发现该进程正在进行logminer分析:

到这里基本上就很清晰了,既然有业务会话在不断进行logminer分析,那么肯定是需要用到归档文件的,当session操作未完成之前,如果进行delete archivelog操作,肯定是会报错ora-15028的,这是一个正常的逻辑。

另外用户这里是dataguard环境,建议也把rman中关于archivelog的删除保留策略定义为如下方式:

CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED ON STANDBY;

ok,暂时就到这里吧,问题非常简单,就做个随笔记录一下。

Leave a Reply

You must be logged in to post a comment.