關於8i, 9i, 10g RMAN備份資料檔案哪些資料塊的疑問
在10gR2中,rman最顯著的一個特徵就是對未分配的塊進行壓縮 (見下面資料) ,這裡的未分配的塊是否應該指資料檔案已經佔用,但是還沒有extents擴充套件的部分 ? 還包括已經擴充套件的extents中沒有被使用的塊 ?
根據上面的這句話,好像8i, 9i RMAN備份對未分配的資料塊也會進行備份 ? 但是在這裡 http://www.itpub.net/640419,2.html 查詢到biti 當初討論的一句話 “ rman 只是不備份重來沒有被格式化過的block ” , 那麼9i rman備份未分配的資料塊就不對了 ?
在Oracle8i, 9i 中,RMAN備份 (這裡假設為0級備份) 備份的DB檔案資料塊包含以下:
1. 目前有資料在其中的oracle block .
2. 原來有資料在其中,透過delete, move 或truncate 等運算元據已經不在其中的Oracle block (可能在hwm以上或以下) .
3. 資料檔案中還沒有分配Extents 的部分的資料塊 (一直就處於hwm之上的)
上面第3部分資料應該沒有被rman備份,不然rman備份集不可能小於備份的資料檔案總和的大小,也就是備份集和目標資料庫物理檔案大小一樣 。
資料:
------------------------------------
在10gR2中,rman最顯著的一個特徵就是對未分配的塊進行壓縮,但它必須滿足一些必要的條件,在滿足該條件下做了測試,效果非常理想,建立一個2g的資料檔案,備份集只增加了8m,而且資料檔案總的容量在2g,備份集才588m.
備份的指令碼:
rman>backup full database format = 'd:test.bak';
必須滿足的條件如下:
Unused Block Compression Of Datafile Backups to Backup Sets
When backing up datafiles into backup sets, RMAN does not back up the contents of data blocks that have never been allocated. (In previous releases, this behavior. was referred to as NULL compression.)
RMAN also skips other datafile blocks that do not currently contain data, if all of the following conditions apply:
■ The COMPATIBLE initialization parameter is set to 10.2
■ There are currently no guaranteed restore points defined for the database
■ The datafile is locally managed
■ The datafile is being backed up to a backup set as part of a full backup or a level 0 incremental backup
■ The backup set is being created on disk.
Skipping unused data blocks where possible enables RMAN to back up datafiles using less space, and can make I/O more efficient.
出處: http://xzh2000.itpub.net/post/96/64549
----------------------------------------
biti 的討論 http://www.itpub.net/640419,2.html
10g 的問題,需要 block change tracking支援
至於9i 的你說的hwm 的問題,因為在一個檔案中可能有很多 segment ,這些 segment 的 hwm 分散在檔案中,這個 hwm 不是針對 segment 來說的, 只要一個 block 曾經被分配給某個物件,則就需要備份。因為即使表truncate ,block中的資料並沒有被抹去,只是 hwm 被移動到靠近 segment header ,oracle 根本難以去識別 這些物件的 extent 到底是否資料已經失效。 rman 只是不備份重來沒有被格式化過的block ,也就是資料檔案中從來沒有被使用過的高 block 號部分。
根據上面的這句話,好像8i, 9i RMAN備份對未分配的資料塊也會進行備份 ? 但是在這裡 http://www.itpub.net/640419,2.html 查詢到biti 當初討論的一句話 “ rman 只是不備份重來沒有被格式化過的block ” , 那麼9i rman備份未分配的資料塊就不對了 ?
在Oracle8i, 9i 中,RMAN備份 (這裡假設為0級備份) 備份的DB檔案資料塊包含以下:
1. 目前有資料在其中的oracle block .
2. 原來有資料在其中,透過delete, move 或truncate 等運算元據已經不在其中的Oracle block (可能在hwm以上或以下) .
3. 資料檔案中還沒有分配Extents 的部分的資料塊 (一直就處於hwm之上的)
上面第3部分資料應該沒有被rman備份,不然rman備份集不可能小於備份的資料檔案總和的大小,也就是備份集和目標資料庫物理檔案大小一樣 。
資料:
------------------------------------
在10gR2中,rman最顯著的一個特徵就是對未分配的塊進行壓縮,但它必須滿足一些必要的條件,在滿足該條件下做了測試,效果非常理想,建立一個2g的資料檔案,備份集只增加了8m,而且資料檔案總的容量在2g,備份集才588m.
備份的指令碼:
rman>backup full database format = 'd:test.bak';
必須滿足的條件如下:
Unused Block Compression Of Datafile Backups to Backup Sets
When backing up datafiles into backup sets, RMAN does not back up the contents of data blocks that have never been allocated. (In previous releases, this behavior. was referred to as NULL compression.)
RMAN also skips other datafile blocks that do not currently contain data, if all of the following conditions apply:
■ The COMPATIBLE initialization parameter is set to 10.2
■ There are currently no guaranteed restore points defined for the database
■ The datafile is locally managed
■ The datafile is being backed up to a backup set as part of a full backup or a level 0 incremental backup
■ The backup set is being created on disk.
Skipping unused data blocks where possible enables RMAN to back up datafiles using less space, and can make I/O more efficient.
出處: http://xzh2000.itpub.net/post/96/64549
----------------------------------------
biti 的討論 http://www.itpub.net/640419,2.html
10g 的問題,需要 block change tracking支援
至於9i 的你說的hwm 的問題,因為在一個檔案中可能有很多 segment ,這些 segment 的 hwm 分散在檔案中,這個 hwm 不是針對 segment 來說的, 只要一個 block 曾經被分配給某個物件,則就需要備份。因為即使表truncate ,block中的資料並沒有被抹去,只是 hwm 被移動到靠近 segment header ,oracle 根本難以去識別 這些物件的 extent 到底是否資料已經失效。 rman 只是不備份重來沒有被格式化過的block ,也就是資料檔案中從來沒有被使用過的高 block 號部分。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-548891/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於9i RMAN 增量備份中的資料塊SCN比較
- RMAN說,我能備份(4)--RMAN備份資料檔案和控制檔案
- RMAN備份檔案遠大於資料庫大小的原因分析資料庫
- RMAN備份中不同版本是否備份空資料塊的問題
- RMAN備份資料檔案+控制檔案+歸檔日誌
- rman備份-(1) 利用備份級恢復資料檔案和控制檔案
- rman備份但丟失一個資料檔案,但有歸檔備份
- rman備份恢復-rman恢復資料檔案測試
- rman恢復資料庫--用備份的控制檔案資料庫
- 非歸檔資料庫RMAN備份資料庫
- [20161031]rman備份與資料檔案OS塊.txt
- Backup And Recovery User's Guide-備份資料庫-使用RMAN備份資料庫檔案GUIIDE資料庫
- 關於資料備份的概述
- RMAN關於物理檔案copy的增量備份
- RMAN 驗證 資料檔案 和 備份 的有效性
- Dedecms備份的資料檔案位置及備份資料庫的方法資料庫
- 【備份恢復】歸檔模式下丟失系統關鍵資料檔案 利用RMAN備份恢復模式
- RMAN備份恢復典型案例——資料檔案存在壞快
- 非系統資料檔案損壞,rman備份恢復
- 使用RMAN備份資料庫資料庫
- Backup And Recovery User's Guide-備份資料庫-使用RMAN備份表空間和資料檔案GUIIDE資料庫
- MySQL關於資料字典的一個疑問MySql
- 10g R2 rman backup database 控制檔案備份後於備份集備份Database
- rman恢復資料檔案-----塊折斷
- Oracle 之利用BBED修改資料塊SCN----沒有備份資料檔案的資料恢復Oracle資料恢復
- Backup And Recovery User's Guide-備份資料庫-使用RMAN備份控制檔案GUIIDE資料庫
- RMAN資料庫恢復 之歸檔模式有(無)備份-丟失資料檔案的恢復資料庫模式
- Backup And Recovery User's Guide-從RMAN開始-備份資料庫-備份處於歸檔模式的資料庫GUIIDE資料庫模式
- rman恢復--歸檔模式有備份,丟失資料檔案的恢復模式
- rman恢復--歸檔模式無備份,丟失資料檔案的恢復模式
- 清理RMAN備份資料中的過期資料
- 利用RMAN修復資料檔案中的壞塊
- 利用RMAN備份重建資料庫資料庫
- RMAN 只備份當前資料?
- 【備份恢復】無備份線上恢復非關鍵資料檔案
- Oracle RMAN 不完全恢復(只有資料檔案備份,丟失歸檔日誌備份)Oracle
- 雲備份和同步檔案資料
- 11g rman備份恢復資料檔案datafile到新的位置