加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash_recovery_area满的解决办法

发布时间:2020-12-15 17:49:51 所属栏目:百科 来源:网络整理
导读:1、oracle启动报错 ORA-16014: log 3 sequence# 82 not archived,no available destinations ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/hxy/redo03.log' 这是由于Flash Recovery Area空间不足导致数据库不能打开,解决办法如下 一、改变
1、oracle启动报错

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


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


一、改变数据状态到mount,

SQL>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使用状况


计算flash recovery area已经占用的空间:?

SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;? (3)删除不用的归档日志文件 先到/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: '/u01/app/oracle/oradata/hxy/redo03.log' 进入RMAN   rman?   RMAN> connect target /?   RMAN> crosscheck archivelog all;?   RMAN> delete expired archivelog all;? 或者 RMAN>delete obsolete;? ? ? ? ? ?RMAN>crosscheck backupset;? ? ? ? ? ?RMAN>?delete expired backupset;    RMAN>exit? 然后再次启动数据库,问题解决 (3)指定归档日志文件到其他目录 推荐使用这个办法 alter system set?log_archive_dest_1='location=/db/oracle/oradata/archive_log'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读