[20130412]rman备份文件大小.txt
记得以前看rman的书,rman仅仅备份已经格式话的块,如果这样一个表被truncate后,即使空间回收了。但是在rman备份时,备份大小不会变化太多,这些前面使用的块一定会备份。实际的测试情况是,备份文件会变小。
测试的链接:http://space.itpub.net/267265/viewspace-750049
如果是索引删除的情况呢?自己不能凭想象,还是做测试来看看。
1.测试环境:
SQL> @ver
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
--建立表空间AAA
CREATE TABLESPACE AAA DATAFILE
'/u01/app/oracle11g/oradata/test/aaa01.dbf' SIZE 64M AUTOEXTEND ON NEXT 16M MAXSIZE UNLIMITED
LOGGING
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
SQL> host ls -l /u01/app/oracle11g/oradata/test/aaa01.dbf
-rw-r----- 1 oracle11g oinstall 67117056 Apr 12 15:17 /u01/app/oracle11g/oradata/test/aaa01.dbf
-- 64*1024*1024+8192=67117056,产生的数据文件要加第一块保存OS的信息。参考:http://space.itpub.net/267265/viewspace-749525
2.在表空间上建立表看看。
create table t tablespace aaa as select * from dba_objects ;
create index i_t_owner_object_name on t (owner, object_name) tablespace aaa;
SQL> host ls -l /u01/app/oracle11g/oradata/test/aaa01.dbf
-rw-r----- 1 oracle11g oinstall 67117056 Apr 12 15:25 /u01/app/oracle11g/oradata/test/aaa01.dbf
RMAN> backup datafile 11 format '/data/testtest/aaa1_%U';
SQL> host ls -l /data/testtest/aaa1*
-rw-r----- 1 oracle11g oinstall 14098432 Apr 12 15:26 /data/testtest/aaa1_0eo6tcq2_1_1
--备份文件大小14098432。
3.删除索引,在做一个备份看看。
drop index i_t_owner_object_name ;
RMAN> backup datafile 11 format '/data/testtest/aaa2_%U';
SQL> host ls -l /data/testtest/aaa*
-rw-r----- 1 oracle11g oinstall 14098432 Apr 12 15:26 /data/testtest/aaa1_0eo6tcq2_1_1
-rw-r----- 1 oracle11g oinstall 10313728 Apr 12 15:31 /data/testtest/aaa2_0fo6td2j_1_1
--可以发现备份文件10313728也是变小的。
4.删除表T,看看。
drop table t;
RMAN> backup datafile 11 format '/data/testtest/aaa3_%U';
SQL> host ls -l /data/testtest/aaa*
-rw-r----- 1 oracle11g oinstall 14098432 Apr 12 15:26 /data/testtest/aaa1_0eo6tcq2_1_1
-rw-r----- 1 oracle11g oinstall 10313728 Apr 12 15:31 /data/testtest/aaa2_0fo6td2j_1_1
-rw-r----- 1 oracle11g oinstall 10313728 Apr 12 15:33 /data/testtest/aaa3_0go6td63_1_1
--可以发现备份并没有变化。主要是空间没有释放。
5.释放空间看看:
purge recyclebin;
RMAN> backup datafile 11 format '/data/testtest/aaa4_%U';
SQL> host ls -l /data/testtest/aaa*
-rw-r----- 1 oracle11g oinstall 14098432 Apr 12 15:26 /data/testtest/aaa1_0eo6tcq2_1_1
-rw-r----- 1 oracle11g oinstall 10313728 Apr 12 15:31 /data/testtest/aaa2_0fo6td2j_1_1
-rw-r----- 1 oracle11g oinstall 10313728 Apr 12 15:33 /data/testtest/aaa3_0go6td63_1_1
-rw-r----- 1 oracle11g oinstall 1089536 Apr 12 15:35 /data/testtest/aaa4_0io6td9h_1_1
--可以发现备份文件变小了。
6.从以上的测试可以看出,rman备份仅仅占用信息的数据块(从视图dba_extents)。而非格式化的块。