Step forward the Recovery Advisor, which can make this job very easy, of diagnosing a problem and then performing the correct action.
Let's assume someone has by accident removed users01.dbf and we try and start the database.
Let's further assume someone has shutdown the database abort;
( mumble mumble some one reminded me that this only works if you're probably archivelog mode and you have a proper backup. )
[oracle@oel6u3m1 ~]$ rman target /
Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jan 22 00:42:28 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database (not started)
RMAN> startup
Oracle instance started
database mounted
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of startup command at 01/22/2013 00:42:39
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '/home/oracle/oradata/orcl/users01.dbf'
RMAN>
As expected, of course.
Normally here we would go through some sort of custom restore/recover - is there a less specific fix ?
RMAN> list failure;
List of Database Failures
=========================
Failure ID Priority Status Time Detected Summary
---------- -------- --------- ------------- -------
262 HIGH OPEN 22-JAN-13 One or more non-system datafiles are missing
RMAN>
This is the data recovery advisor. It's correctly figured out that a file is missing.
Does it know how to fix the problem ?
RMAN> advise failure
2> ;
List of Database Failures
=========================
Failure ID Priority Status Time Detected Summary
---------- -------- --------- ------------- -------
262 HIGH OPEN 22-JAN-13 One or more non-system datafiles are missing
analyzing automatic repair options; this may take some time
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=134 device type=DISK
analyzing automatic repair options complete
Mandatory Manual Actions
========================
no manual actions available
Optional Manual Actions
=======================
1. If file /home/oracle/oradata/orcl/users01.dbf was unintentionally renamed or moved, restore it
Automated Repair Options
========================
Option Repair Description
------ ------------------
1 Restore and recover datafile 4
Strategy: The repair includes complete media recovery with no data loss
Repair script: /home/oracle/app/oracle/diag/rdbms/orcl/orcl/hm/reco_2553734102.hm
RMAN>
Yes it does !
we can run the generated script - OR - we can ask RMAN to fix the problem without prompting ...
RMAN> repair failure noprompt
2> ;
Strategy: The repair includes complete media recovery with no data loss
Repair script: /home/oracle/app/oracle/diag/rdbms/orcl/orcl/hm/reco_2553734102.hm
contents of repair script:
# restore and recover datafile
restore datafile 4;
recover datafile 4;
sql 'alter database datafile 4 online';
executing repair script
Starting restore at 22-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: restoring datafile 00004
input datafile copy RECID=12 STAMP=805336584 file name=/home/oracle/app/oracle/fast_recovery_area/ORCL/datafile/o1_mf_users_8hvq94p6_.dbf
destination for restore of datafile 00004: /home/oracle/oradata/orcl/users01.dbf
channel ORA_DISK_1: copied datafile copy of datafile 00004
output file name=/home/oracle/oradata/orcl/users01.dbf RECID=0 STAMP=0
Finished restore at 22-JAN-13
Starting recover at 22-JAN-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00004: /home/oracle/oradata/orcl/users01.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/app/oracle/fast_recovery_area/ORCL/backupset/2013_01_22/o1_mf_nnnd1_INCR_UPDATE_8hvqr9y j_.bkp
channel ORA_DISK_1: piece handle=/home/oracle/app/oracle/fast_recovery_area/ORCL/backupset/2013_01_22/o1_mf_nnnd1_INCR_UPDATE_8hvqr9yj_.bkp tag=IN CR_UPDATE
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
starting media recovery
media recovery complete, elapsed time: 00:00:00
Finished recover at 22-JAN-13
sql statement: alter database datafile 4 online
repair failure complete
database opened
RMAN>
In a lot of cases this could be faster than going through tedious steps to find the problem, remember the goal is uptime..
Remember - Data Recovery Advisor - may help you out.
Regards
Chris.
No comments:
Post a Comment