ITPub博客

首页 > 数据库 > Oracle > flash_recovery_area过小引起的日志无法归档的处理方案

flash_recovery_area过小引起的日志无法归档的处理方案

原创 Oracle 作者:幕南风 时间:2014-07-03 13:27:19 0 删除 编辑

环境:

14:13:26 sys@ORCL (^ω^) select * from v$version where rownum=1;

BANNER
--------------------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod


    出问题的是个测试库,从安装到现在一直没清理过flash_recovery_area。

13:54:29 idle (^ω^) startup
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
13:54:47 idle (^ω^) shutdown abort
ORACLE 例程已经关闭。
13:55:06 idle (^ω^) startup
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             205523844 bytes
Database Buffers          398458880 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
ORA-16038: 日志 3 序列号 48 无法归档
ORA-19809: 超出了恢复文件数的限制
ORA-00312: 联机日志 3 线程 1:
\'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ONLINELOG\O1_MF_3_7TQZWZOY_.LOG\'
ORA-00312: 联机日志 3 线程 1:
\'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ONLINELOG\O1_MF_3_7TQZX11D_.L
OG\'


    没有把经年累月叠成的归档日志刷到SBT上,导致flash_recovery_area空间压力,新的归档无法进去。

13:59:27 idle (^ω^) alter database clear unarchived logfile \'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ONLINELOG\O1_MF_3_7TQZWZOY_.LOG\';
alter database clear unarchived logfile \'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ONLINELOG\O1_MF_3_7TQZWZOY_.LOG\'
*
第 1 行出现错误:
ORA-01514: 日志说明中出现错误: 没有此类日志
ORA-01517: 日志成员:
\'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ONLINELOG\O1_MF_3_7TQZWZOY_.LOG\'


    手动清除未归档的日志会直接报错。

14:00:37 idle (^ω^) archive log start;
已处理的语句
14:05:24 idle (^ω^) archive log next;
ORA-16014: 日志 3 的序列号 48 未归档, 没有可用的目的地
ORA-00312: 联机日志 3 线程 1: \'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ONLINELOG\O1_MF_3_7TQZWZOY_.LOG\'
ORA-00312: 联机日志 3 线程 1: \'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ONLINELOG\O1_MF_3_7TQZX11D_.LOG\'
14:05:34 idle (^ω^) show parameter db_recover

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
db_recovery_file_dest                string
D:\oracle\product\10.2.0/flash
_recovery_area
db_recovery_file_dest_size           big integer
3G
14:06:09 idle (^ω^) alter system set db_recovery_file_dest_size=4g ;

系统已更改。

14:06:51 idle (^ω^) archive log next;
已存档一个日志。
14:07:18 idle (^ω^) alter database open;

数据库已更改。


    恢复完毕。

    小结:在生产库上由于flash_recovery_area拥塞导致的问题可能更复杂,我们需隔三差五的对其进行“净身”。

<!-- Baidu Button BEGIN -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26515977/viewspace-1207797/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: flashback六大技术之flashback version query
下一篇: oracle 集操作和exists、in的运用场景
请登录后发表评论 登录
全部评论
腾讯数据库工程师

注册时间:2012-05-10

最新文章