zoukankan      html  css  js  c++  java
  • oracle 备份恢复篇(二)---rman 增备恢复--不完全恢复

    一,环境准备

       全备脚本:

     1 export TMP=/tmp
     2 export TMPDIR=$TMP
     3 export ORACLE_BASE=/u01
     4 export ORACLE_SID=prod
     5 export ORACLE_HOME=/u01/oracle/db_1
     6 export ORACLE_TERM=xterm
     7 export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
     8 export  LANG=en_US
     9 rman target / log /u01/backup/rman_full.log append<<EOF
    10 run
    11 {allocate channel c1 type disk;
    12 allocate channel c2 type disk;
    13 backup database filesperset 4 format '/u01/backup/full_%d_%T_%s_%p';
    14 sql 'alter system archive log current';
    15 sql 'alter system archive log current';
    16 sql 'alter system archive log current';
    17 backup archivelog all format '/u01/backup/arch_%d_%T_%s_%p' delete input;
    18 backup current controlfile format '/u01/backup/ctl_%d_%T_%s_%p';
    19 crosscheck backup;
    20 crosscheck archivelog all;
    21 delete noprompt obsolete;
    22 delete noprompt  expired backup;
    23 delete noprompt  expired archivelog all;
    24 }
    25 EOF
    View Code

       增备脚本:

     1 export TMP=/tmp
     2 export TMPDIR=$TMP
     3 export ORACLE_BASE=/u01
     4 export ORACLE_SID=prod
     5 export ORACLE_HOME=/u01/oracle/db_1
     6 export ORACLE_TERM=xterm
     7 export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
     8 export  LANG=en_US
     9 rman target / log /u01/backup/rman_full.log append<<EOF
    10 run
    11 {allocate channel c1 type disk;
    12 allocate channel c2 type disk;
    13 sql 'alter system archive log current';
    14 sql 'alter system archive log current';
    15 sql 'alter system archive log current';
    16 backup archivelog all format '/u01/backup/arch_%d_%T_%s_%p' delete input;
    17 backup current controlfile format '/u01/backup/ctl_%d_%T_%s_%p';
    18 crosscheck backup;
    19 crosscheck archivelog all;
    20 delete noprompt  expired backup;
    21 delete  noprompt expired archivelog all;
    22 }
    23 EOF
    View Code

       实际环境..周日全备,其他增备

       周日全备数据:

       运行全备脚本.........

       周一增备:

       这天的数据写入特别多........

       create table test as select * from tab;
    
       create table a as select * from dba_users; 
    
       create table scott.emp1 as select * from scott.emp where rownum < 3;
    
       select * from scott.emp1;
       .....未完待续 不停的写
    .....写......写..... 晚上增备了

    sh 增备脚本.sh

        数据故障模拟:

          又一次删除:

    二,故障发现于处理

      第一步: 首先准备

       进入数据库....

       关闭数据库:>>>> shutdown abort

        启动到nomount状态

        进入备份目录查看最新的备份

        进入rman >>> rman target /

      第二步: 恢复控制文件,启动到数据库mount状态

         restore controlfile from '/u01/backup/ctl_PROD_20190301_724_1';

      第三步:  

       找到最新的归档集并注册

    RMAN> list backup;
    ......
    
    RMAN> catalog backuppiece '/u01/backup/arch_PROD_20190301_719_1';
    RMAN> catalog backuppiece '/u01/backup/arch_PROD_20190301_721_1';
    RMAN> catalog backuppiece '/u01/backup/arch_PROD_20190301_722_1';
    RMAN> catalog backuppiece '/u01/backup/arch_PROD_20190301_723_1';

      第四步:

       恢复数据

      第五步:

        恢复归档数据

     RMAN> recover database;

      第六步:

        打开数据库到resetlogs模式(重置redo)

    RMAN> alter database open resetlogs;
    

      第七步:

        重新备份数据

        

  • 相关阅读:
    IDEA快捷键
    关于redis key命名规范的设计 【转载】
    Mybatis数据源与连接池 【转载】
    通过缓冲区读文件和非缓冲区读文件有什么区别
    BCB6 使用正则表达式的例子
    QT在子窗口外单击关闭子窗口
    QT5 中文乱码
    QT 鼠标右键菜单
    关于线程池的几个问题
    关于ConcurentHashMap的几个问题
  • 原文地址:https://www.cnblogs.com/kingle-study/p/10454803.html
Copyright © 2011-2022 走看看