Oracle管理

Oracle flash_recovery_area满了的解决办法

时间:2013/9/7 21:04:05  作者:www.solgle.com  来源:说歌社区  查看:3309  评论:1
内容摘要:oracle启动报错ORA-16014: log 3 sequence# 82 not archived, no available destinationsORA-00312: online log 3 thread 1: '/db/oracle/oradata/gzl/red...

oracle启动报错

ORA-16014: log 3 sequence# 82 not archived, no available destinations
ORA-00312: online log 3 thread 1: '/db/oracle/oradata/gzl/redo03.log'

这是由于Flash Recovery Area空间不足导致数据库不能打开,解决办法如下

一、改变数据状态到mount,alter database mount

二、查看Flash Recovery Area空间的使用状态

SQL> show parameter db_recovery_file

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /db/oracle/flash_recovery_area
db_recovery_file_dest_size big integer 2G

当我们将数据库的模式修改为归档模式的时候,如果没有指定归档目录,默认的归档文件就会放到Flash

Recovery Area的目录,但是这个目录是有大小限制的,如果超过了这个大小,就会导致2个问题,一是不

能完成归档,二是,在出现问题后,如果此时重启数据库,那么数据库就无法正常启动。


三、这个问题有3个解决办法,(1)扩大Flash Recovery Area的容量(2)删除不用的归档日志文件(3

)指定归档日志文件到其他目录

(1)扩大Flash Recovery Area容量治标不治本

SQL> alter system set db_recovery_file_dest_size=3G scope=both; #增加容量

SQL> show parameter db_recovery_file

#查看是否增加

SQL> select * from v$flash_recovery_area_usage #检查

Flash Recovery Area使用状况


(2)删除不用的归档日志文件
先到/db/oracle/flash_recovery_area目录下删除不用的归档文件

但是还要到数据库里删除一下,要不然数据库不认,再启动会报下面的错误

ORA-16038: log 3 sequence# 82 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 3 thread 1: '/db/oracle/oradata/gzl/redo03.log'

进入RMAN

  rman

  RMAN> connect target /

  RMAN> crosscheck archivelog all;

  RMAN> delete expired archivelog all;

  RMAN>exit

然后再次启动数据库,问题解决

(3)指定归档日志文件到其他目录

推荐使用这个办法 alter system set

log_archive_dest_1='location=/db/oracle/oradata/archive_log'

 

标签:flash_recovery_area满了的解决办法 oracle 

solgle.com 版权所有,欢迎分享!!!

相关评论
 img1 img2 img3 img4 img5 img6 img7 img8 img9 img10
评论者:      验证码:  点击获取验证码
   Copyright © 2013-2028 solgle.com,All rights reserved.[solgle.com] 公安机关备案号:51010802000219
Email:solgle@solgle.com; weixin:cd1008610000 ICP:蜀ICP备14011070号-1