Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

when recovery database I met a strange problem,my recovery script as follow:

RUN
{ 
  SET UNTIL TIME 'DEC 25 2013 09:00:00' ;    
  RESTORE DATABASE;
  RECOVER DATABASE;
} 

but rman report as follow:

........... 
Oracle Error: 
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/home/u01/app/oracle/oradata/ghsjdb/system01.dbf'

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 12/27/2013 10:46:53
RMAN-06557: unable to restore archived log of thread 1 with sequence 742
RMAN-06558: archived log size of 37788 kb is bigger than available space of 6664 kb

then I check fast recovery area at once

SQL> select SPACE_USED/SPACE_LIMIT from v$recovery_file_dest;

SPACE_USED/SPACE_LIMIT
----------------------
            .200951743

SQL> show parameter recovery_file_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /home/u01/app/oracle/fast_recovery_area
db_recovery_file_dest_size           big integer 20G

there all still 80% free space, is about 20g * 0.8 =16g ,why rman report no available space?

share|improve this question

migrated from stackoverflow.com Dec 29 '13 at 0:53

This question came from our site for professional and enthusiast programmers.

    
How much space do you have in the filesystem(s) where your online redo logs live? It's complaining about where it wants to restore the file, not where it's archived. –  Alex Poole Dec 27 '13 at 16:36

2 Answers 2

that issue was caused due to lack of space in FRA(Flashback recovery area) if configured or the archive log destination.

option 1. Restore the archive log to an alternate location which has space

example:

RMAN> run {
set ARCHIVELOG DESTINATION TO '<new location with sufficient free space>';
recover database until time "to_date('2013-12-25 09:00:00', 'YYYY-MM-DD HH24:MI:SS')";
}

option 2. Set MAXSIZE limit

example:

RMAN> run {
recover database until time "to_date('2013-12-25 09:00:00', 'YYYY-MM-DD HH24:MI:SS')" delete archivelog maxsize 50 K ; }
share|improve this answer

You may need to have RMAN check the contents of the FRA, especially if files have been removed from outside RMAN or the database. RMAN maintains it's own list of files that it knows about (in the control file). If files have been removed externally, it's possible that RMAN thinks that the FRA is full.

Try running these commands:

crosscheck archivelog all;
crosscheck backupset;
catalog recovery area;

This tells RMAN to:

  1. Check all the archivelogs it thinks should be there, mark them as EXPIRED if they no longer exist

  2. Check all the backup sets it thinks should be there, mark them as EXPIRED if they no longer exist

  3. Check the FRA for files that it doesn't already know about.

if it marks lots of files as EXPIRED, then delete these from the control file (tell RMAN that they're gone for good) by running:

delete expired backupset;
delete expired archivelog all;

Note that this doesn't delete any files (files marked as EXPIRED are already "missing"), just removes them from RMAN's catalog.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.