RMAN完全备份与增量备份

来源:互联网 发布:淘宝卖什么利润大 编辑:程序博客网 时间:2024/05/19 18:47
----------完全备份-----------
BACKUP SET: 数据文件中所有用过的块的备份
IMAGE COPY: 所有数据文件的完整拷贝。
----------增量备份-----------
从某个特定的时间点以来发生变化的数据库的一次备份。这个时间点可以是上(完全或增量)次备份的时间点。
增量备份产生文件的格式只能是 Backup Set,RMAN 只能对数据文件进行增量备份,控制文件和参数文件不能增量备份。


增量备份的优势;
1. 介质恢复时,直接用 Backup set 中的数据内容覆盖数据文件中的数据块内容,如果使用归档日志进行恢复需要的步骤要复杂的多,增量备份比使用归档日志恢复要快很多。
2. 增量备份能够捕获 NOLOGGING 操作的数据变化,这些操作不会记录到日志上,因此与只备份归档日志相比,增量备份能够提供更多的数据保护。




一、完全备份
缺省使用配置的格式 Backupset。
RMAN> BACKUP DATABASE;
RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE;


采用 Image Copy 方式备份:
RMAN> BACKUP AS COPY DATABASE;


完全备份示例:


run
{
  configure controlfile autobackup on;
  configure controlfile autobackup format device type disk to '/u01/rman/control/auto_control_%F';
  backup as copy db_file_name_convert=('+DATA1/PROD',/u01/rman/data') database;
}


注意:使用 Image Copy 方式进行备份时,如果希望在指定目录下产生的备份文件和原数据文件同名,可以指定在 database /datafile 之前指定 db_file_name_convert
但是如果想把 ASM 上的数据文件备份到 ASM 上,这种方法可能会出错。原因:因为默认情况下 ASM 使用 OMF 方式管理数据文件,OMF 方式产生的数据文件名格式为:
tag_name.file_number.incarnation_number 格式,其中的 incarnation_number 无法手动指定。要解决这种问题,配置 ASM 时应该选择不使用 OMF 方式。




二、增量备份原理
增量备份只备份发生变化的数据块。Oracle 以 Oracle 数据块作为基本的存储单位,每个数据块的块头有存储有 SCN,代表最新的 SCN ,增量备份通过读取每个数据块头部的 SCN,
并与上次备份时的 Checkpoint SCN 进行比较,如果数据块头的 SCN 大于或等于 Checkpoint SCN,则还锁门这个数据块发生了变化,RMAN 就会拷贝这个数据块放在备份文件中。
在Oracle 10g 以前,Oracle 允许多级增量备份,在 Oracle 10g 中只允许 0 和 1级增量备份,0 相当于完全备份,但完全备份不能作为增量备份的 0级。
增量备份的优势:加快恢复速度,减少数据丢失。


1、差异增量备份(Differential Incremental Backup)
周日 周一 周二 周三 周四 周五 周日
0    1    1    1    1    1    0
周一是周日以来的变化
周二是周一以来的变化
周三是周二以来的变化
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;


2、累积增量备份 (Cumulative Icremental Backup)
周日 周一 周二 周三 周四 周五 周日
0    1    1    1    1    1    0
周一是周日以来的变化:周日-周一
周二:周日-周一,周一-周二
周三:周日-周一,周一-周二,周二-周三
RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;


示例:
0 级备份
run
{
backup as copy of db_file_convert ('+DATA1/PROD','/u01/rman/datafile') incremental level 0 database tag 'full_backup';
}


1 级备份
run
{
backup incremental level 1 cumulative for recover of copy with tag 'full_backup' database;
recover copy of database with tag 'full_backup'; 
}


3、Block Change Tracking
传统增量备份:为了获得要备份的数据块(发生变化的块),需要遍历所有的数据块,备份效率低下。
Block Change Tracking File:每当数据块发生变化时,相关信息就会记录到此文件中。当用 RMAN 进行增量备份时就不需要遍历所有数据块,直接从该文件就可以获得发生了变化的
数据块列表进行备份,可以级大地提高备份效率。


启用 Block change tracking


SQL> alter database enable block change tracking;


Database altered.


本人原创,转载请注明出处



禁用 Block change tracking
SQL> alter database disable block change tracking;


Database altered.


如果在启用时未指定跟踪文件,则默认跟踪文件位于:
SQL> col filename for a45
SQL> select * from v$block_change_tracking;


STATUS     FILENAME                                           BYTES
---------- --------------------------------------------- ----------
ENABLED    +DATA1/prod/changetracking/ctf.271.789029981    11599872




启用 block change tracking 之后,Oracle 就会启动一个 ctwr 进程,负责跟踪数据块的变化,可以手动指定跟踪文件的位置:
SQL> alter database enable block change tracking using file '/u01/rman/block_changing.track';


Database altered.
原创粉丝点击