ORA-16014: log string sequence# string not archived, no available destinations Flash Recovery Area

本文详细解析了Oracle数据库错误ORA-16014的成因,即log2sequence#195未归档且无可用目的地。通过分析在Oracle实例创建时指定的FlashRecoveryArea空间大小限制,导致数据库无法正常归档或在出现问题后无法重启。文章提供了三种解决方法:增加FlashRecoveryArea大小、删除归档目录中的备份或文件、将归档目录指定到其他位置。同时强调了归档目录最好指定到其他位置的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天一网友问我一个问题,数据库报错,错误信息如下:

Errorsinfilee:/oracle/product/10.2.0/admin/orcl/bdump/orcl_arc0_5620.trc:
ORA-16014:log2sequence#195notarchived,noavailabledestinations
ORA-00312:onlinelog2thread1:'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO02.LOG'

这个问题是老问题了,之前我也整理过一篇文章。

FlashRecoveryArea空间不足导致数据库不能打开或hang

http://blog.youkuaiyun.com/xujinyang/article/details/6830475

先来分析一下为什么会出现这个问题。在Oracle实例创建的时候会指定FlashRecoveryArea,该空间默认大小是2G

SQL>showparameterdb_recovery_file

NAMETYPEVALUE

-----------------------------------------------------------------------------

db_recovery_file_deststringD:/oracle/product/10.2.0/flash_recovery_area

db_recovery_file_dest_sizebiginteger2G

当我们将数据库的模式修改为归档模式的时候,如果没有指定归档目录,默认的归档文件就会放到FlashRecoveryArea的目录,但是这个目录是有大小限制的,如果超过了这个大小,就会导致2个问题,一是不能完成归档,二是,在出现问题后,如果此时重启数据库,那么数据库就无法正常启动。

FlashRecoveryArea是留给Flashback的。所以归档目录最好指定到其他位置。在切换数据库模式时,就要指定归档目录。

Oracle归档与非归档的切换

http://blog.youkuaiyun.com/xujinyang/article/details/6830327

如果我们直接将数据库切换到归档模式,而且没有指定归档目录。显示的相关信息如下:

SQL>archiveloglist

数据库日志模式非存档模式

自动存档禁用

存档终点USE_DB_RECOVERY_FILE_DEST

最早的联机日志序列6

当前日志序列8

SQL>shutdownimmediate

数据库已经关闭。

已经卸载数据库。

ORACLE例程已经关闭。

SQL>startupmount

ORACLE例程已经启动。

TotalSystemGlobalArea612368384bytes

FixedSize1250428bytes

VariableSize213912452bytes

DatabaseBuffers390070272bytes

RedoBuffers7135232bytes

数据库装载完毕。

SQL>alterdatabasearchivelog;

数据库已更改。

SQL>archiveloglist;

数据库日志模式存档模式

自动存档启用

存档终点USE_DB_RECOVERY_FILE_DEST

最早的联机日志序列6

下一个存档日志序列8

当前日志序列8

SQL>showparameterdb_recovery_file

NAMETYPEVALUE

-----------------------------------------------------------------------------

db_recovery_file_deststringD:/oracle/product/10.2.0/flash_recovery_area

db_recovery_file_dest_sizebiginteger2G

总结一下,当遇到这样错误:ORA-16014:log2sequence#notarchived,noavailabledestinations。我们可以通过如下三种方法来解决:

1.增加FlashrecoveryArea大小。这种方法治标不治本。当满了之后,还是会增加。

SQL>altersystemsetdb_recovery_file_dest_size=3Gscope=both;
系统已更改。

检查flashrecoveryarea的使用情况:
SQL>select*fromv$flash_recovery_area_usage;

计算flashrecoveryarea已经占用的空间:
SQL>selectsum(percent_space_used)*3/100fromv$flash_recovery_area_usage;

2.也可以删除归档目录中不用的备份或者文件。

删除archivelog

RMAN>crosscheckarchivelogall;

RMAN>deleteexpiredarchivelogall;

删除备份:

(1).RMAN>deleteobsolete;
(2).RMAN>crosscheckbackupset;
RMAN>deleteexpiredbackupset;

3.将Archivelog指定到其他位置。推荐使用这种方法。

altersystemsetlog_archive_dest_1='location=/oracle/oracle10g/log/archive_log';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值