ORA-16014: log string sequence# string not archived, no avai
今天一网友问我一个问题,数据库报错,错误信息如下: ??? Errors?in?file?e:/oracle/product/10.2.0/admin/orcl/bdump/orcl_arc0_5620.trc: ? 这个问题是老问题了,之前我也整理过一篇文章。?
Flash?Recovery?Area空间不足导致数据库不能打开或hang住? http://www.voidcn.com/article/p-yeukzavq-rb.html ?
先来分析一下为什么会出现这个问题。?在Oracle?实例创建的时候会指定Flash?Recovery?Area,该空间默认大小是2G。? ?
SQL>?show?parameter?db_recovery_file NAME????????????????????TYPE??????VALUE ------------------------------------?-----------?------------------------------ db_recovery_file_dest???????string??D:/oracle/product/10.2.0/flash_recovery_area db_recovery_file_dest_size???big?integer??2G ?
当我们将数据库的模式修改为归档模式的时候,如果没有指定归档目录,默认的归档文件就会放到Flash?Recovery?Area的目录,但是这个目录是有大小限制的,如果超过了这个大小,就会导致2个问题,一是不能完成归档,二是,在出现问题后,如果此时重启数据库,那么数据库就无法正常启动。 ?
Flash?Recovery?Area?是留给Flashback的。?所以归档目录最好指定到其他位置。在切换数据库模式时,就要指定归档目录。?
Oracle?归档与非归档的切换 http://www.voidcn.com/article/p-ccemjzoy-rb.html ?
如果我们直接将数据库切换到归档模式,而且没有指定归档目录。?显示的相关信息如下:
SQL>?archive?log?list 数据库日志模式?????????????非存档模式 自动存档?????????????禁用 存档终点????????????USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列?????6 当前日志序列???????????8 SQL>?shutdown?immediate 数据库已经关闭。 已经卸载数据库。 ORACLE?例程已经关闭。 SQL>?startup?mount ORACLE?例程已经启动。 Total?System?Global?Area??612368384?bytes Fixed?Size??????????????????1250428?bytes Variable?Size?????????????213912452?bytes Database?Buffers??????????390070272?bytes Redo?Buffers????????????????7135232?bytes 数据库装载完毕。 SQL>?alter?database?archivelog; 数据库已更改。 SQL>?archive?log?list; 数据库日志模式????????????存档模式 自动存档?????????????启用 存档终点????????????USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列?????6 下一个存档日志序列???8 当前日志序列???????????8 SQL>?show?parameter?db_recovery_file NAME????????????????????TYPE??????VALUE ------------------------------------?-----------?------------------------------ db_recovery_file_dest???????string??D:/oracle/product/10.2.0/flash_recovery_area db_recovery_file_dest_size???big?integer??2G ?
总结一下,当遇到这样错误:ORA-16014:?log?2?sequence#??not?archived,?no?available?destinations。我们可以通过如下三种方法来解决: ?
1.?增加Flash?recovery?Area?大小。?这种方法治标不治本。?当满了之后,还是会增加。 SQL>?alter?system?set?db_recovery_file_dest_size=3G?scope=both; 检查flash?recovery?area的使用情况: 计算flash?recovery?area已经占用的空间: ? 2.?也可以删除归档目录中不用的备份或者文件。? 删除archive?log: RMAN>?crosscheck?archivelog?all; RMAN>?delete?expired?archivelog?all; 删除备份: (1).?RMAN>delete?obsolete; ?
3.?将Archive?log?指定到其他位置。?推荐使用这种方法。 ?alter?system?set?log_archive_dest_1='location=/oracle/oracle10g/log/archive_log'; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |