【总结】
归档模式下,如果db_recovery_file_dest_size目标位置满了,数据库就会挂起,alert.log里面就会报包含下面关键字的错误讯息。
Tue Jun 22 11:23:00 2010
ARC1: Archiving not possible: No primary destinations
ARC1: Failed to archive thread 1 sequence 2128 (4)
1、场景描述:
我在往数据库导入数据的时候突然卡住了,查看alert.log报警日志如下
2、alert.log:
Tue Jun 22 11:23:00 2010
ARC0: Archiving not possible: No primary destinations
ARC0: Failed to archive thread 1 sequence 2128 (4)
Tue Jun 22 11:23:00 2010
ARC1: Archiving not possible: No primary destinations
ARC1: Failed to archive thread 1 sequence 2128 (4)
3、这时候我猜想是以下几种可能
·ARCn进程坏了 --- ARC0: Failed
·redo log file坏了 --- sequence 2128
·归档目标位置空间满了 -- No primary destinations
4、查看日志文件
全都没有归档,而且seq=2128对应的日志组是group 3
SQL> select * from v$log
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- -------------- ------- --------- ----------------- --------------
1 1 2130 52428800 1 NO CURRENT 41952093 22-JUN-10
2 1 2129 52428800 1 NO ACTIVE 41936252 22-JUN-10
3 1 2128 52428800 1 NO INACTIVE 41922584 22-JUN-10
5、查看db_recovery_file_dest_size大小及使用情况
SQL> show parameter db_recovery_file_dest_size
SQL> select * from V$RECOVERY_FILE_DEST;
6、google了一下发现很多人都碰到这样的问题。
当然,我遇到的问题就是:归档目标位置空间满了
7、解决办法:
办法1:扩大db_recovery_file_dest_size 空间
办法2:清理归档日志文件,释放空间
OS中删除db_recovery_file_dest下不用的归档文件,然后进入rman:
rman>crosscheck archivelog all; //此处绝非crosscheck backup of archivelog all;
rman>delete expired archivelog all; //此处绝非delete expired backup of archivelog all;
rman>delete obsolete;
办法3:直接关闭归档模式
8、扩展:
·假如真的是ARCn进程坏了怎么办呢?
哈哈,重启oracle服务器了
·假如真的是redo log file 坏了怎么办呢?
请参阅:http://bkeep.blog.163.com/blog/static/12341429020105223741546 包你满意!
Link URL: http://bkeep.blog.163.com/blog/static/12341429020105223954239