本文标记的是[翻译],但并不是完全翻译原文,因为我觉得其他两个标记[原创]和[转载]更加不合适
问题描述
本人执行delete noprompt archivelog all;时
会出现如下错误
ORA-15028: ASM file ‘+ASM/…/…/archivelog/2018_06_04/thread_1_seq_369793.27460.977942437’ not dropped; currently being accessed
一但出现这个错误,归档日志删除操作就无法继续下去了。
不管运行几次delete noprompt archivelog all;命令,都是这个错误,
都是碰到同一个文件’+ASM/…/…/archivelog/2018_06_04/thread_1_seq_369793.27460.977942437’ 就停止运行归档日志的删除操作了。
根据路径中的“2018_06_04”可以判断 ,这文件都已经几个月前的了,不应该还是"currently being accessed"的状态,肯定是有什么程序或者进程加锁了这个文件一直不释放。
之后百度到了这个文章http://www.cnblogs.com/future2012lg/p/5234435.html
解决方法
以下都是linux环境下
1.命令ps -ef | grep -i ora_arc*找到所有的归档日志进程
oracle 26934 1 0 2017 ? 05:01:52 ora_arc0_orcl
oracle 26936 1 0 2017 ? 02:11:25 ora_arc1_orcl
oracle 26938 1 0 2017 ? 00:17:55 ora_arc2_orcl
…
2.根据路径中的“thread_1”猜测是“ora_arc1_orcl”这个进程锁了文件
3.命令kill -9 26936结束进程“ora_arc1_orcl”
4.命令delete noprompt archivelog all;,没有再遇到"currently being accessed"这样的问题
提醒:过段时间运行命令ps -ef | grep -i ora_arc*会发现刚才杀掉的进程“ora_arc1_orcl”会自动恢复