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

来源:互联网 发布:windows 查看显卡切换 编辑:程序博客网 时间:2024/06/05 22:32
 

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行。

 

原创粉丝点击