oracle rman 之switch datafile all 含义

rman里面用的

run
{
set new datafile 1 to 'c:\new\1.dbf';
restore database;
--现在,需要把文件的新位置写到控制文件
sql 'alter database rename datafile 1 to ..';
--当然,如果有很多个,用:
switch datafile all;
}
 


After the RESTORE command but before the RECOVER command in your RUN 
block, use a SWITCH command to update the control file with the new 
filenames of the datafiles. The SWITCH command is equivalent to the 
SQL statement ALTER DATABASE RENAME FILE. SWITCH DATAFILE ALL updates
 the control file to reflect the new names for all datafiles for 
 which a SET NEWNAME has been issued in the RUN block.


RUN
{
  SQL 'ALTER TABLESPACE users OFFLINE IMMEDIATE';
  SQL 'ALTER TABLESPACE tools OFFLINE IMMEDIATE';
  # specify the new location for each datafile
  SET NEWNAME FOR DATAFILE '/olddisk/users01.dbf' TO 
  '/newdisk/users01.dbf';
  SET NEWNAME FOR DATAFILE '/olddisk/tools01.dbf' TO 
  '/newdisk/tools01.dbf';
  # to restore to an ASM disk group named dgroup, use: 
  # SET NEWNAME FOR DATAFILE '/olddisk/trgt/tools01.dbf'
  # TO '+dgroup';
  RESTORE TABLESPACE users, tools;
  SWITCH DATAFILE ALL; # update control file with new filenames
  RECOVER TABLESPACE users, tools;
}
控制文件里存有数据文件的路径,比如原来是c:\abc\1.dbf,现在恢复的时候想换到d:\abc\1.dbf, 那要怎么做呢?

run{
  set newname for datafile 1 to 'd:\abc\1.dbf';
  restore database;
  --现在,rman已经在数据文件copy到d:\abc\1.dbf了,但控制文件里的路径还是c:\abc\1.dbf, 所以要更新控制文件洛
  switch datafile all;
  --好了,现在控制文件的路径也是d:\abc\1.dbf了
}

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年2月    »
12
3456789
10111213141516
17181920212223
2425262728
搜索
标签列表
网站分类
最新留言
    文章归档
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.闽ICP备11018667号-2