ADRCI Error 19809 creating archive log file
Oracle Tips by Burleson Consulting |
Question: I am running Oracle Applications R 12 and getting a ORA-00257 error:
ORA-00257: archiver error. Connect internal only, until freed.
Answer: The oerr utility says this about the ORA-00257 error:
ORA-00257: archiver error. Connect internal only, until freed.
Cause: The archiver process received an error while trying to archive a redo log. If the problem is not resolved soon, the database will stop executing transactions. The most likely cause of this message is the destination device is out of space to store the redo log file.
Action: Check the archiver trace file for a detailed description of the problem. Also, verify that the device specified in the initialization parameter archive_log_dest is set up properly for archiving.
The Oracle ARCH background process is responsible for taking the redo logs from the online redo log file system and writing them to the flat file
Also see ORA-00257 outside of Oracle Applications
For Oracle we examine the ADRCI alert.log entries and see a ORA-19809 error:
* 2011-10-27 16:24:51.990 4265 krsh.c
ARC1: Error 19809 Creating archive log file to '+FRA'
The ORA-19809 error involves adjusting a parameter and bouncing your instance. The docs note:
ORA-19809: limit exceeded for recovery files
Cause: The limit for recovery files specified by thedb_recovery_file_dest_size was exceeded.
Action: The error is accompanied by 19804. See message 19804 for further details
ORA-19804: cannot reclaim string bytes disk space from string limit
Cause: Oracle cannot reclaim disk space of specified bytes from the DB_RECOVERY_FILE_DEST_SIZE limit.
Action: There are five possible solutions:
1) Take frequent backup of recovery area using RMAN.
2) Consider changing RMAN retention policy.
3) Consider changing RMAN archivelog deletion policy.
4) Add disk space and increase DB_RECOVERY_FILE_DEST_SIZE.
5) Delete files from recovery area using RMAN.
In this case the The Fast Recovery Area (FRA) is full with old archive log files so we need to clean this up by removing old archive logs. If this is a production instance you back up the FRA log files to disk for storage for recovery and archival purposes.
Login to RMAN and run the following commands:
RMAN> CONNECT target /
connected TO target DATABASE: INSTANT (DBID=654321)
RMAN> crosscheck archivelog ALL;
Note: that the crosscheck command does NOT DELETE the information about the logs that it could NOT find ON disk, it just updates their STATUS IN the repository AS 'EXPIRED'. TO obtain a list OF logs marked AS 'EXPIRED' USE the following command:
RMAN> list expired archivelog ALL;
IF it IS NOT necessary TO keep the information about these logs IN the repository, DELETE them WITH command:
RMAN> DELETE expired archivelog ALL;
RMAN> delete archivelog all completed before 'SYSDATE-1';
The above RMAN command will delete old archive logs past 24 hours.
Now you should be able to connect to the database.
Below are some useful queries to check on FRA available space:
select
name,
free_mb,
total_mb,
free_mb/total_mb*100 "%"
from
v$asm_diskgroup;
FRA 207743 511992 40.5754387
LOG 306958 307191 99.9241514
set lines 100
col name format a60
select
name,
floor(space_limit / 1024 / 1024) "Size MB".
ceil(space_used / 1024 / 1024) "Used MB"
from
v$recovery_file_dest
order by name
/
NAME Size MB Used MB
------------------------------------------------------------ ---------- ----------
+FRA 102400 302965
If you want to change the default size for the FRA you can issue the following command from SQL*PLUS:
SQL> alter system set db_recovery_file_dest_size=600G;
System altered.
Then you should archive logs:
SQL> archive log all;
3 logs archived.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29173997/viewspace-1169515/ ,如需转载,请注明出处,否则将追究法律责任。