Skip Headers

Oracle® Database Recovery Manager Reference
10g Release 1 (10.1)

Part Number B10770-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Feedback

Go to previous page
Previous
Go to current chapter
Up
Go to next page
Next
View PDF

RESTORE

Syntax

restore::=

Text description of restore.gif follows


Text description of restore

restoreObject::=

Text description of restoreObject.gif follows


Text description of restoreObject

restoreSpecOperand::=

Text description of restoreSpecOperand.gif follows


Text description of restoreSpecOperand

autoBackupOptList::=

Text description of autoBackupOptList.gif follows


Text description of autoBackupOptList

Purpose

The primary use of RESTORE is to restore files from backups or image copies. Typically, you restore when a media failure has damaged a current datafile, control file, or archived log or prior to performing a point-in-time recovery.

There are two other uses of RESTORE:

RMAN chooses which backups to restore based on the criteria that you specify. For example, you can limit the restore to backups before a given point of time (within the current incarnation) with the untilClause.

When you run RESTORE in CATALOG mode with a backup control file, RMAN automatically adjusts the control file to reflect the structure of the restored database.

Locations of Restored Files

If you restore to the default location (that is, you do not run SET NEWNAME), then RMAN overwrites files with the same filenames. If you restore to a new location, then issue SET NEWNAME commands to rename the files and issue a SWITCH command to make the restored files current. If you do not issue SWITCH commands, then RMAN considers the restored files as valid copies for use in future restore operations.

If you do not run SET NEWNAME and RMAN detects that the default filename cannot be used (for example, because the filename is in use by another database that shares the storage), and if the file is an Oracle Managed File or is on an Automatic Storage Management disk group, then RMAN attempts to create a new file in the same location or disk group.


Note:

By default, RMAN does not restore a datafile if the file is in the correct place and its header contains the expected data (RMAN does not scan the datafile body for corrupt blocks). The FORCE option overrides this behavior and restores the requested files unconditionally.


Channel Allocation in a Restore

If you do not manually allocate channels, then RMAN allocates all automatic channels possibly needed by the RESTORE command, subject to any restrictions imposed by the use of the DEVICE TYPE option.

For example, assume you configure 3 separate sbt channels (each with different PARMS) and then configure parallelism for DISK and sbt as follows:

CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
CONFIGURE DEVICE TYPE sbt PARALLELISM 3;
CONFIGURE DEFAULT DEVICE TYPE TO sbt;

If you run RESTORE in this configuration, then RMAN allocates three sbt channels and the two preconfigured DISK channels.

Restore Failover

If a backup piece, image copy or proxy copy is inaccessible (for instance, deleted from the device) or if a block is corrupted, then the RESTORE command automatically looks for a another usable copy of this backup piece or image copy on both the same device and other devices. If no usable copies are available, then RMAN searches for prior backups. RMAN continously searches for prior usable backups until it has exhaused all possibilities.

Restore failover also occurs when restoring archivelogs for use in RECOVER, BLOCKRECOVER and FLASHBACK operations. RMAN records messages about failover due to block corruption in the alert log and trace files.

See Oracle Database Backup and Recovery Advanced User's Guide for details on restore failover.

Restoring Files in a Real Application Cluster Configuration

In a Real Application Clusters configuration, RMAN automatically restores backups, control file copies, and datafile copies from channels that can read the files on tape or a local file system. For example, if channel 1 connected to instance 1 can read log 1000 from its tape drive, but channel 2 connected to instance 2 cannot read the same log from its tape drive, then channel 1 restores the log. Autolocation is automatically enabled when the channels meet any of the following criteria:

Restrictions and Usage Notes

Restrictions and Usage Notes for RESTORE CONTROLFILE

Table 2-27 indicates the restrictions that apply in different situations involving the RESTORE CONTROLFILE command.

Table 2-27 RESTORE CONTROLFILE Scenarios
RESTORE CONTROLFILE; RESTORE CONTROLFILE FROM AUTOBACKUP; RESTORE CONTROLFILE ... TO 'filename'; RESTORE CONTROLFILE ... FROM 'media_handle' or TAG 'user_tag';

No catalog, target started in NOMOUNT state

Error. Must specify FROM AUTOBACKUP.

First run SET DBID. Restores to CONTROL_FILES locations.

First run SET DBID. Must specify FROM AUTOBACKUP. Restores only to filename.

First run SET DBID. Restores from specified file (cannot restore from TAG). If TO 'filename' not used, restores to all CONTROL_FILES locations.

No catalog, target mounted or open

Error. Must use TO 'filename', where filename is not in CONTROL_FILES list.

Error. Must use TO 'filename', where filename is not in CONTROL_FILES list.

Restores only to filename, where filename is not in CONTROL_FILES list.

Restores from specified file. If TO 'filename' not used, restores to all CONTROL_FILES locations.

Catalog, target started in NOMOUNT state

Restores to CONTROL_FILES locations. Run SET DBID only if
DB_NAME not unique in catalog.

Only use with catalog for testing purposes.

Restores only to filename, where filename is not in CONTROL_FILES list.

Restores from specified file. If TO 'filename' not used, restores to all CONTROL_FILES locations.

Catalog, target mounted or open

Error. Must use TO 'filename', where filename is not in CONTROL_FILES list.

Do not use with catalog.

Restores only to filename, where filename is not in CONTROL_FILES list.

Restores from specified file. If TO 'filename' not used, restores to all CONTROL_FILES locations.

Keywords and Parameters

restore
Syntax Element Description

CHANNEL 'channel_id'

Refer to the restoreSpecOperand clause.

CHECK LOGICAL

Tests data and index blocks that pass physical corruption checks for logical corruption, for example, corruption of a row piece or index entry. If RMAN finds logical corruption, it logs the block in the alert.log and server session trace file.

If the total number of physical and logical corruptions detected in a file is less than its MAXCORRUPT setting, the RMAN command completes and the database populates the V$DATABASE_BLOCK_CORRUPTION view with corrupt block ranges. If MAXCORRUPT is exceeded, the command terminates without populating the views.

If the initialization parameter DB_BLOCK_CHECKSUM=TRUE, and if MAXCORRUPT and NOCHECKSUM are not set, then specifying CHECK LOGICAL detects all types of corruption that are possible to detect.

Note: The MAXCORRUPT setting represents the total number of physical and logical corruptions permitted on a file.

CHECK READONLY

Checks the read-only datafiles to make sure they exist, are readable, and have the appropriate checkpoint. If any of these conditions is not met, then RMAN restores the files--whether or not they are read-only. By default, RMAN does not restore read-only files when you issue the RESTORE DATABASE command.

DEVICE TYPE deviceSpecifier

Allocates automatic channels for the specified device type only. For example, if you configure automatic disk and tape channels, and issue RESTORE ... DEVICE TYPE DISK, then RMAN allocates only disk channels.

See Also: "deviceSpecifier"

FORCE

Overrides the restartable restore feature and restores all files regardless of whether they need to be restored. If you do not specify FORCE, then RMAN restores a file only if its header information does not match the information in the control file.

FROM {BACKUPSET | DATAFILECOPY}

Specifies whether RMAN should restore from a DATAFILECOPY on disk or a BACKUPSET. By default RESTORE chooses the most recent backup set or file copy, that is, the file copy or backup set that needs the least media recovery.

FROM TAG = 'tag_name'

Refer to the restoreSpecOperand clause.

PREVIEW [SUMMARY]

When PREVIEW or PREVIEW SUMMARY is appended to any RESTORE command, instead of performing the restore RMAN will report the backups (on disk or sequential media) it will use during the restore. The output will be in the same format as is generated by the LIST BACKUPS and LIST BACKUPS... SUMMARY commands.

See Also: "LIST", and specifically the BACKUPS and SUMMARY options.

untilClause

Limits the selection to backup sets or file copies that are suitable for a point-in-time recovery to the specified time. In the absence of any other criteria, RMAN selects the most current file copy or backup set to restore. Note that the time specified in the untilClause must fall within the current incarnation.

See Also: "untilClause"

VALIDATE

Lets RMAN decide which backup sets, datafile copies, and archived logs need to be restored and then scans them to verify their contents. No files will be restored. Use this option periodically to verify that the copies and backup sets required to restore the specified files are intact and usable.

restoreObject
Syntax Element Description

restoreObject

Specifies the objects to be restored. The RESTORE command restores full backups, incremental backups (level 0 only), or copies of datafiles, control files, and archived redo logs.

archivelogRecordSpecifier

Restores the specified range of archived redo logs. The default restore location is DB_RECOVERY_FILE_DEST (if one of LOG_ARCHIVE_DEST_n is configured to USE_DB_RECOVERY_FILE_DEST either implicitly or explicitly). Otherwise, the default restore filenames are constructed with the LOG_ARCHIVE_FORMAT and LOG_ARCHIVE_DEST_1 parameters of the target database. These parameters combine in a port-specific fashion to derive the name of the restored log. You can override the default location with the SET ARCHIVELOG DESTINATION command.

Because the RECOVER command automatically restores archived logs as needed, you should seldom need to restore logs manually. Possible reasons for manually restoring archived logs are to speed up recovery or to stage the logs to multiple destinations.

See Also: "archivelogRecordSpecifier"

Note: The database can be started, mounted, or open for this operation.

CONTROLFILE

Restores the current control file for a primary database.

See Also: Table 2-27 for restrictions and usage notes.

Note: You must always run the RECOVER command after restoring a control file, and must also always open the database with the RESETLOGS option.

DATABASE
[ SKIP [ FOREVER ]
TABLESPACE
tablespace_name ]

Restores all datafiles in the database except those that are offline or read-only. Unlike BACKUP DATABASE, RESTORE DATABASE does not automatically include the control file and the server parameter file--you must issue additional RESTORE CONTROLFILE and RESTORE SPFILE commands to restore these files.

If you specify the CHECK READONLY option, then RMAN examines the headers of all read-only datafiles and restores any that need restoring.

Use an optional SKIP TABLESPACE 'tablespace_name' argument to avoid restoring specified tablespaces, which is useful when you want to avoid restoring tablespaces containing temporary data.

If you specify SKIP FOREVER TABLESPACE, then RMAN specifies the DROP option of ALTER DATABASE DATAFILE ... OFFLINE when taking the datafiles that belong to the tablespace offline before the restore. The DROP option indicates that RMAN does not intend to recover these files and intends to drop their tablespaces from the database after the database is opened again. In other words, FOREVER indicates that RMAN never intends to do anything with the skipped tablespaces again.

DATAFILE datafileSpec

Restores the datafiles specified by filename or absolute datafile number.

See Also: "datafileSpec"

SPFILE
[TO [PFILE] 'filename']

Restores a primary or STANDBY server parameter file to the location from which it was backed up (default), or to a different location specified by the TO clause. RMAN cannot overwrite a server parameter file currently in use by the target database.

Specify UNTIL or TAG options of RESTORE to restore older versions of the server parameter file. By default RMAN restores the most current server parameter file.

If the server parameter file is lost, connect to the target (and catalog if used) and then run SET DBID. Run STARTUP FORCE NOMOUNT before running RESTORE SPFILE (with FROM AUTOBACKUP if in NOCATALOG mode). Then run STARTUP FORCE to restart the database with the restored server parameter file.

See Also: "Restrictions and Usage Notes for the SET DBID Command"

STANDBY CONTROLFILE
[ TO '
filename' ]

Restores the current control file for a standby database.

See Also: Table 2-27 for restrictions and usage notes.

Note: You must always run the RECOVER command after restoring a control file, and must also always open the database with the RESETLOGS option.

TABLESPACE
'tablespace_name'

Restores all datafiles in the specified tablespaces.

The translates the tablespace name internally into a list of datafiles. If you rename a tablespace (for example, from users to customers), then so long as an additional tablespace with the old name (users) has not been created, you can use either the old name (users) or the new name (customers) for the tablespace. RMAN detects that the tablespace has changed its name and updates the recovery catalog on the next resynchronization.

restoreSpecOperand
Syntax Element Description

restoreSpecOperand

Specifies options for the restoreObject clause.

Note: These parameters override the parameters with the same name at the RESTORE command level.

CHANNEL
'channel_id'

Specifies the case-sensitive name of a channel to use for this restore operation. If you do not specify a channel, then RESTORE uses any available channel allocated with the correct device type.

FROM AUTOBACKUP
[autoBackupOptionList]

Restores a control file autobackup. You can only specify this option on the RESTORE CONTROLFILE and RESTORE SPFILE commands. When restoring either type of file in NOCATALOG mode, the FROM AUTOBACKUP clause is required.

RMAN begins the search on the current day or on the day specified with the SET UNTIL. If no autobackup is found in the current or SET UNTIL day, RMAN checks the previous day starting with sequence 256 (or the sequence specified by MAXSEQ) until it reaches 0. The search continues up to MAXDAYS days (default of 7, maximum of 366) from the current or SET UNTIL day. If no autobackup is found within MAXDAYS days, then RMAN signals an error and the command stops.

See Also: Table 2-27 for restrictions and usage notes.

FROM 'media_handle'

Specifies the name of the control file copy or backup piece containing a control file. The media_handle can be any backup piece that contains a backup of a control file: the control file backup does not need to be an autobackup.

See Also: Table 2-27 for restrictions and usage notes.

FROM TAG [=] 'tag_name'

Overrides the default selection of the most recent backups or file copy available. The tag restricts the automatic selection to backup sets or file copies that were created with the specified tag. If multiple backup sets or file copies have a matching tag, then RMAN selects the most recent one. Note that tag names are not case sensitive.

See Also: "BACKUP" for a description of how a tag can be applied to an individual copy of a duplexed backup set, and for a description of the default filename format for tags



autoBackupOptList
Syntax Element Description

autoBackupOptList

Parameters that control the search for a control file autobackup.

DB_NAME =
'database_name'

Provides a DB_NAME to be used in searching for control file autobackups.

MAXDAYS = integer

Limits the search for a control file autobackup to within the specified number of days in the past.

MAXSEQ = integer

Specifies the highest sequence number for the control file autobackup search.

(RECOVERY AREA|
DB_RECOVERY_FILE_DEST)
=
quoted_string

Specifies path to flash recovery area to search for autobackups. RECOVERY AREA and DB_RECOVERY_FILE_DEST are synonyms.

DB_NAME =
database_name

Provides the DB_NAME of the database in the specified flash recovery area that is the target of the restore operation.

DB_UNIQUE_NAME =
{identifier |
quoted-string }

Provides the DB_UNIQUE_NAME of the database in the specified flash recovery area that is the target of the restore operation.



Examples

Restoring a Tablespace: Example

This example takes a tablespace offline, restores it, then performs media recovery:

SQL "ALTER TABLESPACE users OFFLINE IMMEDIATE"; 
RESTORE TABLESPACE users; 
RECOVER TABLESPACE users;  
SQL "ALTER TABLESPACE users ONLINE";
Restoring the Control File When Using a Recovery Catalog: Example

This example restores the control file to its default location, replicates it automatically to all CONTROL_FILES locations, and mounts the database:

RUN
{ # SET DBID is not necessary when connected to a recovery catalog
  STARTUP FORCE NOMOUNT;
  RESTORE CONTROLFILE;
  ALTER DATABASE MOUNT;
}
Restoring the Control File with a Tag: Example

This NOCATALOG example restores the control file specified by a tag, and then mounts the database:

CONNECT TARGET /
STARTUP NOMOUNT;
SET DBID 320066378;  # required when restoring control file in NOCATALOG mode
RESTORE CONTROLFILE FROM TAG 'monday_cf_backup';
ALTER DATABASE MOUNT;
Restoring the Database with a Backup Control File: Example

This example restores the control file to a temporary location, replicates it to all control file locations specified in the CONTROL_FILES initialization parameter, and then restores and recovers the database:

CONNECT TARGET /
STARTUP NOMOUNT;
SET DBID 320066378;  # required when restoring control file in NOCATALOG mode
RUN
{
  ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
  RESTORE CONTROLFILE TO '/tmp/control01.ctl' FROM AUTOBACKUP;
  RESTORE CONTROLFILE FROM '/tmp/control01.ctl'; # restores to all CONTROL_FILES locations
  ALTER DATABASE MOUNT;
  RESTORE DATABASE;
  RECOVER DATABASE;
}
ALTER DATABASE OPEN RESETLOGS;
# if the database uses locally-managed temporary tablespaces, then add new tempfiles
# to these tablespaces after the RESETLOGS
SQL "ALTER TABLESPACE temp ADD TEMPFILE ''?/oradata/trgt/temp01.dbf'' REUSE";
Restoring Archived Redo Logs to a New Location: Example

This example restores all archived redo logs to the /oracle/temp_restore directory:

RMAN> RUN
{ 
  SET ARCHIVELOG DESTINATION TO '/oracle/temp_restore';
  RESTORE ARCHIVELOG ALL;
}
Restoring a Control File Autobackup to a Nondefault Location: Example

This example restores the latest control file autobackup made on or before June 23, 2000 with a nondefault format of PROD_CF_AUTOBACKUP_%F. It starts searching for backups with a sequence number of 20, and searches backward for 5 months:

RMAN> SET DBID 320066378;  # required when restoring control file in NOCATALOG mode
RMAN> RUN
{
  SET UNTIL TIME '23-JUN-2001 00:00:00';
  SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE sbt TO 'prod_cf_autobackup_%F';
  ALLOCATE CHANNEL CHANNEL_1 DEVICE TYPE sbt;
  RESTORE CONTROLFILE TO '/tmp/autobackup_20001002.dbf' FROM AUTOBACKUP 
    MAXSEQ 20 MAXDAYS 150;
}
Restoring the Server Parameter File to Current Location: Example

The following series of commands restores the current server parameter file in NOCATALOG mode:

rman TARGET /
RMAN> SET DBID 1447326980 # set dbid to dbid of target database
RMAN> STARTUP FORCE NOMOUNT; # start instance with dummy SPFILE
RMAN> RUN
{
  ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
  RESTORE SPFILE FROM AUTOBACKUP; # FROM AUTOBACKUP needed in NOCATALOG mode
}
RMAN> STARTUP FORCE; # start with restored SPFILE and open database
Previewing a Restore with RESTORE PREVIEW: Example

'The following example shows the results of a RESTORE PREVIEW, which identifies the backupsets to use in restoring datafile 1 of a database:

RMAN> restore datafile 1 preview;

Starting restore at 10-OCT-03
using target database controlfile instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=18 devtype=DISK


List of Backup Sets
===================

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
25      Full    264M       DISK        00:00:42     10-OCT-03 
        BP Key: 25 Status: AVAILABLE Compressed: NO Tag: FOURTH_INC
        Piece Name: /ade/banand_hosted5/oracle/work/v1/0pf3hr3o_1
   List of Datafiles in backup set 25
   File LV Type Ckp SCN    Ckp Time  Name
   ---- -- ---- ---------- --------- ----
   1       Full 228006     10-OCT-03 /disk1/oracle/dbs/tbs_01.f
Finished restore at 10-OCT-03

Validating a Restore with RESTORE VALIDATE: Example

The following example illustrates using RESTORE VALIDATE for the restore of datafile 1, as in the previous example:

RMAN> RESTORE DATAFILE 1 VALIDATE;

Starting restore at 10-OCT-03
using channel ORA_DISK_1

channel ORA_DISK_1: starting validation of datafile backupset
channel ORA_DISK_1: restored backup piece 1
piece handle=/disk1/oracle/work/v1/0pf3hr3o_1 tag=FOURTH_INC
channel ORA_DISK_1: validation complete
Finished restore at 10-OCT-03