zoukankan      html  css  js  c++  java
  • Oracle RMAN 备份及不完全恢复(删除archievelog)

    RMAN备份命令

    backup Database format='/home/oracle/backup/bak_full_%U_%T' tag='bak_full'; 
    sql 'alter system archive log current'; 
    backup archivelog all tag='arc_bak' format='/home/oracle/backup/arch_%U_%T' delete input; 
    backup current controlfile tag='bak_ctlfile' format='/home/oracle/backup/bak_ctl_%U_%T'; 
    backup spfile tag='spfile' format='/home/oracle/backup/bak_spfile_%U_%T';

    备份完后插入测试数据

    insert into zz values(2); commit;

    insert into qq values(2); commit;

    然后通过alter system switch logfile多切几次归档,切出多个归档文件

    o1_mf_1_12_cpb2xhg8_.arc o1_mf_1_14_cpb36dbo_.arc
    o1_mf_1_13_cpb35zgs_.arc o1_mf_1_15_cpb37ff2_.arc

    删除12和14文件

    [oracle@ocp 2016_06_18]$ rm o1_mf_1_12_cpb2xhg8_.arc
    [oracle@ocp 2016_06_18]$ rm o1_mf_1_14_cpb36dbo_.arc

    通过在RMAN中运行处理使得报错

    run {

    sql'alter database datafile 6 offline';

    restore datafile 6;

    recover datafile 6;

    sql'alter database datafile 6 online';

    }

    错误为

    RMAN> recover datafile 6;

    Starting recover at 18-JUN-16
    using channel ORA_DISK_1

    starting media recovery

    archived log for thread 1 with sequence 13 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_13_cpb35zgs_.arc
    archived log for thread 1 with sequence 15 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_15_cpb37ff2_.arc
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of recover command at 06/18/2016 16:59:59
    RMAN-06053: unable to perform media recovery because of missing log
    RMAN-06025: no backup of archived log for thread 1 with sequence 14 and starting SCN of 1105737 found to restore
    RMAN-06025: no backup of archived log for thread 1 with sequence 12 and starting SCN of 1080714 found to restore

    查看archieve目录,发现确实只有

    o1_mf_1_13_cpb35zgs_.arc  o1_mf_1_15_cpb37ff2_.arc

    查看v$log,得到最后需要应用的日志文件应该是16

    SQL> select group#,sequence#,status from v$log;

    GROUP# SEQUENCE# STATUS
    ---------- ---------- ----------------
    1 16 CURRENT
    2 14 INACTIVE
    3 15 INACTIVE

    被还原的6号文件的scn为

    SQL> select file#,change# from v$recover_file;

    FILE# CHANGE#
    ---------- ----------
    6 1080514

    查看v$log_history得知需要从10号文件开始恢复

    SQL> select sequence# from v$log_history where 1080514 between first_change# and next_change#-1;

    SEQUENCE#
    ----------
    10

    RMAN> list backup of archivelog all;


    List of Backup Sets
    ===================


    BS Key Size Device Type Elapsed Time Completion Time
    ------- ---------- ----------- ------------ ---------------
    3 61.04M DISK 00:00:03 16-JUN-16
    BP Key: 3 Status: AVAILABLE Compressed: NO Tag: TAG20160616T165323
    Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2016_06_16/o1_mf_annnn_TAG20160616T165323_cp4t83nk_.bkp

    List of Archived Logs in backup set 3
    Thrd Seq Low SCN Low Time Next SCN Next Time
    ---- ------- ---------- --------- ---------- ---------
    1 6 1022418 08-JUN-16 1033516 16-JUN-16
    1 7 1033516 16-JUN-16 1047305 16-JUN-16

    BS Key Size Device Type Elapsed Time Completion Time
    ------- ---------- ----------- ------------ ---------------
    4 61.05M DISK 00:00:02 16-JUN-16
    BP Key: 4 Status: AVAILABLE Compressed: NO Tag: TAG20160616T165445
    Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2016_06_16/o1_mf_annnn_TAG20160616T165445_cp4tbogp_.bkp

    List of Archived Logs in backup set 4
    Thrd Seq Low SCN Low Time Next SCN Next Time
    ---- ------- ---------- --------- ---------- ---------
    1 6 1022418 08-JUN-16 1033516 16-JUN-16
    1 7 1033516 16-JUN-16 1047305 16-JUN-16
    1 8 1047305 16-JUN-16 1047358 16-JUN-16

    BS Key Size Device Type Elapsed Time Completion Time
    ------- ---------- ----------- ------------ ---------------
    7 61.02M DISK 00:00:03 18-JUN-16
    BP Key: 7 Status: AVAILABLE Compressed: NO Tag: ARC_BACK
    Piece Name: /home/oracle/backup/arch_07r8fcti_1_1_20160618

    List of Archived Logs in backup set 7
    Thrd Seq Low SCN Low Time Next SCN Next Time
    ---- ------- ---------- --------- ---------- ---------
    1 9 1047358 16-JUN-16 1071119 16-JUN-16
    1 10 1071119 16-JUN-16 1080684 18-JUN-16
    1 11 1080684 18-JUN-16 1080714 18-JUN-16

    备份级里面有6,7,8,9,10,11,6号文件test01.dbf需要的是从10号archivelog开始,但需要恢复到16号文件,目前缺少12,14文件.

    查找一下12-14文件的位置,进行确认.

    RMAN> list archivelog low sequence 12 high sequence 14

    2> ;

    List of Archived Log Copies for database with db_unique_name ORCL
    =====================================================================

    Key Thrd Seq S Low Time
    ------- ---- ------- - ---------
    7 1 12 A 18-JUN-16
    Name: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_12_cpb2xhg8_.arc

    8 1 13 A 18-JUN-16
    Name: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_13_cpb35zgs_.arc

    9 1 14 A 18-JUN-16
    Name: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_14_cpb36dbo_.arc

    只能不完全恢复到12

    shutdown abort;

    starup force mount;

    RMAN> run {
    2> set until sequence 12;
    3> restore database;
    4> }

    executing command: SET until clause

    Starting restore at 18-JUN-16
    using channel ORA_DISK_1
    flashing back control file to SCN 1080714

    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 00001 to /u01/app/oracle/oradata/orcl/system01.dbf
    channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/orcl/sysaux01.dbf
    channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/orcl/undotbs01.dbf
    channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/orcl/users01.dbf
    channel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/orcl/example01.dbf
    channel ORA_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/orcl/test01.dbf
    channel ORA_DISK_1: reading from backup piece /home/oracle/backup/back_full_05r8fcon_1_1_20160618
    channel ORA_DISK_1: piece handle=/home/oracle/backup/back_full_05r8fcon_1_1_20160618 tag=BACK_FULL
    channel ORA_DISK_1: restored backup piece 1
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
    Finished restore at 18-JUN-16

    RMAN> run {
    2> set until sequence 12;
    3> recover database;
    4> }

    executing command: SET until clause

    Starting recover at 18-JUN-16
    using channel ORA_DISK_1

    starting media recovery

    channel ORA_DISK_1: starting archived log restore to default destination
    channel ORA_DISK_1: restoring archived log
    archived log thread=1 sequence=10
    channel ORA_DISK_1: restoring archived log
    archived log thread=1 sequence=11
    channel ORA_DISK_1: reading from backup piece /home/oracle/backup/arch_07r8fcti_1_1_20160618
    channel ORA_DISK_1: piece handle=/home/oracle/backup/arch_07r8fcti_1_1_20160618 tag=ARC_BACK
    channel ORA_DISK_1: restored backup piece 1
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
    archived log file name=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_10_cpb4clcf_.arc thread=1 sequence=10
    channel default: deleting archived log(s)
    archived log file name=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_10_cpb4clcf_.arc RECID=20 STAMP=914865395
    archived log file name=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_11_cpb4clcl_.arc thread=1 sequence=11
    channel default: deleting archived log(s)
    archived log file name=/u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_11_cpb4clcl_.arc RECID=19 STAMP=914865394
    media recovery complete, elapsed time: 00:00:00
    Finished recover at 18-JUN-16

    RMAN> alter database open resetlogs;

    database opened

    用scott/tiger登录后查看,发现插入的数据不在了.

    打开后,需要重新备份数据库,备份前需要删除原有多余的backup set及archivelog

    RMAN> configure retention policy to redundancy 1;

    new RMAN configuration parameters:
    CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
    new RMAN configuration parameters are successfully stored

    RMAN> crosscheck backup;

    using channel ORA_DISK_1
    crosschecked backup piece: found to be 'AVAILABLE'
    backup piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2016_06_16/o1_mf_nnndf_TAG20160616T164736_cp4sx8fp_.bkp RECID=1 STAMP=914690856
    crosschecked backup piece: found to be 'AVAILABLE'
    backup piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2016_06_16/o1_mf_ncsnf_TAG20160616T164736_cp4sznlh_.bkp RECID=2 STAMP=914690932
    crosschecked backup piece: found to be 'AVAILABLE'
    backup piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2016_06_16/o1_mf_annnn_TAG20160616T165323_cp4t83nk_.bkp RECID=3 STAMP=914691203
    crosschecked backup piece: found to be 'AVAILABLE'
    backup piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2016_06_16/o1_mf_annnn_TAG20160616T165445_cp4tbogp_.bkp RECID=4 STAMP=914691285
    crosschecked backup piece: found to be 'AVAILABLE'
    backup piece handle=/home/oracle/backup/back_full_05r8fcon_1_1_20160618 RECID=5 STAMP=914862871
    crosschecked backup piece: found to be 'AVAILABLE'
    backup piece handle=/home/oracle/backup/back_full_06r8fcr2_1_1_20160618 RECID=6 STAMP=914862947
    crosschecked backup piece: found to be 'AVAILABLE'
    backup piece handle=/home/oracle/backup/arch_07r8fcti_1_1_20160618 RECID=7 STAMP=914863026
    crosschecked backup piece: found to be 'AVAILABLE'
    backup piece handle=/home/oracle/backup/back_ctl_08r8fd2c_1_1_20160618 RECID=8 STAMP=914863181
    crosschecked backup piece: found to be 'AVAILABLE'
    backup piece handle=/home/oracle/backup/back_spfile_09r8fd3n_1_1_20160618 RECID=9 STAMP=914863223
    crosschecked backup piece: found to be 'AVAILABLE'
    backup piece handle=/home/oracle/backup/bak_ctl_0ar8i7jh_1_1_20160619 RECID=10 STAMP=914955890
    crosschecked backup piece: found to be 'AVAILABLE'
    backup piece handle=/home/oracle/backup/bak_full_0br8i7kj_1_1_20160619 RECID=11 STAMP=914955923
    crosschecked backup piece: found to be 'AVAILABLE'
    backup piece handle=/home/oracle/backup/bak_full_0cr8i7mk_1_1_20160619 RECID=12 STAMP=914955989
    Crosschecked 12 objects


    RMAN> report obsolete;

    RMAN retention policy will be applied to the command
    RMAN retention policy is set to redundancy 1
    Report of obsolete backups and copies
    Type Key Completion Time Filename/Handle
    -------------------- ------ ------------------ --------------------
    Backup Set 1 16-JUN-16
    Backup Piece 1 16-JUN-16 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2016_06_16/o1_mf_nnndf_TAG20160616T164736_cp4sx8fp_.bkp
    Backup Set 2 16-JUN-16
    Backup Piece 2 16-JUN-16 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2016_06_16/o1_mf_ncsnf_TAG20160616T164736_cp4sznlh_.bkp
    Backup Set 3 16-JUN-16
    Backup Piece 3 16-JUN-16 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2016_06_16/o1_mf_annnn_TAG20160616T165323_cp4t83nk_.bkp
    Backup Set 4 16-JUN-16
    Backup Piece 4 16-JUN-16 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2016_06_16/o1_mf_annnn_TAG20160616T165445_cp4tbogp_.bkp
    Backup Set 5 18-JUN-16
    Backup Piece 5 18-JUN-16 /home/oracle/backup/back_full_05r8fcon_1_1_20160618
    Backup Set 6 18-JUN-16
    Backup Piece 6 18-JUN-16 /home/oracle/backup/back_full_06r8fcr2_1_1_20160618
    Backup Set 7 18-JUN-16
    Backup Piece 7 18-JUN-16 /home/oracle/backup/arch_07r8fcti_1_1_20160618
    Backup Set 8 18-JUN-16
    Backup Piece 8 18-JUN-16 /home/oracle/backup/back_ctl_08r8fd2c_1_1_20160618
    Archive Log 7 18-JUN-16 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_12_cpb2xhg8_.arc
    Backup Set 9 18-JUN-16
    Backup Piece 9 18-JUN-16 /home/oracle/backup/back_spfile_09r8fd3n_1_1_20160618
    Archive Log 8 18-JUN-16 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_13_cpb35zgs_.arc
    Archive Log 9 18-JUN-16 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_14_cpb36dbo_.arc
    Archive Log 10 18-JUN-16 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_15_cpb37ff2_.arc
    Archive Log 21 18-JUN-16 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_16_cpb4d2gl_.arc
    Archive Log 23 18-JUN-16 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_15_cpb4d2jt_.arc
    Archive Log 22 18-JUN-16 /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2016_06_18/o1_mf_1_14_cpb4d2jn_.arc
    Backup Set 10 19-JUN-16
    Backup Piece 10 19-JUN-16 /home/oracle/backup/bak_ctl_0ar8i7jh_1_1_20160619

    RMAN> delete obsolete

    crosscheck archivelog all;

    delete noprompt expired archivelog all;

  • 相关阅读:
    c++异常处理
    循环数比较
    交错01串
    六一儿童节
    独立的小易
    牛客网上的最后一位
    微微信.NET 为什么採用文件系统而不是数据库?
    Ugly Numbers(1.5.8)
    xcode6-beta下载
    接收socket数据的粘包处理
  • 原文地址:https://www.cnblogs.com/ericnie/p/5596587.html
Copyright © 2011-2022 走看看