自從Oracle 10g推出Rman備份機制以來,其中的一個重要特性「空塊不作備份」一直都深受DBA和廣大客戶的喜愛,節約空間以及提高備份效率等等,我也是如此喜歡,但是最近在一個專案上測試EMC備份軟體備份時候,發現了一個怪事,具體如下描述:

 

1)資料庫DB1通過EMC備份軟體(備份方式為STB_TAPE)備出來大小為:780G。
期間嘗試修改過3次參數,包括增量備份level=0,普通全備,filesperset參數取消,備份出來的大小均為780G不變。
2)資料庫DB1通過Rman備份到本地硬碟(備份方式為DISK)大小為340G。

 

經過1和2的測試對比發現了明顯的異常,通過協力廠商軟體備份多出來了440G大小,隨即進行跟蹤分析,結果根據和之前做的清理400多G的資料進行聯繫,當時只是對資料做delete操作,但是並未做move以及空間回收操作,初步判斷此次操作和EMC備份異常有關,在資料清理之前資料庫的實際大小為700多G,根據Delete的特性可以判斷這刪掉的400多G的資料原先佔有的資料塊為空塊,但是處於高水位線之下,屬於曾經被使用過的塊而且當前處於「不可用」狀態,到此猜想,

 

是不是EMC備份把這些空塊也一起備份了?
如果備了,那麼為什麼rman空資料塊不被分的特性沒有發揮作用麼?

 

經過一番周折終於發現問題所在,這種現象發生在如下版本:



Oracle Server – Enterprise Edition – Version: 10.2.0.1 to 11.2.0.2 – Release: 10.2 to 11.2



而且對任何平臺都影響。
而且使用「Unused Block Compression」條件有如下限制:
1)備份組存放方式存放在本地硬碟上
2)為0級備份或者量備份或者全備方式中的備份組的一部分
3)資料檔案為本地管理方式
4)沒有定義還原點的資料庫
5)COMPATIBLE設置為10.2以上
6)資料庫版本高於(不等於)10.2.0.1

 

針對COMPATIBLE對「Unused Block Compression」影響官方文檔《Oracle Database Backup and Recovery Reference》解釋如下:



Oracle Database Backup and Recovery Reference
11g Release 2 (11.2)
Part Number E10643-04
.
Backup
backupTypeSpec

 

Note:
If COMPATIBLE is set to 10.2, then only tablespaces created with 10.2 compatibility will be optimized to exclude blocks that do not currently contain data. If COMPATIBLE is set to 11.0.0 or higher, however, then the first backup that produces backup sets after COMPATIBLE is set to 11.0.0 or higher will update the headers of all locally managed datafiles so that all locally managed datafiles can be optimized.



經過以上的解釋還不能解釋為什麼EMC備份會出現異常,
而ORACLE的一段關於OSB(Oracle Secure Backup)的描述,則解釋了為什麼EMC的備份軟體沒能使用到「Unused Block Compression」特性原因:



When backing up to a media manager that is not Oracle Secure Backup, RMAN copies all the blocks regardless of whether they contain data or not.



就是說再使用MML(Media Management Layer)連接協力廠商備份軟體的方式(包含我們熟悉的賽門鐵克的NBU,康孚,IBM的TSM等備份軟體)備份資料庫,在除了oracle原廠的備份軟體Oracle Secure Backup之外都不能夠使用到「Unused Block Compression」的特性,到此我們也終於明白為什麼EMC備份軟體備份出來的ORACLE資料為什麼和實際的資料量不一致。

 

如果不小心使用了原廠之外的協力廠商備份軟體,那麼只能尋求其他的解決方案。
解決方案:
1)對相關的datafile/tablespace進行空間回收工作
2)對delete頻繁的物件進行move操作
3)對DML操作頻繁的大索引定期進行rebuild操作
4)換OSB(Oracle Secure Backup)吧
5)用Rman的方式備到本地,再用files backup的方式備份到磁帶(棄用MML的SBT_TAPE備份方式),比如TSM
6)針對「Unused Block Compression」限制的條件進行設置處理
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()