Complete Recovery
Recovery in Noarchivelog Mode
Steps
|
Explanation
and Commands
|
1
|
Restore all datafiles, control files, and
redo log files from the backup to the original location.
$
cp -r /u01/backup/* /u02/oracle/data
|
2
|
Restart the database
SVRMGR>
startup open
|
3
|
Notify users that they will need to
reenter data since the time of the last backup.
|
Advantages
·
Easy to perform, with low risk
of error.
·
Recovery time = Time to restore
all files.
Disadvantages
·
The entire database is restored
to the point of the last whole closed backup.
·
Data is lost and must be
reapplied manually.
Example : The hard disk 1 is
damaged and you have one Oracle datafile named user_01.dbf in this disk. You
need to recover the database and restore user_01.dbf to another hard disk.
$ cp <backup
directory> <data directory>
SVRMGR> connect / as sysdba
Connected.
SVRMGR> startup mount
Oracle instance started.
SVRMGR> alter database rename file
2>
‘/disk1/data/user_01.dbf’
3> to
‘/disk2/data/user_01.dbf’;
Statement Processed.
SVRMGR> alter database open;
Statement Processed.
Complete Recovery in Archivelog Mode
Steps
|
Explanation
|
1
|
Restore only lost or damaged datafiles.
|
2
|
Do not restore the control file, redo
logs, password, or parameter files.
|
3
|
Recover the datafiles.
|
Advantages
·
Only need to restore lost files
·
Recovers all data to the time
of failure
·
Recovery time = Time to restore
lost files and apply all archived logs
Disadvantages
·
Must have all archived logs
since the backup from which you are
restoring
Cases Study
CASE
1 : Further investigation reveals that corrupt
blocks were found on disk 2 where datafile 2 is stored. From your well
documented database records, you have determined that datafile 2 is one of the
files belonging to the system tablespace.
Steps
|
Explanation
and Commands
|
1
|
Restore the damaged file from backup (the
most recent if available):
$ cp
/disk1/backup/df2.dbf /disk2/data/
|
2
|
Start the instance in mount mode
SVRMGR>
startup mount
|
3
|
To bring the datafile to the point of failure,
all needed archived logs and redo logs are applied.
SVRMGR>
recover datafile ‘/disk2/data/df2.dbf‘;
or
SVRMGR>
recover database;
|
4
|
When recovery is finished, all datafiles
are synchronized. Open the database.
SVRMGR>
alter database open;
|
CASE
2 : Your training DBA immediately informs you that
it was not media failure he accidentally removed datafile number 2 using
operating system commands. The database is currently open and you don’t want to
shut down the database.
Steps
|
Explanation
and Commands
|
1
|
The database is currently open, so to
determine which tablespace the datafile belongs to, use the following
command:
SQL > select
file_id f#, file_name,
2 > tablespace_name tablespace, status
3 > from dba_data_files;
F# FILE_NAME TABLESPACE STATUS
--- -------------------------- ---------- ----------
1 /disk1/data/system_01.dbf SYSTEM AVAILABLE
2 /disk2/data/df2.dbf USER_DATA AVAILABLE
3 /disk1/data/rbs01.dbf RBS AVAILABLE
...
|
2
|
Determine whether we need to take datafile
2 offline (in this case, Oracle has already taken the file offline):
SQL > select
d.file# f#, d.name, d.status, h.status
2 > from v$datafile d, v$datafile_header
h
3 > where d.file# = h.file#;
F# D.NAME D.STATUS H.STATUS
--- -------------------------- --------- ----------
1 /disk1/data/system_01.dbf SYSTEM ONLINE
2 /disk2/data/df2.dbf RECOVER OFFLINE
3 /disk1/data/rbs_01.dbf ONLINE ONLINE
...
|
3
|
Since the file is offline, the file can
now be restored successfully:
cp /disk1/backup/df2.dbf
/disk2/data/
|
4
|
Use the “recover” commands to apply the
archives and the redo logs to the restored data file.
SVRMGR>
recover datafile ‘/disk2/backup/df2.dbf‘;
or
SVRMGR>
recover tablespace USER_DATA;
|
5
|
When recovery is finished, all datafiles
are synchronized. Bring the datafile online:
SVRMGR>
alter database datafile ‘/disk2/data/df2.dbf‘ online;
or
SVRMGR>
alter tablespace USER_DATA online;
|
Case
3 : From your investigation, you have known that datafile
2 is damaged. From your familiarity with the database, you know datafile 2 is
not a system or rollback segment datafile, nor will it prevent users running
their end-of-month reports. You want to recover the database and minimize the
down time also.
Steps
|
Explanation
and Commands
|
1
|
Mount the database. It will not open
because datafile 2 cannot be opened.
SVRMGR >
startup mount
Database mounted.
|
2
|
If the datafile is not offline, the database
will not open. Therefore the file must be taken offline. You have queried
V$DATAFILE and determined that the file is online. The following command must
therefore be issued:
SVRMGR >
alter database datafile ‘/disk2/data/df2.dbf‘ offline;
Statement processed.
Note:
The “alter tablespace” command cannot be used
here since the database is not opened yet.
|
3
|
The database can now be opened:
SVRMGR >
alter database open;
Statement processed.
|
4
|
Now that users can access the system, you
have minimized the down time. Then you restore the file from the backup
directory.
$ cp
/disk1/backup/df2.dbf /disk3/data/
|
5
|
Use the “recover” commands to start applying
the archives and the redo logs to the restored datafile.
SVRMGR>
recover datafile ‘/disk3/data/df2.dbf‘;
or
SVRMGR>
recover tablespace USER_DATA;
|
6
|
When recovery is finished, all datafiles
are synchronized. Bring the datafile online:
SVRMGR>
alter database datafile ‘/disk3/data/df2.dbf‘ online;
or
SVRMGR>
alter tablespace USER_DATA online;
|
No comments:
Post a Comment