欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

RMAN的备份集增量备份

程序员文章站 2022-05-14 23:33:40
...

在做传统的Oracle备份的时候,是使用操作系统的文件拷贝对数据库的文件进行备份,备份的粒度是数据文件,数据文件可能很大,但里面都

在做传统的Oracle备份的时候,是使用操作系统的文件拷贝对数据库的文件进行备份,备份的粒度是数据文件,数据文件可能很大,但里面都是空块,没有Oracle的数据,但由于是文件拷贝,所以需要备份整个文件.

RAMN的备份集备份值备份已经用过的数据块,而且能够进行增量备份.

一般用到的增量备份有三种形式:

0级增量备份,包含所有已经用到的数据块.

差异备份,包含从上一次备份(可以是0级增量备份,差异备份,累计备份)到目前的改动过的数据块.

累计备份,包含从上一次0级增量备份到目前的改动过的数据块.

每次0级备份形成一个新的备份周期.

例如下面的一个备份策略,每个周日晚上0级增量备份,周三晚上1级累计备份,其他晚上1级差异备份.

备份集中包含的块如下所示:

RMAN的备份集增量备份



下面模拟一下这个步骤

对于基础的RMAN操作,请参照

1,在周日做0级备份

RMAN> run{
2> allocate channel c1 type disk;
3> backup incremental level 0 database format 'D:\oracle\rmanrep\butdblv0%U.dmp';
4> }

2,周日到周一数据库中数据变化:insert into test values(1,'monday lv1D');

RMAN> run{
2> allocate channel c1 type disk;
3> backup incremental level 1 database format 'D:\oracle\rmanrep\butdblv2d1%U.dmp';
4> }
3,周一到周二数据库中数据变化:insert into test values(2,'Tuesday lv1D');
RMAN> run{
2> allocate channel c1 type disk;
3> backup incremental level 1 database format 'D:\oracle\rmanrep\butdblv2d2%U.dmp';
4> }

4,周二到周三数据库中数据变化:insert into test values(3,'Wednesday lv1C');
RMAN> run{
2> allocate channel c1 type disk;
3> backup incremental level 1 cumulative database format 'D:\oracle\rmanrep\butdblv1d3%U.dmp';
4> }

周四,周五,周六和上面2,3步类似.

在下一个周日的时候,做0级备份,一个新的备份周期开始.

* 在OCP的书上说的1级差异备份的语法为 backup incremental level 1 differential database,我在操作过程中

RMAN提示语法错误: RMAN-01008: the bad identifier was: differential

RMAN的备份集增量备份