• RMAN备份与恢复之不完全恢复


    • 要点:对于RMAN的不完全恢复,有如下步骤:

    1)加载数据到mount状态(建议恢复前先做备份)

    2)为高并发分配多个通道

    3)还原所有(所需)的数据文件

    4)使用until time,until sequence,until scn来恢复数据库

    5)使用resetlogs打开数据库

    6)全备数据库

     

    SQL> conn scott/Sina.2015@study
    Connected.
    SQL> show user;
    USER is "SCOTT"
    SQL> create table tb1(id int,name varchar2(10));
    
    Table created.
    
    SQL>  insert into tb1 select 1,'Test' from dual;
    
    1 row created.
    
    SQL> conn sys / as sysdba;
    Enter password: 
    Connected.
    SQL> SELECT a.GROUP#,a.ARCHIVED,a.STATUS,b.TYPE,b.MEMBER FROM V$LOG a,V$LOGFILE b
      2  where a.GROUP#=b.GROUP#
      3  ;
    
        GROUP# ARC STATUS           TYPE      MEMBER
    ---------- --- ----------------                -------      --------------
             3 NO  CURRENT          ONLINE    /data2/orcl/redo03.log
             2 YES INACTIVE           ONLINE    /data2/orcl/redo02.log
             1 YES INACTIVE           ONLINE    /data2/orcl/redo01.log
    1.0实验(操作数据)
    SQL>  host strings /data2/orcl/redo03.log | grep Test
    
    SQL>  commit;  --注意commit是将日志缓冲内容写入到日志文件
    
    SQL>  host strings /data2/orcl/redo03.log | grep Test  --提交后联机日志文件中才有新增的记录
    Test
    Oracle Real Application Testing
    Oracle Real Application Testing
    perl-Test-HarnessW_TPackage_0:3.17-127.el6
    perl-Test-Harness
    perl-Test-SimplePackage
    perl-Test-Simple
    perl-Test-Harness
    perl-Test-Harness
    perl-Test-SimpleRed Hat, Inc.
    perl-Test-SimplePackage
    
    SQL> host ls /data2/orcl/recover_log/archive_log
    1_10_892917066.dbf  1_15_892917066.dbf  1_2_892917066.dbf   1_4_892917066.dbf  1_9_892917066.dbf
    1_11_892917066.dbf  1_16_892917066.dbf  1_34_892641223.dbf  1_5_892917066.dbf
    1_12_892917066.dbf  1_17_892917066.dbf  1_35_892641223.dbf  1_6_892917066.dbf
    1_13_892917066.dbf  1_18_892917066.dbf  1_36_892641223.dbf  1_7_892917066.dbf
    1_14_892917066.dbf  1_1_892917066.dbf   1_3_892917066.dbf   1_8_892917066.dbf
    1.1查看重做日志及归档日志
    RMAN>  run{
    2>  allocate channel ch1 type disk;
     allocate channel ch2 type disk;
     backup as compressed backupset database plus archivelog delete input
    3> 4> 5>  format '/data2/backup/wh_lg_%T_%U'
    6>  tag='Wholebak_Pluslog';
    7>  release channel ch1;
    8>  release channel ch2;}
    
    released channel: ORA_DISK_1
    released channel: ORA_DISK_2
    released channel: ORA_DISK_3
    allocated channel: ch1
    channel ch1: SID=131 device type=DISK
    
    allocated channel: ch2
    channel ch2: SID=199 device type=DISK
    
    
    Starting backup at 15-OCT-15
    current log archived
    channel ch1: starting compressed archived log backup set
    channel ch1: specifying archived log(s) in backup set
    input archived log thread=1 sequence=34 RECID=27 STAMP=892917066
    input archived log thread=1 sequence=35 RECID=28 STAMP=892917067
    input archived log thread=1 sequence=36 RECID=29 STAMP=892917068
    channel ch1: starting piece 1 at 15-OCT-15
    channel ch2: starting compressed archived log backup set
    channel ch2: specifying archived log(s) in backup set
    input archived log thread=1 sequence=1 RECID=30 STAMP=892918266
    input archived log thread=1 sequence=2 RECID=31 STAMP=892918267
    input archived log thread=1 sequence=3 RECID=32 STAMP=892936841
    input archived log thread=1 sequence=4 RECID=33 STAMP=892944057
    input archived log thread=1 sequence=5 RECID=34 STAMP=892967601
    input archived log thread=1 sequence=6 RECID=35 STAMP=892994416
    input archived log thread=1 sequence=7 RECID=36 STAMP=892998810
    input archived log thread=1 sequence=8 RECID=37 STAMP=893021371
    input archived log thread=1 sequence=9 RECID=38 STAMP=893023737
    input archived log thread=1 sequence=10 RECID=39 STAMP=893044828
    channel ch2: starting piece 1 at 15-OCT-15
    channel ch1: finished piece 1 at 15-OCT-15
    piece handle=/data2/backup/wh_lg_20151015_29qjpa57_1_1 tag=WHOLEBAK_PLUSLOG comment=NONE
    channel ch1: backup set complete, elapsed time: 00:00:04
    channel ch1: deleting archived log(s)
    archived log file name=/data2/orcl/recover_log/archive_log/1_34_892641223.dbf RECID=27 STAMP=892917066
    archived log file name=/data2/orcl/recover_log/archive_log/1_35_892641223.dbf RECID=28 STAMP=892917067
    archived log file name=/data2/orcl/recover_log/archive_log/1_36_892641223.dbf RECID=29 STAMP=892917068
    channel ch1: starting compressed archived log backup set
    channel ch1: specifying archived log(s) in backup set
    input archived log thread=1 sequence=11 RECID=40 STAMP=893072256
    input archived log thread=1 sequence=12 RECID=41 STAMP=893088234
    input archived log thread=1 sequence=13 RECID=42 STAMP=893095263
    input archived log thread=1 sequence=14 RECID=43 STAMP=893109634
    input archived log thread=1 sequence=15 RECID=44 STAMP=893116838
    input archived log thread=1 sequence=16 RECID=45 STAMP=893142174
    input archived log thread=1 sequence=17 RECID=46 STAMP=893151673
    input archived log thread=1 sequence=18 RECID=47 STAMP=893167412
    input archived log thread=1 sequence=19 RECID=48 STAMP=893167783
    channel ch1: starting piece 1 at 15-OCT-15
    channel ch1: finished piece 1 at 15-OCT-15
    piece handle=/data2/backup/wh_lg_20151015_2bqjpa5b_1_1 tag=WHOLEBAK_PLUSLOG comment=NONE
    channel ch1: backup set complete, elapsed time: 00:00:25
    channel ch1: deleting archived log(s)
    archived log file name=/data2/orcl/recover_log/archive_log/1_11_892917066.dbf RECID=40 STAMP=893072256
    archived log file name=/data2/orcl/recover_log/archive_log/1_12_892917066.dbf RECID=41 STAMP=893088234
    archived log file name=/data2/orcl/recover_log/archive_log/1_13_892917066.dbf RECID=42 STAMP=893095263
    archived log file name=/data2/orcl/recover_log/archive_log/1_14_892917066.dbf RECID=43 STAMP=893109634
    archived log file name=/data2/orcl/recover_log/archive_log/1_15_892917066.dbf RECID=44 STAMP=893116838
    archived log file name=/data2/orcl/recover_log/archive_log/1_16_892917066.dbf RECID=45 STAMP=893142174
    archived log file name=/data2/orcl/recover_log/archive_log/1_17_892917066.dbf RECID=46 STAMP=893151673
    archived log file name=/data2/orcl/recover_log/archive_log/1_18_892917066.dbf RECID=47 STAMP=893167412
    archived log file name=/data2/orcl/recover_log/archive_log/1_19_892917066.dbf RECID=48 STAMP=893167783
    channel ch2: finished piece 1 at 15-OCT-15
    piece handle=/data2/backup/wh_lg_20151015_2aqjpa57_1_1 tag=WHOLEBAK_PLUSLOG comment=NONE
    channel ch2: backup set complete, elapsed time: 00:00:29
    channel ch2: deleting archived log(s)
    archived log file name=/data2/orcl/recover_log/archive_log/1_1_892917066.dbf RECID=30 STAMP=892918266
    archived log file name=/data2/orcl/recover_log/archive_log/1_2_892917066.dbf RECID=31 STAMP=892918267
    archived log file name=/data2/orcl/recover_log/archive_log/1_3_892917066.dbf RECID=32 STAMP=892936841
    archived log file name=/data2/orcl/recover_log/archive_log/1_4_892917066.dbf RECID=33 STAMP=892944057
    archived log file name=/data2/orcl/recover_log/archive_log/1_5_892917066.dbf RECID=34 STAMP=892967601
    archived log file name=/data2/orcl/recover_log/archive_log/1_6_892917066.dbf RECID=35 STAMP=892994416
    archived log file name=/data2/orcl/recover_log/archive_log/1_7_892917066.dbf RECID=36 STAMP=892998810
    archived log file name=/data2/orcl/recover_log/archive_log/1_8_892917066.dbf RECID=37 STAMP=893021371
    archived log file name=/data2/orcl/recover_log/archive_log/1_9_892917066.dbf RECID=38 STAMP=893023737
    archived log file name=/data2/orcl/recover_log/archive_log/1_10_892917066.dbf RECID=39 STAMP=893044828
    Finished backup at 15-OCT-15
    
    Starting backup at 15-OCT-15
    channel ch1: starting compressed full datafile backup set
    channel ch1: specifying datafile(s) in backup set
    input datafile file number=00001 name=/data2/orcl/system01.dbf
    input datafile file number=00003 name=/data2/orcl/undotbs01.dbf
    channel ch1: starting piece 1 at 15-OCT-15
    channel ch2: starting compressed full datafile backup set
    channel ch2: specifying datafile(s) in backup set
    input datafile file number=00002 name=/data2/orcl/sysaux01.dbf
    input datafile file number=00004 name=/data2/orcl/user01.dbf
    channel ch2: starting piece 1 at 15-OCT-15
    channel ch2: finished piece 1 at 15-OCT-15
    piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_15/o1_mf_nnndf_TAG20151015T141014_c1yjt962_.bkp tag=TAG20151015T141014 comment=NONE
    channel ch2: backup set complete, elapsed time: 00:00:46
    channel ch1: finished piece 1 at 15-OCT-15
    piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_15/o1_mf_nnndf_TAG20151015T141014_c1yjt92v_.bkp tag=TAG20151015T141014 comment=NONE
    channel ch1: backup set complete, elapsed time: 00:00:57
    Finished backup at 15-OCT-15
    
    Starting backup at 15-OCT-15
    current log archived
    channel ch1: starting compressed archived log backup set
    channel ch1: specifying archived log(s) in backup set
    input archived log thread=1 sequence=20 RECID=49 STAMP=893167872
    channel ch1: starting piece 1 at 15-OCT-15
    channel ch1: finished piece 1 at 15-OCT-15
    piece handle=/data2/backup/wh_lg_20151015_2eqjpa81_1_1 tag=WHOLEBAK_PLUSLOG comment=NONE
    channel ch1: backup set complete, elapsed time: 00:00:03
    channel ch1: deleting archived log(s)
    archived log file name=/data2/orcl/recover_log/archive_log/1_20_892917066.dbf RECID=49 STAMP=893167872
    Finished backup at 15-OCT-15
    
    Starting Control File and SPFILE Autobackup at 15-OCT-15
    piece handle=/u01/app/oracle/fast_recovery_area/ORCL/autobackup/2015_10_15/o1_mf_s_893167876_c1yjw646_.bkp comment=NONE
    Finished Control File and SPFILE Autobackup at 15-OCT-15
    
    released channel: ch1
    
    released channel: ch2
    1.2备份(全库备份)
    SQL> drop table scott.tb1;
    
    Table dropped.
    2.1删除数据或表
    RMAN> run{
    2>  allocate channel ch1 type disk;
    3>  allocate channel ch2 type disk;
    4>  set until time "to_date('2015-10-15 14:12:10','yyyy-mm-dd hh24:mi:ss')";
    5>  restore database;
    6>  recover database;
    7>  alter database open resetlogs;
    8>  release channel ch1;
    9>  release channel ch2;}
    
    allocated channel: ch1
    channel ch1: SID=131 device type=DISK
    
    allocated channel: ch2
    channel ch2: SID=199 device type=DISK
    
    executing command: SET until clause
    
    Starting restore at 15-OCT-15
    
    channel ch1: starting datafile backup set restore
    channel ch1: specifying datafile(s) to restore from backup set
    channel ch1: restoring datafile 00002 to /data2/orcl/sysaux01.dbf
    channel ch1: restoring datafile 00004 to /data2/orcl/user01.dbf
    channel ch1: reading from backup piece /u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_15/o1_mf_nnndf_TAG20151015T141014_c1yjt962_.bkp
    channel ch2: starting datafile backup set restore
    channel ch2: specifying datafile(s) to restore from backup set
    channel ch2: restoring datafile 00001 to /data2/orcl/system01.dbf
    channel ch2: restoring datafile 00003 to /data2/orcl/undotbs01.dbf
    channel ch2: reading from backup piece /u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_15/o1_mf_nnndf_TAG20151015T141014_c1yjt92v_.bkp
    released channel: ch1
    released channel: ch2
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of restore command at 10/15/2015 14:19:14
    ORA-19870: error while restoring backup piece /u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_15/o1_mf_nnndf_TAG20151015T141014_c1yjt962_.bkp
    ORA-19573: cannot obtain exclusive enqueue for datafile 2
    2.2恢复数据
    接2.2部分:
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of restore command at 10/15/2015 14:19:14
    ORA-19870: error while restoring backup piece /u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_15/o1_mf_nnndf_TAG20151015T141014_c1yjt962_.bkp
    ORA-19573: cannot obtain exclusive enqueue for datafile 2
    
    
    Cause: The file access enqueue could not be obtained for a file specified in a backup, copy or restore operation. If the enqueue type shown is SHARED, then the file is the input file for a backup or copy. If the type is EXCLUSIVE, then the file is the output file for a datafile copy or restore which is attempting to overwrite the currently active version of that file. In this case, the file must be offline or the database must be closed. If the type is read-only, then you are attempting to back up or copy this file while the database is in NOARCHIVELOG mode.
    问题解决:不完全恢复时,数据库状态需要切换到 mount状态
    2.3恢复问题
    RMAN> startup nomount force;
    
    Oracle instance started
    
    Total System Global Area    1937457152 bytes
    
    Fixed Size                     2229584 bytes
    Variable Size               1241516720 bytes
    Database Buffers             687865856 bytes
    Redo Buffers                   5844992 bytes
    
    RMAN> alter database mount;
    
    database mounted
    
    RMAN> run{
    2>  allocate channel ch1 type disk;
    3>  allocate channel ch2 type disk;
    4>  set until time "to_date('2015-10-15 14:12:10','yyyy-mm-dd hh24:mi:ss')";
    5>  restore database;
    6>  recover database;
    7>  alter database open resetlogs;
    8>  release channel ch1;
    9>  release channel ch2;}
    
    allocated channel: ch1
    channel ch1: SID=129 device type=DISK
    
    allocated channel: ch2
    channel ch2: SID=193 device type=DISK
    
    executing command: SET until clause
    
    Starting restore at 15-OCT-15
    
    channel ch1: starting datafile backup set restore
    channel ch1: specifying datafile(s) to restore from backup set
    channel ch1: restoring datafile 00002 to /data2/orcl/sysaux01.dbf
    channel ch1: restoring datafile 00004 to /data2/orcl/user01.dbf
    channel ch1: reading from backup piece /u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_15/o1_mf_nnndf_TAG20151015T141014_c1yjt962_.bkp
    channel ch2: starting datafile backup set restore
    channel ch2: specifying datafile(s) to restore from backup set
    channel ch2: restoring datafile 00001 to /data2/orcl/system01.dbf
    channel ch2: restoring datafile 00003 to /data2/orcl/undotbs01.dbf
    channel ch2: reading from backup piece /u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_15/o1_mf_nnndf_TAG20151015T141014_c1yjt92v_.bkp
    channel ch1: piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_15/o1_mf_nnndf_TAG20151015T141014_c1yjt962_.bkp tag=TAG20151015T141014
    channel ch1: restored backup piece 1
    channel ch1: restore complete, elapsed time: 00:00:45
    channel ch2: piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2015_10_15/o1_mf_nnndf_TAG20151015T141014_c1yjt92v_.bkp tag=TAG20151015T141014
    channel ch2: restored backup piece 1
    channel ch2: restore complete, elapsed time: 00:01:05
    Finished restore at 15-OCT-15
    
    Starting recover at 15-OCT-15
    
    starting media recovery
    media recovery complete, elapsed time: 00:00:03
    
    Finished recover at 15-OCT-15
    
    database opened
    
    released channel: ch1
    
    released channel: ch2
    SQL> conn scott/Sina.2015@study
    Connected.
    SQL> select * from tb1;
    
            ID NAME
    ---------- ----------
             1 Test
    2.4切换数据库状态,重新恢复

    另:rman debug trace 诊 rman问题

     rman target / debug trace=/tmp/rman_debug

     

  • 相关阅读:
    U132973 双生独白
    Remmarguts' Date(A* 短路)
    P3908 数列之异或
    P1469 找筷子
    P1759 通天之潜水
    P2356 弹珠游戏
    P7072 直播获奖
    P7074 方格取数
    CSP2020二轮游记
    P6205 [USACO06JAN]Dollar Dayz S
  • 原文地址:https://www.cnblogs.com/HondaHsu/p/4882393.html
Copyright © 2020-2023  润新知