backupset和backuppiece的区别

| No Comments

朋友itpub上问backupsetbackuppiece的区别,我很能理解这位朋友为什么会有这样的疑问,因为我在六年前看9i OCP的培训教材的时候也不明白这两者之间的区别是什么。

 

我们只需要做如下这样一些测试并配合list backup就可以知道backupsetbackuppiece的区别了:

1、多个channel并且指定filesperset

configure device type disk parallelism 3;

run{

backup incremental level=0

format 'D:\oracle\oradata\testdb\backup\testdb_%t_%s_%p.bak' database

filesperset 3;

}

 

2、单个channel且不指定filesperset

configure device type disk parallelism 1;

run{

backup incremental level=0

format 'D:\oracle\oradata\testdb\backup\testdb_%t_%s_%p.bak' database;

}

 

3、单个channel且指定maxsetsize

configure device type disk parallelism 1;

configure maxsetsize to 450M;

run{

backup incremental level=0

format 'D:\oracle\oradata\testdb\backup\testdb_%t_%s_%p.bak' database;

}

 

4、单个channel且指定maxpiecesize

configure device type disk parallelism 1;

configure maxsetsize to unlimited;

run{

allocate channel c1 device type disk maxpiecesize 300M;

backup incremental level=0

format 'D:\oracle\oradata\testdb\backup\testdb_%t_%s_%p.bak' database;

release channel c1;

}

 

5、多个channel且指定filesperset,但请注意filesperset的位置:

configure device type disk parallelism 3;

run{

backup incremental level=0

format 'D:\oracle\oradata\testdb\backup\testdb_%t_%s_%p.bak' database

plus archivelog

format 'D:\oracle\oradata\testdb\backup\testdb_arc_%t_%s_%p.bak'

delete all input

filesperset 2;

}

 

6:多个channel且指定filesperset,但请注意filesperset的位置:

configure device type disk parallelism 3;

run{

backup incremental level=0

format 'D:\oracle\oradata\testdb\backup\testdb_%t_%s_%p.bak' database filesperset 2

plus archivelog

format 'D:\oracle\oradata\testdb\backup\testdb_arc_%t_%s_%p.bak'

delete all input;

}

 

从结果里我们可以得到如下结论:

1、  backupsetbackuppiece组成,每一个backuppiece就是一个单个的物理文件;

2、  如果你在分配channel的时候不指定maxpiecesize,则每个backupset只会包含一个backuppiece;反之一个backupset里会有多个backuppiece(即物理文件);

3、  一次备份中backupset的数量跟分配channel的个数、是否指定filespersetfilesperset的位置、是否指定maxsetsize有关。

 

filesperset的位置很关键,比如我这里有10datafile需要备份,那么上述测试5对这10datafile(不含archivelog)会产生多少个backupset?测试6呢?

 

答案是测试5产生了3backupset,测试6产生了6backupset这里请正确理解filesperset 的含义)。

 

Leave a comment