對於rman的備份是基於資料塊的備份,資料塊備份的工作原理是:rman基於備份演算法規則來編譯要備份的檔案列表。基於通道數和同時備份的檔案數,rman在oracle共享記憶體段中建立一些記憶體緩衝區。一般是在pga內,不過有時記憶體緩衝區會被推入sga.通道伺服器程序隨後開始讀取資料檔案,並在rman緩衝區中填充這些資料塊。乙個緩衝區被填滿時,輸入緩衝區中的資料塊會被推入輸出緩衝區。資料檔案中的每個資料塊都會發生這種記憶體對記憶體的寫操作(memory-to-memory write),則該資料塊會保留在輸出緩衝區直至緩衝區被填滿。一旦輸出緩衝區被填滿,輸出緩衝區中的內容就會被推至備份位置(磁碟或磁帶)
一旦所有檔案已通過記憶體緩衝區過濾,就完成了備份片,同時rman會在目標資料庫控制檔案中寫入備份片的完成時間和備份片的名稱。
塊備份優點:
每個資料塊從磁碟讀入記憶體時都會發生記憶體到記憶體的寫操作,在這個操作期間會檢查資料塊的損壞。
空塊壓縮:
rman訪問資料塊時可以選擇空塊壓縮(null block compression),刪除從來沒有使用過的資料塊(header is 0),並在執行記憶體對記憶體的寫操作是丟棄這些資料塊。因此,我們只需要備份使用過的資料塊。
未使用的塊壓縮:
未初始化的塊不會備份,在10.2.0.3版本後,即使是使用過的塊,如果是空塊,也不會被備份。
未使用的塊壓縮可以自動使用,但需要滿足以下條件:
RMAN備份 資料庫備份
備份片檔名萬用字元 c 備份片的拷貝數 d 位於該月中的第幾天 dd m 位於該年中的第幾月 mm f 乙個基於dbid 唯一的名稱,這個格式的形式為c iiiiiiiiii yyyymmdd qq,d 資料庫名稱其中iiiiiiiiii 為該資料庫的dbid,yyyymmdd 為日期,qq 是乙個...
RMAN 資料庫備份之常用備份命令
備份命令大彙總 資料庫mount狀態下非歸檔 全庫備份 backup database 資料庫0級 backup incremental level 0 database 資料庫1級差異增量備份 預設差異 backup incremental level 1 database 資料庫1級累積增量備份...
python備份資料庫之壓縮篇
前面介紹了乙個簡單的指令碼,用python來給mysql資料庫做資料備份,但是只是給資料庫做了個簡單的備份,我這裡準備再給他加點簡單的功能,給備份壓縮下,稍微和之前有點不同,來看下,中間又詳細的注釋,很容易理解 1 coding utf 8 2 usr bin env python3 4 impor...