本文主要是介绍如何在Oracle中释放flash_recovery_area(粗鲁的方法),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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'
这篇关于如何在Oracle中释放flash_recovery_area(粗鲁的方法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!