首页 > 数据库 >Oracle的差异增量备份和累积增量备份

Oracle的差异增量备份和累积增量备份

时间:2023-09-21 11:22:22浏览次数:37  
标签:备份 增量 Oracle _% disk backup channel

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

    1、概念

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

    因为累积增量是备份上级备份以来所有变化的数据块,所以累积增量需要更多的备份时间,同时需要较小的恢复时间;而差异增量正好相反,它可以备份同级备份以来变化的数据块。所以会减少备份时间,但需要更多的恢复时间.在oracle 9中增量备份需要通过扫描整个数据库的数据块才能知道哪些数据块发生了变化,这是一个代价很大,时间很长的过程,而且由于增量备份形成多个不同的备份集,使恢复变得更加不可靠,所以增量备份在版本9中仍然不被推荐使用;在10g中,增量备份作了很大的改进,不需要再扫描所有数据块就能得知哪些数据块发生变化,从而大大提升备份效率。但这些却以牺牲磁盘i/o为代价,所以在oltp事务系统中还得衡量是否愿意以i/o为代价来保证安全及高可用性。10g还支持增量合并,增量备份可支持7级增量。

    2、备份策略及恢复

    以rman多级增量备份来作为备份策略例子:

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

    备份策略:

    eg:我们对一星期做如下备份策略  ,那么差异增量只需要使用星期天的0级,星期三的一级,星期四、五的二级就可以恢复,累积增量则需要星期天的0级、星期三的1级,星期五的二级即可进行恢复。以上是一个星期的备份策略,如果做长期的备份策略则只需要把备份的时间延长即可得到新的备份策略,具体需要看自己备份及恢复能够接受的程度而顶,见最后的备份策略典型案例。

星期

差异增量

累积增量

星期天

0级

0级

星期一

2级

2级

星期二

2级

2级

星期三

1级

1级

星期四

2级

2级

星期五

2级

2级

星期六

2级

2级

星期天

0级

0级

 

    备份命令如下:

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

    备份策略典型案例:

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

    任何数据库的更改需要重新同步CATALOG目录并重新备份(如添加数据文件)或重新备份(如修改表空间为只读)
    建议备份一段时间归档日志和定期备份归档到到磁带上

    全库备份脚本  

 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查找所需信息),建议有条件的话,归档日志保存到能够接受的时间点,可以保存在磁带等廉价存取设备上。

 转自http://www.eygle.com/digest/2009/04/oracle_rman_incremental_backup.html

 

标签:备份,增量,Oracle,_%,disk,backup,channel
From: https://www.cnblogs.com/aries0228/p/17719478.html

相关文章

  • hbase 备份及恢复
    1,hbase自带的备份恢复工具hbaseorg.apache.hadoop.hbase.mapreduce.Export'table1'/home/fred/table1hbaseorg.apache.hadoop.hbase.mapreduce.Import'table1'/home/fred/table1导入时必须先创建表结构。http://www.iteye.com/topic/1114721Java代码......
  • linux服务器异机备份
    1、安装crondyum-yinstallvixie-cronyum-yinstallcrontabs2、新建脚本文件,制定运行脚本vi/mnt/bak/backup135.sh备份脚本如下:#!/bin/bashsettimeout6000spawnrsync-e"ssh-p22"[email protected]:/home/backup/mnt/backupexpect{"passw......
  • MySQL备份与恢复
    MySQL备份与恢复备份的介绍数据库加载慢1服务器配置不够、2别的进程占用大部分资源;3语句累赘;4、遇到select语句查询速度慢,怎么办?先使用explain分析select查询语句,看key字段,确定select查询语句是否使用了索引或索引使用是否正确。然后再根据select查询语句使用......
  • MySQL 日志管理、备份与恢复
    MySQL日志管理、备份与恢复---MySQL日志管理---MySQL的日志默认保存位置为/usr/local/mysql/datavim/etc/my.cnf[mysqld]##错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启log-error=/usr/local/mysql/data/mysql_error.log#指定......
  • oracle数据库中查看表空间下各表占用表空间的大小
    背景:在做数据库巡检时,检查大表是必不可少的操作,可以查看各表占用表空间的大小,下面直接上例子,然后表空间名字我写成实际的了selectt.owner,t.segment_name,t.tablespace_name,bytes/1024/1024/1024assizes,q.num_rows,t.segment_typefromdba_segmentstleftjoindba_tablesq......
  • 解决Oracle 11g在用EXP导出时,空表不能导出
    一、问题原因:  11G中有个新特性,当表无数据时,不分配segment,以节省空间  1、insert一行,再rollback就产生segment了。     该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。   2、设置deferred_segment_creation参数     showpa......
  • Oracle定义DES加密解密及MD5加密函数示例
    (1)DES加密函数createorreplacefunctionencrypt_des(p_textvarchar2,p_keyvarchar2)returnvarchar2isv_textvarchar2(4000);v_encvarchar2(4000);raw_inputRAW(128);key_inputRAW(128);decrypted_rawRAW(2048);beginv_text:=rpad(p_text,(trunc(len......
  • 在Oracle中查询表的大小和表空间的大小
    有两种含义的表大小。一种是分配给一个表的物理空间数量,而不管空间是否被使用。可以这样查询获得字节数:selectsegment_name,bytes fromuser_segments wheresegment_type='TABLE'; 或者  SelectSegment_Name,Sum(bytes)/1024/1024FromUser_ExtentsGroupBySegment_......
  • ORACLE日期时间函数大全
    ORACLE日期时间函数大全  TO_DATE格式(以时间:2007-11-02  13:45:25为例)         Year:            yytwodigits两位年               显示值:07       yyythreedigits三位年               显示值......
  • Hadoop集群的NameNode的备份
    Hadoop集群中,NameNode节点存储着HDFS上所有文件和目录的元数据信息如果NameNode挂了,也就意味着整个Hadoop集群也就完了所以,NameNode节点的备份很重要,可以从以下2个方面来备份NameNode节点1.在hdfs-site.xml中,配置多个name的dir到不同的磁盘分区上:<property>   <name>dfs.name.......