rman备份恢复命令之switch(转)

一 switch 命令
1 switch命令用途
更新数据文件名为rman下镜像拷贝时指定的数据文件名
更新数据文件名为 set newname 命令指定的名字。
 
2 switch 命令使用前提条件
rman 必须连接到目标数据库
当switch tablespaces、datafiles、tempfiles时,这些文件必须离线
当switch 整个数据库时,数据库不能open

3 注意事项
switch....to copy 命令用于rman命令提示符下
switch没有to copy的命令用于run语句块中
  
4 语法
  第一组
   switch dtabase to copy;                  
   switch datafile number|name to copy;
   switch tablespace name to copy;
  第二组
   switch datafile all;
   switch datafile number|name;
   switch tempfile all;
   
二 举例如下:

例一:用switch datafile number to copy 更新数据文件位置和名字
RMAN> backup as copy datafile 8  format ‘/oracle/CRM/test.dbf‘;

Starting backup at 2013-02-22 10:06:21
using channel ORA_DISK_1
using channel ORA_DISK_2
channel ORA_DISK_1: starting datafile copy
input datafile file number=00008 name=/backup/test.dbf
output file name=/oracle/CRM/test.dbf tag=TAG20130222T100621 RECID=14 STAMP=808049181
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2013-02-22 10:06:22

Starting Control File and SPFILE Autobackup at 2013-02-22 10:06:22
piece handle=/backup/c-3599153036-20130222-01 comment=NONE
Finished Control File and SPFILE Autobackup at 2013-02-22 10:06:25

RMAN> sql ‘alter tablespace test offline‘;

sql statement: alter tablespace test offline

RMAN> switch datafile 8 to copy;

datafile 8 switched to datafile copy "/oracle/CRM/test.dbf"

RMAN> report schema;

Report of database schema for database with db_unique_name CRM

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    750      SYSTEM               ***     /oracle/CRM/system01.dbf
2    540      SYSAUX               ***     /oracle/CRM/sysaux01.dbf
3    100      UNDOTBS3             ***     /oracle/CRM/undotbs3.dbf
4    1742     USERS                ***     /backup/users01.dbf
5    500      POS                  ***     /oracle/CRM/pos.dbf
6    100      ERP                  ***     /oracle/CRM/erp.dbf
7    5        USER01               ***     /oracle/CRM/user01.dbf
8    0        TEST                 ***     /oracle/CRM/test.dbf

List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    218      TEMP                 32767       /oracle/CRM/temp01.dbf
2    3072     MYNEWTEMP            40960       /oracle/CRM/newtemp.dbf

例二 用switch tablespace name to copy更新表空间所有数据文件位置和名字
RMAN> backup  as copy  tablespace  pos format ‘/oracle/%N%f.dbf‘;
(%N为表空间名、%f为数据文件绝对文件号)
Starting backup at 2013-02-22 10:55:49
using channel ORA_DISK_1
using channel ORA_DISK_2
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/oracle/CRM/pos.dbf
channel ORA_DISK_2: starting datafile copy
input datafile file number=00009 name=/oracle/CRM/pos2.dbf
output file name=/oracle/POS9.dbf tag=TAG20130222T105549 RECID=18 STAMP=808052153
channel ORA_DISK_2: datafile copy complete, elapsed time: 00:00:07
output file name=/oracle/POS5.dbf tag=TAG20130222T105549 RECID=19 STAMP=808052179
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:36
Finished backup at 2013-02-22 10:56:25

Starting Control File and SPFILE Autobackup at 2013-02-22 10:56:25
piece handle=/backup/c-3599153036-20130222-03 comment=NONE
Finished Control File and SPFILE Autobackup at 2013-02-22 10:56:28

RMAN> sql ‘alter tablespace  pos offline‘;

sql statement: alter tablespace  pos offline

RMAN> switch tablespace pos to copy;

datafile 5 switched to datafile copy "/oracle/POS5.dbf"
datafile 9 switched to datafile copy "/oracle/POS9.dbf"

RMAN> report schema;

Report of database schema for database with db_unique_name CRM

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    750      SYSTEM               ***     /oracle/CRM/system01.dbf
2    540      SYSAUX               ***     /oracle/CRM/sysaux01.dbf
3    100      UNDOTBS3             ***     /oracle/CRM/undotbs3.dbf
4    1742     USERS                ***     /backup/users01.dbf
5    0        POS                  ***     /oracle/POS5.dbf
6    100      ERP                  ***     /oracle/CRM/erp.dbf
7    5        USER01               ***     /oracle/CRM/user01.dbf
8    0        TEST                 ***     /oracle/CRM/test.dbf
9    0        POS                  ***     /oracle/POS9.dbf

List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    218      TEMP                 32767       /oracle/CRM/temp01.dbf
2    3072     MYNEWTEMP            40960       /oracle/CRM/newtemp.dbf

例三 用switch dtabase to copy更新数据库所有数据文件位置和名字
RMAN> backup as copy database format ‘/oracle/CRM/test/%N%f.dbf‘;

Starting backup at 2013-02-22 11:26:52
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=129 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=192 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/backup/users01.dbf
channel ORA_DISK_2: starting datafile copy
input datafile file number=00001 name=/oracle/CRM/system01.dbf
output file name=/oracle/CRM/test/SYSTEM1.dbf tag=TAG20130222T112653 RECID=52 STAMP=808054107
channel ORA_DISK_2: datafile copy complete, elapsed time: 00:01:41
channel ORA_DISK_2: starting datafile copy
input datafile file number=00002 name=/oracle/CRM/sysaux01.dbf
output file name=/oracle/CRM/test/USERS4.dbf tag=TAG20130222T112653 RECID=53 STAMP=808054182
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:02:54
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/oracle/POS5.dbf
output file name=/oracle/CRM/test/SYSAUX2.dbf tag=TAG20130222T112653 RECID=54 STAMP=808054193
channel ORA_DISK_2: datafile copy complete, elapsed time: 00:01:11
channel ORA_DISK_2: starting datafile copy
input datafile file number=00003 name=/oracle/CRM/undotbs3.dbf
output file name=/oracle/CRM/test/UNDOTBS33.dbf tag=TAG20130222T112653 RECID=55 STAMP=808054203
channel ORA_DISK_2: datafile copy complete, elapsed time: 00:00:16
channel ORA_DISK_2: starting datafile copy
input datafile file number=00006 name=/oracle/CRM/erp.dbf
output file name=/oracle/CRM/test/ERP6.dbf tag=TAG20130222T112653 RECID=56 STAMP=808054230
channel ORA_DISK_2: datafile copy complete, elapsed time: 00:00:25
channel ORA_DISK_2: starting datafile copy
input datafile file number=00009 name=/oracle/POS9.dbf
output file name=/oracle/CRM/test/POS5.dbf tag=TAG20130222T112653 RECID=57 STAMP=808054247
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:58
channel ORA_DISK_1: starting datafile copy
input datafile file number=00007 name=/oracle/CRM/user01.dbf
output file name=/oracle/CRM/test/POS9.dbf tag=TAG20130222T112653 RECID=58 STAMP=808054247
channel ORA_DISK_2: datafile copy complete, elapsed time: 00:00:08
channel ORA_DISK_2: starting datafile copy
input datafile file number=00008 name=/oracle/CRM/test.dbf
output file name=/oracle/CRM/test/USER017.dbf tag=TAG20130222T112653 RECID=59 STAMP=808054250
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:00
output file name=/oracle/CRM/test/TEST8.dbf tag=TAG20130222T112653 RECID=60 STAMP=808054250
channel ORA_DISK_2: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2013-02-22 11:30:51

Starting Control File and SPFILE Autobackup at 2013-02-22 11:30:51
piece handle=/backup/c-3599153036-20130222-06 comment=NONE
Finished Control File and SPFILE Autobackup at 2013-02-22 11:30:59

RMAN> switch database to copy;

datafile 1 switched to datafile copy "/oracle/CRM/test/SYSTEM1.dbf"
datafile 2 switched to datafile copy "/oracle/CRM/test/SYSAUX2.dbf"
datafile 3 switched to datafile copy "/oracle/CRM/test/UNDOTBS33.dbf"
datafile 4 switched to datafile copy "/oracle/CRM/test/USERS4.dbf"
datafile 5 switched to datafile copy "/oracle/CRM/test/POS5.dbf"
datafile 6 switched to datafile copy "/oracle/CRM/test/ERP6.dbf"
datafile 7 switched to datafile copy "/oracle/CRM/test/USER017.dbf"
datafile 8 switched to datafile copy "/oracle/CRM/test/TEST8.dbf"
datafile 9 switched to datafile copy "/oracle/CRM/test/POS9.dbf"

RMAN> sql ‘alter database open‘;

sql statement: alter database open

SQL> select file#,name,status from v$datafile;

FILE# NAME                                     STATUS
---------- ---------------------------------------- -------
         1 /oracle/CRM/test/SYSTEM1.dbf             SYSTEM
         2 /oracle/CRM/test/SYSAUX2.dbf             ONLINE
         3 /oracle/CRM/test/UNDOTBS33.dbf           ONLINE
         4 /oracle/CRM/test/USERS4.dbf              ONLINE
         5 /oracle/CRM/test/POS5.dbf                ONLINE
         6 /oracle/CRM/test/ERP6.dbf                ONLINE
         7 /oracle/CRM/test/USER017.dbf             ONLINE
         8 /oracle/CRM/test/TEST8.dbf               ONLINE
         9 /oracle/CRM/test/POS9.dbf                ONLINE
   
   
例四 用switch tempfile all更新所有临时数据文件位置和名字
SQL> select file#,name,status from v$tempfile;

FILE# NAME                                     STATUS
---------- ---------------------------------------- -------
         1 /oracle/CRM/temp01.dbf                   ONLINE
         2 /oracle/CRM/newtemp.dbf                  ONLINE
   
语句如下:   
startup force mount
run{
set newname for tempfile 1 to ‘/oracle/CRM/test/temp01.dbf‘;
set newname for tempfile 2 to ‘/oracle/CRM/test/temp02.dbf‘;
switch tempfile all;
alter database open;
}

执行过程如下:
RMAN> startup force mount

run{
set newname for tempfile 1 to ‘/oracle/CRM/test/temp01.dbf‘;
set newname for tempfile 2 to ‘/oracle/CRM/test/temp02.dbf‘;
switch tempfile all;
alter database open;
}
Oracle instance started
database mounted

Total System Global Area    1252663296 bytes

Fixed Size                     2226072 bytes
Variable Size               1006635112 bytes
Database Buffers             234881024 bytes
Redo Buffers                   8921088 bytes

RMAN> 2> 3> 4> 5> 6> 
executing command: SET NEWNAME

executing command: SET NEWNAME

renamed tempfile 1 to /oracle/CRM/test/temp01.dbf in control file
renamed tempfile 2 to /oracle/CRM/test/temp02.dbf in control file

database opened

RMAN> report schema;

Report of database schema for database with db_unique_name CRM

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    750      SYSTEM               ***     /oracle/CRM/test/SYSTEM1.dbf
2    540      SYSAUX               ***     /oracle/CRM/test/SYSAUX2.dbf
3    100      UNDOTBS3             ***     /oracle/CRM/test/UNDOTBS33.dbf
4    1742     USERS                ***     /oracle/CRM/test/USERS4.dbf
5    500      POS                  ***     /oracle/CRM/test/POS5.dbf
6    100      ERP                  ***     /oracle/CRM/test/ERP6.dbf
7    5        USER01               ***     /oracle/CRM/test/USER017.dbf
8    1        TEST                 ***     /oracle/CRM/test/TEST8.dbf
9    10       POS                  ***     /oracle/CRM/test/POS9.dbf

List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    218      TEMP                 32767       /oracle/CRM/test/temp01.dbf
2    3072     MYNEWTEMP            40960       /oracle/CRM/test/temp02.dbf

例五 用switch datafile all更新表空间所有数据位置和名字
语句:
run{
sql ‘alter tablespace pos offline immediate‘;
set newname for datafile ‘/oracle/CRM/test/POS5.dbf‘ to ‘/oracle/CRM/pos1.dbf‘;
set newname for datafile ‘/oracle/CRM/test/POS9.dbf‘ to ‘/oracle/CRM/pos2.dbf‘;
restore tablespace pos;
switch datafile all;
recover tablespace pos;
sql ‘alter tablespace pos online‘;
}

执行过程如下:
RMAN> run{
2> sql ‘alter tablespace pos offline immediate‘;
3> set newname for datafile ‘/oracle/CRM/test/POS5.dbf‘ to ‘/oracle/CRM/pos1.dbf‘;
4> set newname for datafile ‘/oracle/CRM/test/POS9.dbf‘ to ‘/oracle/CRM/pos2.dbf‘;
5> restore tablespace pos;
6> switch datafile all;
7> recover tablespace pos;
8> sql ‘alter tablespace pos online‘;
9> }

sql statement: alter tablespace pos offline immediate

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 2013-02-22 15:18:37
using channel ORA_DISK_1
using channel ORA_DISK_2

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00005 to /oracle/CRM/pos1.dbf
channel ORA_DISK_1: restoring datafile 00009 to /oracle/CRM/pos2.dbf
channel ORA_DISK_1: reading from backup piece /backup/20130222_hho2k7jn_1_1
channel ORA_DISK_1: piece handle=/backup/20130222_hho2k7jn_1_1 tag=TAG20130222T145756
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:25
Finished restore at 2013-02-22 15:19:03

datafile 5 switched to datafile copy
input datafile copy RECID=72 STAMP=808067944 file name=/oracle/CRM/pos1.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=73 STAMP=808067944 file name=/oracle/CRM/pos2.dbf

Starting recover at 2013-02-22 15:19:04
using channel ORA_DISK_1
using channel ORA_DISK_2

starting media recovery
media recovery complete, elapsed time: 00:00:00

Finished recover at 2013-02-22 15:19:05

sql statement: alter tablespace pos online

RMAN> report schema;

Report of database schema for database with db_unique_name CRM

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    750      SYSTEM               ***     /oracle/CRM/test/SYSTEM1.dbf
2    540      SYSAUX               ***     /oracle/CRM/test/SYSAUX2.dbf
3    100      UNDOTBS3             ***     /oracle/CRM/test/UNDOTBS33.dbf
4    1742     USERS                ***     /oracle/CRM/test/USERS4.dbf
5    500      POS                  ***     /oracle/CRM/pos1.dbf
6    100      ERP                  ***     /oracle/CRM/test/ERP6.dbf
7    5        USER01               ***     /oracle/CRM/test/USER017.dbf
8    1        TEST                 ***     /oracle/CRM/test/TEST8.dbf
9    10       POS                  ***     /oracle/CRM/pos2.dbf

本文出自 “myblog” 博客,请务必保留此出处http://jiujian.blog.51cto.com/444665/1140329

时间: 2024-10-29 19:11:06

rman备份恢复命令之switch(转)的相关文章

Oracle RMAN备份恢复1-基础篇_超越OCP精通Oracle视频教程培训17

oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习oracle数据库RMAN备份恢复基础,如rman作用与体系架构,nocatalog和catalog介绍与catalog配置,详解rman的使用,详解rman常用的命令list,report, backup,configure,set,crosscheck,validate,change,delete,restore,recover,switch,blockrecover,convert等使用. 适用人群 IT相关从

rman备份恢复到异机报ORA-01110 ORA-01180错误

[[email protected] ORACLE]$ rman target / Recovery Manager: Release 10.2.0.5.0 - Production on Thu Jul 31 13:51:40 2014 Copyright (c) 1982, 2007, Oracle.  All rights reserved. connected to target database (not started) RMAN> set dbid 1619708557 execu

第22章 oracle RMAN备份恢复

2015-10-24 目录 参考资料 [1] 林树泽.Oracle 11g R2 DBA操作指南[M].北京:清华大学出版社,2013 [2] Oracle备份与恢复介绍(物理备份与逻辑备份) [3] Oracle备份与恢复案例 [4] ORACLE 备份与恢复 [5] Oracle数据库的备份方法 [6] oracle之rman入门指南 [7] ORACLE RMAN备份及还原 [8] rman备份恢复实例(经典) [9] RMAN 备份详解 [10] RMAN 还原与恢复 [11] RMAN

Oracle RMAN备份恢复2-案例篇_超越OCP精通Oracle视频教程培训18

oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习oracle数据库如何设计一个TB级数据库的RMAN备份策略,RMAN备份与恢复案例-丢失所有文件,丢失单个数据文件,丢失整个数据和system表空间,丢失控制文件和参数文件,存储损坏数据丢失,丢失REDO重做日志文件,基于时间点,scn,cancel,备份控制文件的不完成恢复案例. 适用人群 IT相关从业人员.Oracle数据库技术人员.想加工资的.想升职的都可以. 视频在线学习地址: http://edu.51c

Oracle RMAN备份恢复3-高级篇_超越OCP精通Oracle视频课程培训19

oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习oracle数据库关于RMAN内存缓冲与块跟踪,DBMS_BACKUP_RESTORE,使用RMAN BlockRecover恢复坏块,RMAN Recovery Advisor 案例,RMAN备份压缩技术,RMAN增量备份恢复,RMAN备份加密,RMAN克隆数据库,生产环境RMAN异机恢复的几种经典场景案例 . 适用人群 IT相关从业人员.Oracle数据库技术人员.想加工资的.想升职的都可以. 视频在线学习地址:

Oracle RMAN备份恢复指导书

目 录 1 目的与范围... 1 2 术语和定义... 1 3 角色和职责... 2 4 使用RMAN备份数据库... 2 4.1.1 检查数据库模式... 2 4.1.2 连接到target数据库... 3 4.1.3 查看备份信息... 3 4.1.4 备份数据库... 5 4.1.5 备份数据文件... 6 4.1.6 备份表空间... 6 4.1.7 备份控制文件... 6 4.1.8 备份归档日志文件... 7 4.1.9 备份闪回区... 8 4.1.10 增量备份... 8 4.2

创建RMAN备份 恢复目录数据库

这是前段时间给客户做的RMAN备份策略,今天有时间整理出来,希望对大家有些帮助,如有不对的地方欢迎大家给予指点,谢谢!   创建成恢复目录数据库 如果不是在本地配置RMAN 恢复目录, 在一台WINDOW2000电脑上安装ORACLE数据库,最好保证数据库版本与目标数据库的版本想同. 建立RMAN 数据库用户及表空间: RECOVER CATALOG 表空间(cattbs):1G系统表空间:       100MUNDO表空间:     100M临时表空间(TEMP):        100M 

非系统数据文件损坏,rman备份恢复

实验前提:已经做好备份. SQL> col file_name for a50select file_id,file_name from dba_data_files;  FILE_ID FILE_NAME---------- --------------------------------------------------4 /home/oracle/app/oradata/orcl/users01.dbf2 /home/oracle/app/oradata/orcl/sysaux01.db

RMAN常用备份恢复命令汇总

RMAN命令 1.独立命令  RMAN>shutdown immediate  RMAN>startup  RMAN>backup format 'd:\backup\%d_%s.bak' tablespace users;2.作业命令  RMAN>run { backup format 'd:\backup\$d_%s.bak' tablespace users; }3.运行SQL命令  RMAN>sql 'alter system switch logfile' ;4.运