问题描述
常常会遇到下面的报错信息
ARCH: Error 19809 Creating archive log file to ‘/oracle/app/oracle/fast_recovery_area/ORCL1124/archivelog/2014_06_05/o1_mf_1_113_%u_.arc’ ARC1: Error 19809 Creating archive log file to ‘/oracle/app/oracle/fast_recovery_area/ORCL1124/archivelog/2014_06_05/o1_mf_1_114_%u_.arc’ Errors in file /oracle/app/oracle/diag/rdbms/orcl1124/orcl1124/trace/orcl1124_ora_22611.trc: ORA-16038: log 2 sequence# 113 cannot be archived ORA-19809: limit exceeded for recovery files ORA-00312: online log 2 thread 1: ‘/oracle/app/oracle/oradata/orcl1124/redo02.log’ ARCH: Archival stopped, error occurred. Will continue retrying ORACLE Instance orcl1124 – Archival Error ORA-16038: log 3 sequence# 114 cannot be archived ORA-19809: limit exceeded for recovery files ORA-00312: online log 3 thread 1: ‘/oracle/app/oracle/oradata/orcl1124/redo03.log’ System state dump requested by (instance=1, osid=22611), summary=[abnormal instance termination]. System State dumped to trace file /oracle/app/oracle/diag/rdbms/orcl1124/orcl1124/trace/orcl1124_diag_22544_20140605180150.trc Dumping diagnostic data in directory=[cdmp_20140605180150], requested by (instance=1, osid=22611), summary=[abnormal instance termination]. USER (ospid: 22611): terminating the instance due to error 16038 Instance terminated by USER, pid = 22611
专家解答
原因很简单:归档目录满了,解决的方法也很多的
1,如果归档存放在FRA区,修改一个FRA区的大小就可以了,前提是FRA目录上还有剩余的空间。
2,使用单独的归档目录,扩一下文件系统或者将归档路径修改到其它的地方就可以了。
3,下面我们测试另一种方法
1,启动数据库报错
[oracle@www.htz.pw oradata]$sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Thu Jun 5 18:01:30 2014 Connected to an idle instance. www.htz.pw > startup ORACLE instance started. Total System Global Area 379965440 bytes Fixed Size 2253464 bytes Variable Size 171969896 bytes Database Buffers 201326592 bytes Redo Buffers 4415488 bytes Database mounted. ORA-03113: end-of-file on communication channel Process ID: 22611 Session ID: 1 Serial number: 5
2,alert中报下面的错误
ORA-19815: WARNING: db_recovery_file_dest_size of 4385144832 bytes is 100.00% used, and has 0 remaining bytes available. ************************************************************************ You have following choices to free up space from 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. ************************************************************************ ARCH: Error 19809 Creating archive log file to ‘/oracle/app/oracle/fast_recovery_area/ORCL1124/archivelog/2014_06_05/o1_mf_1_113_%u_.arc’ ARC1: Error 19809 Creating archive log file to ‘/oracle/app/oracle/fast_recovery_area/ORCL1124/archivelog/2014_06_05/o1_mf_1_114_%u_.arc’ Errors in file /oracle/app/oracle/diag/rdbms/orcl1124/orcl1124/trace/orcl1124_ora_22611.trc: ORA-16038: log 2 sequence# 113 cannot be archived ORA-19809: limit exceeded for recovery files ORA-00312: online log 2 thread 1: ‘/oracle/app/oracle/oradata/orcl1124/redo02.log’ ARCH: Archival stopped, error occurred. Will continue retrying ORACLE Instance orcl1124 – Archival Error ORA-16038: log 3 sequence# 114 cannot be archived ORA-19809: limit exceeded for recovery files ORA-00312: online log 3 thread 1: ‘/oracle/app/oracle/oradata/orcl1124/redo03.log’ System state dump requested by (instance=1, osid=22611), summary=[abnormal instance termination]. System State dumped to trace file /oracle/app/oracle/diag/rdbms/orcl1124/orcl1124/trace/orcl1124_diag_22544_20140605180150.trc Dumping diagnostic data in directory=[cdmp_20140605180150], requested by (instance=1, osid=22611), summary=[abnormal instance termination]. USER (ospid: 22611): terminating the instance due to error 16038 Instance terminated by USER, pid = 22611
3,下面将归档库更改为非归档就可以正常启动了
我做的事情增加了resetlog的方式,在生产环境这里可以使用noresetlogs的方式就可以了,因为我们只是更改一下归档模式的。
CREATE CONTROLFILE REUSE DATABASE "ORCL1124" RESETLOGS NOARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 ‘/oracle/app/oracle/oradata/orcl1124/redo01.log’ SIZE 50M BLOCKSIZE 512, GROUP 2 ‘/oracle/app/oracle/oradata/orcl1124/redo02.log’ SIZE 50M BLOCKSIZE 512, GROUP 3 ‘/oracle/app/oracle/oradata/orcl1124/redo03.log’ SIZE 50M BLOCKSIZE 512 — STANDBY LOGFILE DATAFILE ‘/oracle/app/oracle/oradata/orcl1124/system01.dbf’, ‘/oracle/app/oracle/oradata/orcl1124/sysaux01.dbf’, ‘/oracle/app/oracle/oradata/orcl1124/undotbs01.dbf’, ‘/oracle/app/oracle/oradata/orcl1124/users01.dbf’, ‘/oracle/app/oracle/oradata/orcl1124/htz01.dbf’, ‘/oracle/app/oracle/oradata/orcl1124/undotbs02.dbf’ CHARACTER SET ZHS16GBK www.htz.pw > recover database using backup controlfile until cancel; ORA-00279: change 2795841 generated at 06/05/2014 17:52:39 needed for thread 1 ORA-00289: suggestion : /oracle/app/oracle/fast_recovery_area/ORCL1124/archivelog/2014_06_05/o1_mf_1_115 _%u_.arc ORA-00280: change 2795841 for thread 1 is in sequence #115 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} /oracle/app/oracle/oradata/orcl1124/redo03.log ORA-00310: archived log contains sequence 114; sequence 115 required ORA-00334: archived log: ‘/oracle/app/oracle/oradata/orcl1124/redo03.log’ www.htz.pw > recover database using backup controlfile until cancel; ORA-00279: change 2795841 generated at 06/05/2014 17:52:39 needed for thread 1 ORA-00289: suggestion : /oracle/app/oracle/fast_recovery_area/ORCL1124/archivelog/2014_06_05/o1_mf_1_115 _%u_.arc ORA-00280: change 2795841 for thread 1 is in sequence #115 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} /oracle/app/oracle/oradata/orcl1124/redo01.log Log applied. Media recovery complete. 这里一定要手动输入日志路径,不然可以会丢失数据,或者遇到其它的报错的。 www.htz.pw > alter database open resetlogs; Database altered. www.htz.pw > archive log list; Database log mode No Archive Mode