INCREMENTAL BACKUP
分2种第一种是差异增量备份和累积增量备份
? 差异备份:这是增量备份的缺省类型,它备份自最近n 级或更低级别备份以来更改
过的所有块
? 累积备份:备份自最近n-1 级或更低级别备份以来更改过的所有块
0级是基础,如果运行1-4级别时候没0级备份,那么oracle自动0级备份
简单的说:
incremental:备份当天,及小于当前level之间变化的block
例:
周日 0 ,周一2,周二2 ,周三一,周四0
分析 周日0级备份:相当与FULL备份
周一2级备份:备份周日到周一变化的BLOCK
周二2级备份:备份周1到周2变化的BLOCK
周三1级备份:备份周1到周三变化的block
周四0级备份:备份周日到周四的所有内容(FULL BACKUP)
级别0最大,4最小 可以看出 周1级别小于周日级别 所以只备份当天的变化,周二级别等于周一级别所以也只备份 当天的变化,周三级别大于周2级别大于周1级别小于周日级别 所以
备份周1-周3的变化
周四0级 FULLBACKUP
culumative备份:备份当天及小于等于当前级别之间的变化block
例:
周日 0 ,周一2,周二2 ,周三一,周四0
分析 周日0级备份:相当与FULL备份
周一2级备份:备份周日到周一变化的BLOCK
周二2级备份:备份周1到周2变化的BLOCK
周三1级备份:备份周1到周三变化的block
周四0级备份:备份周日到周四的所有内容(FULL BACKUP)
级别0最大,4最小 可以看出 周1级别小于周日级别 所以只备份当天的变化,周二级别等于周一级别所以备份周1到周2的变化的block(注意等于也备份),周三级别大于周2级别大
于周1级别小于周日级别 所以备份周1-周3的变化
周四0级 FULLBACKUP
SQL> create table t1(a char(2000),b char(2000),c char(2000)) tablespace test;
表已创建。
RMAN> backup incremental level 0 datafile 6; backup culumative(累积备份) level
RMAN> backup incremental level 2 datafile 6;~~~~~~~insert 产生要备份的块
RMAN> backup incremental level 2 datafile 6;~~~~~~~insert 产生要备份的块
RMAN> backup incremental level 1 datafile 6;~~~~~~~insert 产生要备份的块
RMAN> list backup of datafile 6;
SQL> create table t1(a char(2000),b char(2000),c char(2000)) tablespace test;
表已创建。
SQL> insert into t1 values('a','a','a');
每次INSERT 都会产生一个新BLOCK 8192=8K
备份集列表
===================
RMAN> list backup of datafile 6;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
25 Incr 0 216.00K DISK 00:00:00 18-9月 -09
BP 关键字: 25 状态: AVAILABLE 已压缩: NO 标记: TAG20090918T145032
段名:E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_09_18\O1_MF_N
NND0_TAG20090918T145032_5C6CFS5C_.BKP
备份集 25 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
6 0 Incr 1799000 18-9月 -09 D:\TEST.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
26 Incr 2 48.00K DISK 00:00:01 18-9月 -09~~~2级时候~~~~~变化块为8K(另外40是固定的不知道包含什么)只备份当前
BP 关键字: 26 状态: AVAILABLE 已压缩: NO 标记: TAG20090918T145101
段名:E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_09_18\O1_MF_N
NND2_TAG20090918T145101_5C6CGOGN_.BKP
备份集 26 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称~~~~~~~~~~~~~~~~CKP SCN(CHECKPOINT SCN)
---- -- ---- ---------- ---------- ----
6 2 Incr 1799025 18-9月 -09 D:\TEST.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
27 Incr 2 48.00K DISK 00:00:01 18-9月 -09~~~~~2级时候~~~~~~~变化块为8K(另外40是固定的不知道包含什么)只备份当前
BP 关键字: 27 状态: AVAILABLE 已压缩: NO 标记: TAG20090918T145132
段名:E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_09_18\O1_MF_N
NND2_TAG20090918T145132_5C6CHNQG_.BKP
备份集 27 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
6 2 Incr 1799050 18-9月 -09 D:\TEST.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
28 Incr 1 72.00K DISK 00:00:01 18-9月 -09~~~~1级别时~~~变化块为8K~加上2次2级别时候变化块16 一共32+固定40=72K~~
BP 关键字: 28 状态: AVAILABLE 已压缩: NO 标记: TAG20090918T145336
段名:E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_09_18\O1_MF_N
NND1_TAG20090918T145336_5C6CMJTC_.BKP
备份集 28 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
6 1 Incr 1799107 18-9月 -09 D:\TEST.DBF
开启块跟踪
增强incremental backup性能(10G才有 块跟踪)10G前 RMAN要扫描所有datafile中所有块利用checkpoint SCN确定父备份中那些块修改过
2段doc中描述
Oracle Database 10g includes a change tracking feature for incremental backups, which improves incremental backup performance by recording changed blocks in
each datafile in a change tracking file. If change tracking is enabled, then RMAN uses the change tracking file to identify changed blocks for incremental
backup. This avoids the need to scan every block in the datafile, reducing the number of disk reads during backup
RMAN's change tracking feature for incremental backups improves incremental backup performance by recording changed blocks in each datafile in a change
tracking file. If change tracking is enabled, RMAN uses the change tracking file to identify changed blocks for incremental backup, thus avoiding the need to
scan every block in the datafile.
After enabling change tracking, the first level 0 incremental backup still has to scan the entire datafile, as the change tracking file does not yet reflect
the status of the blocks. Subsequent incremental backup that use this level 0 as parent will take advantage of the change tracking file.
Using change tracking in no way changes the commands used to perform. incremental backups, and the change tracking files themselves generally require little
maintenance after initial configuration.
Change tracking is disabled by default, because it does introduce some minimal performance overhead on your database during normal operations. However, the
benefits of avoiding full datafile scans during backup are considerable, especially if only a small percentage of data blocks are changed between backups. If
your backup strategy involves incremental backups, then you should enable change tracking.
One change tracking file is created for the whole database. By default, the change tracking file is created as an Oracle managed file in DB_CREATE_FILE_DEST.
You can also specify the name of the block change tracking file, placing it in any location you choose.
开块跟踪后(默认是关闭的),用一个文件(LOG)来跟踪自上次备份起更改过的块,rman读取这个LOG 来确定 要备份的块 提高了incremental checkpoint性能,避免扫描所有块,level
0还是会扫描所有block的,如果跟踪文件丢失则还会scan the entire datafile,所以开启块跟踪10G才是真正意义上的 INCREMENTAL BACKUP(不用再扫描所有DATAFILE )
15:00:35 SQL> desc v$block_change_tracking;
名称 是否为空? 类型
----------------------------------------- -------- ------------------------
STATUS VARCHAR2(10)
FILENAME VARCHAR2(513)
BYTES NUMBER
SQL> col filename format a30
SQL> select * from v$block_change_tracking;
STATUS FILENAME BYTES
---------- ------------------------------ ----------
DISABLED
SQL> alter database enable block change tracking using file 'rman_test.trk';~只指定了名字 未指定位置
数据库已更改。
SQL> select * from v$block_change_tracking;
STATUS FILENAME BYTES
---------- ------------------------------ ----------
ENABLED E:\ORACLE\PRODUCT\10.2.0\DB_1\ 11599872~~~~~~~~~~DEFAULT 存在这个位置
DATABASE\RMAN_TEST.TRK
如果使用OMF 管理oracle文件 会建立在
db_create_file_dest位置
SQL> alter database disable block change tracking (关闭)
2 ;
数据库已更改。
SQL> alter database enable block change tracking using file 'd:\backup\rman_test.t
rk';
指定名字和位置
数据库已更改。
SQL> select * from v$block_change_tracking;
STATUS FILENAME BYTES
---------- ------------------------------ ----------
ENABLED D:\BACKUP\RMAN_TEST.TRK 11599872
可以移动 trace file
To relocate the change tracking file:
If necessary, determine the current name of the change tracking file:
SELECT filename
FROM V$BLOCK_CHANGE_TRACKING;
Shut down the database. For example:
SHUTDOWN IMMEDIATE
Using host operating system commands, move the change tracking file to its new location.
Mount the database and move the change tracking file to a location that has more space. For example:
ALTER DATABASE RENAME FILE 'ora_home/dbs/change_trk.f' TO '/new_disk/change_trk.f';
Open the database:
ALTER DATABASE OPEN;
SQL> shutdown immediate;
数据库已经关闭。
Fri Sep 18 16:12:13 2009
Block change tracking service stopping.(ALERT.LOG中 )
SQL> host move d:\backup\rman_test.trk e:\rman_test.trk
SQL> startup mount
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 205523844 bytes
Database Buffers 398458880 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> alter database rename file 'd:\backup\rman_test.trk' to 'e:\rman_test.trk';
数据库已更改。
SQL> alter database open;
数据库已更改。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12020513/viewspace-614912/ ,如需转载,请注明出处,否则将追究法律责任。