If you cannot restore datafiles to their default locations, then
you must update the control file to reflect the new locations of the datafiles.
Use the RMAN SET NEWNAMEcommand within a RUN command to specify the new filename. Afterward, use a SWITCH command, which is equivalent to
using the SQL statement ALTER DATABASE RENAME FILE, to update the names of the datafiles in the control file. SWITCH DATAFILE ALL updates the control file to reflect the new names for all
datafiles for which a SET NEWNAMEhas been issued in a RUN command.
SWITCH Purpose
Use the
SWITCH command
to perform either of the following operations:
·
Update
the file names for a database, tablespace, or data file to the latest image
copies available for the specified files
·
Update
the file names for data files and temp files for which you have issued a SET
NEWNAME command
A
SWITCH is
equivalent to the SQL statement ALTER DATABASE RENAME FILE: the names of the files in the RMAN repository are
updated, but the database does not rename the files at the operating system
level.
Prerequisites
RMAN must be connected to a target database. When switching
tablespaces, data files, or temp files, the files must be offline. When
switching the whole database, the database must not be open.
Usage Notes
The
SWITCH command
deletes the RMAN repository records for the data file copy from the recovery
catalog and updates the control file records to statusDELETED.
If RMAN is connected to a recovery catalog, and if the database
is using a control file restored from backup, then
SWITCH updates the control file with records
of any data files known to the recovery catalog but missing from the control
file.
Execute
SWITCH ... TO COPY only
at the RMAN prompt. Use SWITCH without TO COPY only within a RUN block.
Examples
Example Switching to Image Copies to Avoid Restoring from Backup
Assume that a disk fails, rendering all data files in the users tablespace
inaccessible. Image copies of all data files in this tablespace exist in the
fast recovery area. After starting RMAN and connecting to the database as TARGET, you can run SWITCH to point the
control file to the new data files and then run RECOVER as follows:
SQL
"ALTER TABLESPACE users OFFLINE IMMEDIATE";
SWITCH
TABLESPACE users TO COPY;
RECOVER
TABLESPACE users;
SQL
"ALTER TABLESPACE users ONLINE";
Example Switching Data File File Names After a Restore to a New
Location
Assume that a disk fails, forcing you to restore a data file to
a new disk location. After starting RMAN and connecting to the database
as TARGET, you can use the SET NEWNAME command to rename the data file, then RESTORE to restore the missing data file. You run SWITCH to point the
control file to the new data file and then RECOVER. This example allocates both disk and tape channels.
RUN
{
ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;
ALLOCATE CHANNEL dev2 DEVICE TYPE sbt;
SQL "ALTER TABLESPACE users OFFLINE
IMMEDIATE";
SET NEWNAME FOR DATAFILE
'/disk1/oradata/prod/users01.dbf'
TO
'/disk2/users01.dbf';
RESTORE TABLESPACE users;
SWITCH DATAFILE ALL;
RECOVER TABLESPACE users;
SQL "ALTER TABLESPACE users
ONLINE";
}
Example Renaming Temp Files Using SET NEWNAME and SWITCH
TEMPFILE ALL
This example demonstrates using SET NEWNAME to specify
new names for several temp files, and SWITCH TEMPFILE ALL to rename the
temp files to the specified names. The database must be closed at the beginning
of this procedure. The temp files are re-created at the new locations when the
database is opened.
CONNECT
TARGET /
STARTUP FORCE
MOUNT
RUN
{
SET NEWNAME FOR TEMPFILE 1 TO
'/disk2/temp01.dbf';
SET NEWNAME FOR TEMPFILE 2 TO
'/disk2/temp02.dbf';
SET NEWNAME FOR TEMPFILE 3 TO
'/disk2/temp03.dbf';
SWITCH TEMPFILE ALL;
RESTORE DATABASE;
RECOVER DATABASE;
ALTER DATABASE OPEN;
}
Example Switching to a Data File Copy
The following command switches the data file in the tools tablespace to
the data file copy
named /disk2/tools.copy:
RUN
{
SQL "ALTER TABLESPACE tools OFFLINE
IMMEDIATE";
SWITCH DATAFILE
'/disk1/oradata/prod/tools01.dbf'
TO DATAFILECOPY '/disk2/tools.copy';
RECOVER TABLESPACE tools;
SQL "ALTER TABLESPACE tools
ONLINE";
}
About Complete Database Recovery
You use the RESTORE and RECOVER commands to restore and recover the database. During the
recovery, RMAN automatically restores backups of any needed archived redo logs.
If backups are stored on a media manager, then channels must be configured in
advance or a RUN block with ALLOCATE CHANNEL commands must be used to enable access to backups stored
there.
If RMAN restores archived redo logs to the fast recovery area
during a recovery, then it automatically deletes the restored logs after
applying them to the datafiles. Otherwise, you can use the DELETE ARCHIVELOG command to delete restored
archived redo logs from disk when they are no longer needed for recovery. For
example, you can enter the following command:
RECOVER DATABASE DELETE ARCHIVELOG;


No comments