Archive for March 1st, 2008
利用块跟踪来缩短增量备份时间
Saturday, March 1st, 2008
oracle提供增量备份数据库的功能,这个功能的大致原理就是根据上次备份记录的checkpoint scn来比较,备份自上次
备份以来,数据块头SCN变化过的块,9I版本的这个功能并不能有效减小备份时间,因为他还是要把整个文件读入缓冲区,逐个数据块进行检查和校验,只不过推入输出缓冲区的数据块会少很多,备份片会小很多,如果到备份设备的IO不存在瓶颈,花的时间可能和一次全备差不多,但是从10G版本开始,引入了BLOCK CHANGE TRACKING特性,这次算是真正的增量了。
当这个特性开启后,ORACLE会创建一个trace文件,并起用后台进程CTWR记录变化的数据块,当需要增量备份的时候,就直接读这个文件获得要备份的数据块,速度确实是有质的飞跃
–全备数据库
run
{
allocate channel c1 device type disk format ‘/opt/oracle/rman/mydb_full_bck%u’;
backup incremental level 0 database ;
}
allocated channel: c1
channel c1: sid=841 device type=disk
starting backup at 2008-03-01 18:19:10
finished backup at 2008-03-01 18:19:45
全备耗时35秒
–增量数据
sys@mydb>create table mytable tablespace myspace as select * from dba_objects where 1 = 2;
table created.
sys@mydb>insert into mytable select * from dba_objects;
12064 rows created.
……
sys@mydb>commit;
commit [...]


