zoukankan      html  css  js  c++  java
  • Oracle的差异增量备份和累积增量备份

    在rman增量备份中,有差异增量累积增量的概念。

    差异增量:是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式
    累积增量:是备份上级备份以来所有变化的块

    累积增量是备份上级备份以来所有变化的数据块,所以累积增量需要更多的备份时间,同时需要较小的恢复时间;而差异增量正好相反,它可以备份同级备份以来变化的数据块,所以会减少备份时间,但需要更多的恢复时间。

    增量备份都需要一个0级备份来作为基础,0级备份与全备份的区别在于0级可以用来增量恢复,而全备份则不可以。

    备份命令如下:

        零级备份

        backup incremental level 0 database;
        一级差异增量
        backup incremental level 1 database;
        一级累计增量
        backup incremental level 1 cumulative database;

    eg:我们对一星期做如下备份策略,见下表。

    星期  差异增量  累积增量

    天    0级         0级

    一    2级         2级

    二    2级         2级

    三    1级         1级

    四    2级         2级

    五    2级         2级

    六    2级         2级

    天    0级         0级

    如果周六恢复,那么差异增量只需要使用星期天的0级,星期三的一级,星期四、五的二级就可以恢复,累积增量则需要星期天的0级、星期三的1级,星期五的二级即可进行恢复。

    同时需要备份一段时间归档日志。

    备份策略典型案例:

        每半年做一个数据库的全备份(包括所有的数据和只读表空间)
        每一个月做一次零级备份(不包含只读表空间)
        每个星期做一次一级备份
        每天做一次二级备份

    全库备份脚本

    run{
        allocate channel c1 type disk;
        allocate channel c2 type disk;
        allocate channel c3 type disk;
        backup full tag 'dbfull' format '/u01/oradata/backup/full%u_%s_%p' database
        include current controlfile;
        sql 'alter system archive log current';
        backup filesperset 3 format '/u01/oradata/backup/arch%u_%s_%p'
        archivelog all delete input; #备份归档可选,可以单独定期备份
        release channel c1;
        release channel c2;
        release channel c3;
        }

    零级备份脚本

    run{
        allocate channel c1 type disk;
        allocate channel c2 type disk;
        allocate channel c3 type disk;
        backup incremental level 0 tag 'db0' format '/u01/oradata/backup/db0%u_%s_%p'
        database skip readonly;
        sql 'alter system archive log current';
        backup filesperset 3 format '/u01/oradata/backup/arch%u_%s_%p'
        archivelog all delete input; #备份归档可选,可以单独定期备份
        release channel c1;
        release channel c2;
        release channel c3;
        }

    一级备份脚本

    run{
        allocate channel c1 type disk;
        allocate channel c2 type disk;
        allocate channel c3 type disk;
        backup incremental level 1 tag 'db1' format '/u01/oradata/backup/db1%u_%s_%p'
        database skip readonly;
        sql 'alter system archive log current';
        backup filesperset 3 format '/u01/oradata/backup/arch%u_%s_%p'
        archivelog all delete input; #备份归档可选,可以单独定期备份
        release channel c1;
        release channel c2;
        release channel c3;
        }

    如果按照以上备份策略,则每天的所需要备份的数据量只有一天的改变量。而做恢复时最多要恢复当月的一个零级备份+三个一级备份+6个二级备份+当天的归档文件。如果不能接受这样的恢复时间,可以减少零级备份之间的时间间隔。在每次备份后,原则上在该备份点之前的归档日志就可以删除掉了,但是为了进一步的安全以及日后需要(如使用LOGMNR查找所需信息),建议有条件的话,归档日志保存到能够接受的时间点,可以保存在廉价存取设备上。

  • 相关阅读:
    Oracle中查看建立索引和使用索引的注意点
    一个父亲的教育札记——leo鉴书58
    puma 配置,启动脚本
    HDU 6003 Problem Buyer
    c# 类间关系
    前台线程和后台线程总结
    多线程学习进程
    进程类的使用
    c#异步编程
    【程序17】
  • 原文地址:https://www.cnblogs.com/likingzi/p/6692462.html
Copyright © 2011-2022 走看看