zoukankan      html  css  js  c++  java
  • 【转】rman备份恢复命令之switch

    原始出处 http://jiujian.blog.51cto.com/444665/1140329

    一 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 database 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 database 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

  • 相关阅读:
    Javascript | 模拟mvc实现点餐程序
    DataTables实现按分组小计
    [Webcast]Silverlight探秘系列课程
    python 环境搭建
    MailMessage
    WebRequest
    消息队列(Message Queue)
    c# 缓存
    c# 反射
    数据库连接超时
  • 原文地址:https://www.cnblogs.com/fengaix6/p/6640126.html
Copyright © 2011-2022 走看看