Oracle联机日志出现错误ORA-16038 ORA-19809 ORA-00312 解决


出现ORA-16038 ORA-19809 ORA-00312 Oracle 10g默认的归档日志存放在flash_recovery_area,而默认安装的时候该区间选择了2G大小当归档日志超过2G的时候,空间不足,于是无法归档,当时手工删除归档日志文件,Oracle是无法识别空间是否释放, 导致数据库无法启动。

解决办法:

1、mount数据库

sql> startup mount (注意,这时候还会报错,但是可以更改系统参数)

2、 更改系统参数

sql> alter system set db_recovery_file_dest_size=2g scope=spfile;

参数db_recovery_file_dest_size的值根据磁盘剩余空间大小和实际需要来设置,没有定论

3、打开数据库

sql> alter database open 不会成功的

4、删除失效归档日志.

RMAN> connect target /

RMAN> crosscheck archivelog all;

RMAN> delete expired archivelog all;

RMAN> exit

5、重新启动数据库

sql> shutdown immediate

sql> startup

-----------------另一个版本的解决方法-----------------

oracle出现ORA-16038,ORA-19809,ORA-00312问题的解决方法www.bkjia.com

1:SQL> startup ORACLE 例程已经启动。

  数据库装载完毕。

ORA-16038: 日志 3 序列号 46 无法归档

ORA-19809: 超出了恢复文件数的限制

ORA-00312: 联机日志 3 线程 1: 'D:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOG'

2:SQL> alter database clear unarchived logfile 'D:ORACLEPRODUCT10.2.0ORADATAO RCLREDO03.LOG';

数据库已更改。

3:SQL> shutdown immediate

ORA-01109: 数据库未打开 已经卸载数据库。

ORACLE 例程已经关闭。

4:SQL> startup

ORACLE 例程已经启动。

数据库装载完毕。

数据库已经打开。

无法归档错误主要是因为数据库不正常关闭,SQL语句出错造成数据线程停止所因起。

-----------------另一个版本的解决方法-----------------

还有就是设置归档日志的大小,设置为10G的时候,错误可解决,www.bkjia.com报错的时候系统ALERT日志里也提示有几种参考方法如下工作日志所示: 

1:监控邮件监控到ALERT日志中的错误如下:

< ORA-19809: limit exceeded for recovery files
< ORA-19804: cannot reclaim 43570176 bytes disk space from 2147483648 limit
< ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available.

2查看ALERT日志详细错误如下

ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available.

Tue May 31 14:57:42 2011

************************************************************************

You have following choices to free up space from flash recovery area:

1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,

   then consider changing RMAN ARCHIVELOG DELETION POLICY.

2. Back up files to tertiary device such as tape using RMAN

   BACKUP RECOVERY AREA command.

3. Add disk space and increase db_recovery_file_dest_size parameter to

   reflect the new space.

4. Delete unnecessary files using RMAN DELETE command. If an operating

   system command was used to delete files, then use RMAN CROSSCHECK and

   DELETE EXPIRED commands.

************************************************************************

Tue May 31 14:57:42 2011

Errors in file /usr/app/db-server/ora_base/admin/gis/bdump/gis_arc1_3602.trc:

ORA-19809: limit exceeded for recovery files

ORA-19804: cannot reclaim 43570176 bytes disk space from 2147483648 limit

ARC1: Error 19809 Creating archive log file to '/usr/app/db-server/ora_base/flash_recovery_area/GIS/archivelog/2011_05_31/o1_mf_1_44477_0_.arc'

Tue May 31 15:17:20 2011

Thread 1 advanced to log sequence 44479

  Current log# 3 seq# 44479 mem# 0: /usr/app/db-server/ora_base/oradata/gis/redo03.log

Tue May 31 15:17:20 2011

Errors in file /usr/app/db-server/ora_base/admin/gis/bdump/gis_arc0_3600.trc:

很明显的错误信息,说明归档空间满了

3查看归档参数

SQL> show parameter rec

NAME                                 TYPE        VALUE

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

buffer_pool_recycle                  string

control_file_record_keep_time        integer     7

db_recovery_file_dest                string      /usr/app/db-server/ora_base/fl

                                                 ash_recovery_area

db_recovery_file_dest_size           big integer 2G

db_recycle_cache_size                big integer 0

ldap_directory_access                string      NONE

recovery_parallelism                 integer     0

recyclebin                           string      on

use_indirect_data_buffers            boolean     FALSE

4查看使用率

SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

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

CONTROLFILE                   0                         0               0

ONLINELOG                     0                         0               0

ARCHIVELOG                99.99                         0               0

BACKUPPIECE                   0                         0               0

IMAGECOPY                     0                         0               0

FLASHBACKLOG                  0                         0               0

5变更归档大小为10G

SQL> alter system set db_recovery_file_dest_size=10G scope=both;

System altered.

6再次查看使用率

SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

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

CONTROLFILE                   0                         0               0

ONLINELOG                     0                         0               0

ARCHIVELOG                19.93                         0              49

BACKUPPIECE                   0                         0               0

IMAGECOPY                     0                         0               0

FLASHBACKLOG                  0                         0               0

6 rows selected.

相关内容