[20130412]rman備份檔案大小.txt

lfree發表於2013-04-12
[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)。而非格式化的塊。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-758376/,如需轉載,請註明出處,否則將追究法律責任。

相關文章