您的位置:首页 > 数据库 > Oracle

Oracle 10g FRA区域没有可用空间导致数据库故障一例分析

2012-01-31 21:19 295 查看
FRA满了,导致在线联机日志无法归档

今天早晨启动数据库,发现数据库没有打开,检查数据库的状态:

SQL> select open_mode from v$database;

OPEN_MODE

----------

MOUNTED

SQL> select open_mode from v$database;

OPEN_MODE

----------

MOUNTED

SQL> alter database open;

alter database open

*

第 1 行出现错误:

ORA-16014: 日志 2 的序列号 2 未归档, 没有可用的目的地

ORA-00312: 联机日志 2 线程 1:

'C:\ORACLE\PRODUCT\10.2.0\ORADATA\KEYMEN\REDO02.LOG'

检查磁盘空间,发现硬盘有足够的空间,什么问题导致在线联机日志不能归档呢?接着检查Oracle10g的快速闪回区(flash_recovery_area),发现空间占用已经达到了1.99G(2146861056字节)。看来问题就在这里了。

做一个简单的计算:

SQL> select 2146861056/1024/1024/1024 as "FRA Usage" from dual;

FRA Usage

----------

1.99942017

在Oracle10g中,默认情况下FRA的容量为2G,现在空间使用率已经达到了1.99G,归档日志没有归档的空间了,所以数据库不能OPEN了。需要调整FRA的大小。



什么是FRA?

快速恢复区是 Oracle 数据库中所有与恢复相关的文件和活动的统一存储位置。从介质故障完全恢复数据库所需的所有文件都包含在快速恢复区中。可以在快速恢复区中创建的与恢复相关的文件包括:归档重做日志文件、控制文件、Recovery Manager (RMAN) 创建的备份、闪回日志和更改跟踪文件。通过分配存储位置以及将与恢复相关的文件统一到特定区域内,Oracle 数据库服务器减轻了数据库管理员的负担,使他们不必管理由这些组件创建的磁盘文件。快速恢复区的默认位置是 $ORACLE_BASE。

查看FRA中记录的文件数量

SQL> SELECT substr(name, 1, 30) name, space_limit AS quota,

2 space_used AS used,

3 space_reclaimable AS reclaimable,

4 number_of_files AS files

5 FROM v$recovery_file_dest ;

NAME QUOTA USED RECLAIMABLE FILES

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

c:\oracle\product\10.2.0/flash 5242880000 2256708096 0 66

查看FRA中记录的文件类型

SQL> select file_type from v$flash_recovery_area_usage;

FILE_TYPE

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

CONTROLFILE

ONLINELOG

ARCHIVELOG

BACKUPPIECE

IMAGECOPY

FLASHBACKLOG

已选择6行。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐