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

SWITCH

Syntax

switch::=

Text description of switch.gif follows


Text description of switch

switchFile::=

Text description of switchFile.gif follows


Text description of switchFile

Purpose

To specify that a datafile copy is now the current datafile, that is, the datafile pointed to by the control file. A SWITCH is equivalent to using the PL/SQL ALTER DATABASE RENAME FILE statement: the names of the files in the RMAN repository are updated, but the database does not actually rename the files at the operating system level. Note that this command deletes the records for the datafile copy from the recovery catalog and updates the control file records to status DELETED.

Restrictions and Usage Notes

Keywords and Parameters

switch
Syntax Element Description

DATABASE TO COPY

Renames the datafiles and control files to use the filenames of image copies of these files. RMAN switches to the latest image copy of each file.

After a database switch, RMAN considers the previous database files as datafile copies.

DATAFILE datafileSpec
TO COPY

Specifies the datafile that you wish to rename. As with DATABASE TO COPY, specifies to switch this datafile to the latest image copy.

After the switch, the control file no longer considers the specified file as current.

TABLESPACE
'
tablespace_name'
TO COPY

Switches all datafiles within the tablespace, as with SWITCH DATAFILE ... TO COPY.

switchFile
Syntax Element Description

DATAFILE datafileSpec
TO
DATAFILECOPY
{'
filename'
| TAG = 'tag_name'
}

Specifies the datafile that you wish to rename. After the switch, the control file no longer considers the specified file as current. For example, this command points the control file from tbs_1.f to cp1.f:

SWITCH DATAFILE '?/dbs/tbs_1.f' TO DATAFILECOPY '?/dbs/copies/cp1.f';

If you do not specify a TO option, then RMAN uses the filename specified on a prior SET NEWNAME command in the RUN block for this file number as the switch target.

The filename or tag provided in the TO DATAFILECOPY clause specifies the input copy file for the switch, that is, the datafile copy that you wish to rename. Specify the file by filename or tag. For example, the following command sets df2.copy as the filename for datafile 2:

SWITCH DATAFILE 2 TO DATAFILECOPY '?/dbs/df2.copy';

Note that if you specify a tag and more than one copy uses this tag name, then RMAN uses the most current copy, that is, the one needing the least recovery.

The following command switches datafile 3 to the most recently created datafile copy tagged mondayPMcopy:

SWITCH DATAFILE 3 TO DATAFILECOPY TAG mondayPMcopy;

DATAFILE ALL

Specifies that all datafiles for which a SET NEWNAME FOR DATAFILE command has been issued in this job are switched to their new name.

Example

Switching Datafile Filenames After a Restore: Example

This example allocates one disk device and one tape device to allow RMAN to restore from disk and tape.

RUN
{  
  ALLOCATE CHANNEL dev1 DEVICE TYPE DISK;  
  ALLOCATE CHANNEL dev2 DEVICE TYPE sbt;  
  SQL "ALTER TABLESPACE tbs_1 OFFLINE IMMEDIATE";  
  SET NEWNAME FOR DATAFILE '/disk7/oracle/tbs11.f' 
    TO '/disk9/oracle/tbs11.f';  
  RESTORE TABLESPACE tbs_1; 
  SWITCH DATAFILE ALL;  
  RECOVER TABLESPACE tbs_1;  
  SQL "ALTER TABLESPACE tbs_1 ONLINE";  
}