第十章 【备份】与【恢复】 (一) 备份方法

版权声明:转载请注明原博客地址,博文名称,原作者姓名。 https://blog.csdn.net/lihan7/article/details/82055151

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

先看MYSQL的:

t1表 数据 23:00 文件名 备份量

周一 完全 10条数据 1.sql 10

周二 差异 新写 2 条数据 2.sql 2

周三 5条 3.sql 7

周四 3条 4.sql 10

周五 1 5.sql 11

周六 4 6.sql 15

周日 差异 9 7.sql 24

t1表 数据 23:00 文件名 备份量

周一 完全 10条数据 1.sql 10

周二 增量 新写 2 条数据 2.sql 2

周三 5条 3.sql 5

周四 3条 4.sql 3

周五 1 5.sql 1

周六 4 6.sql 4

周日 增量 9 7.sql 9

1、概念

差异增量:对应于MYSQL的增量备份。是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式

累积增量:对应于MYSQL的差异备份。是备份上级备份以来所有变化的块

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

开启块跟踪功能 (Database Backup and Recovery Basics 4.4.4 Improving Incremental Backup Performance: Change Tracking)

SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/app/oracle/product/oradata/fatdb/rman_chg.log' reuse;

Database altered.

需要说明的是10g起oracle官方只推荐使用level 0和level 1级备份,10g还能使用level 2。本文只讨论下level 2的含义,并不推荐使用。

首先看下Oracle官方解释 载至在线文档Database Backup and Recovery Basics 4.4节RMAN Incremental Backups:

A level 1 incremental backup can be either of the following types:

A differential backup, which backs up all blocks changed after the most recent incremental backup at level 1 or 0

A cumulative backup, which backs up all blocks changed after the most recent incremental backup at level 0

Incremental backups are differential by default.

也就是differential 是上次备份(不论是level 0或者level 1)至今的变化数据,这个是level 1的缺省值。而cumulative 是从上次level 0备份后至今的所有的变化数据,也就是说,如果在level 0 至今,中间如果有若干次增量备份(level  1的differential 或者cumulative ),所有的变化内容都将保存在这个增量集中。

集合下图理解:

增量备份的level 1是从上次0或者1至今的变化,而level 2是从上次备份至今的增量,无论是0或者1或者2;

累积备份的level 1是从上次0至今的累积变化,而level 2是上次level 0或者level 1至今的累积增量(包括期间的level 2增量累计和)

RMAN备份等级详解
RMAN备份等级详解

这里看一个具体例子:若我们对一个星期做如下备份策略。如果我们要恢复到星期五那天,那么差异增量只需要使用星期天的0级,星期三的1级,星期四、五的2级就可以恢复;累积增量则需要星期天的0级、星期三的1级,星期五的2级即可进行恢复。

RMAN备份等级详解

从网上载了几个备份脚本

全库备份:

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;
}

1级备份:

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;
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

所谓增量备份,顾名思义即是每次备份仅操作那些发生了"变化"的数据块。RMAN中增量备份有两种:Differential
方式和Cumulative方式。
1、差异增量备份Differential 


说起Differential,相当有意思,大家可以这样理解。有一家名为Differential的红社会组织,他们民主自由善良博爱为人忠恳正直(以下省略5000个褒义形容词),总之呢,他们会按照你与其约定的周期来向你收取保护费,因为他们的组织非常严密,(以上图为例吧)所有成员按照0,1,2分为不同等级,0级最高就是老大。贵为老大自然身份尊崇,手底下
小弟多,开销也大,所以如果0级老大亲自登门收取的话,没啥说的,甭管它什么时候来,你的家底他都要重新清点一遍,从你成立开始到现在,总共应交多少保护费,一个子儿都不能少的都要交出来。每次来都是这样。而1级成员就显的温和多了,它每次来,只要求你将上次0级收到之后到现在应交的税款给交了就行了。甚至于如果上次也是个1级成员
(与它平级)来收取的话,它也认同。当然,如果上次来收的是个2级成员,它是不承认的,好歹它也是个有身份的人,
比它低级的成员打的收条它向来是不认同地。它至少要求将最后一个与它平级或级别比它要高的成员收取日期到现在应结的给它。1级成员带了头,2级成员也按这个来。
2、累积增量备份cumulative

 

~~~~~~~~~~~~~~~~~~~~

RMAN备份与恢复数据库

RMAN独特之处

RMAN系统

RMAN联机备份

RMAN脚本管理

RMAN非归档模式下的完全恢复

RMAN归档模式下的完全恢复

RMAN实现数据块恢复

RMAN的备份维护指令

RMAN的VALIDATE BACKUPSET指令

RMAN的RESTORE ... VALIDATE指令

RMAN的RESTORE... PREVIEW指令

RMAN的LIST指令

RMAN的REPORT指令

https://blog.csdn.net/haiross/article/details/17003543    前滚和回滚的区别

https://blog.csdn.net/xiaoxing1521025/article/details/16982871    Oracle实例恢复——说说前滚和回滚

https://www.cnblogs.com/promise-x/p/7477360.html            【Oracle】EXPDP和IMPDP数据泵进行导出导入的方法

https://blog.csdn.net/vic_qxz/article/details/52726519 第二章:手工备份与恢复

https://www.cnblogs.com/hyq0002013/p/5623326.html            查看Oracle数据库中的所有用户名

猜你喜欢

转载自blog.csdn.net/lihan7/article/details/82055151