達夢與Oracle邏輯備份與還原效能對比
本文對邏輯備份進行學習與測試,並選取個別場景對達夢與Oracle進行對比測試。
一、測試環境
(一)達夢
系統平臺 |
作業系統 |
配置 |
邏輯CPU個數 |
VMware |
REDHAT6.8 |
Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz MemTotal: 8061104kB |
4 |
資料庫 |
軟體資訊 |
達夢 |
DM 資料庫管理系統:DM Database Server x64 V7.1.5.158-Build ENT |
(二)Oracle
系統平臺 |
作業系統 |
配置 |
邏輯 |
VMware |
REDHAT6.8 |
Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz MemTotal: 8061104kB |
4 |
資料庫 |
軟體資訊 |
Oracle |
Oracle資料庫管理系統:Release 11.2.0.4.0 Production |
二、備份方式對比
邏輯/物理備份方式對比表 |
||
|
邏輯備份 |
物理備份 |
原理 |
邏輯匯出資料 |
物理塊拷貝 |
資料保護級別 |
只是備份時間點資料庫資料。 |
不只備份時間點資料庫資料,可以通過歸檔日誌進行任意時刻資料恢復(歸檔覆蓋時間範圍)。 |
故障恢復時間(同恢復粒度) |
相對較慢 |
相對較快 |
資料恢復粒度 |
表、使用者、模式、全庫 |
表、表空間、全庫 |
優勢 |
針對表、使用者、資料庫進行備份恢復,能夠跨平臺、跨版本進行資料恢復,無需開啟歸檔。 |
備份恢復範圍更廣、更為精確,可恢復到任意時間點資料(歸檔覆蓋範圍內)。資料庫遷移場景可極大縮減停機視窗。 |
劣勢 |
恢復時間較長且恢復資料時間點固定。資料庫遷移場景停機視窗較長。 |
操作相對複雜,前提需開啟歸檔模式。資料恢復粒度相對較粗。對源環境與目標環境匹配度要求較高。 |
三、邏輯備份與恢復
(一)邏輯備份
1、引數及注意事項
引數及預設值內容詳見官方手冊。在此只列出部分帶有預設值的引數作為強化記憶。並對注意事項進行備註說明。
引數 |
引數含義 |
預設值 |
FULL |
是否匯出整個資料庫 |
N |
FUZZY_MATCH |
TABLES選項是否支援模糊匹配 |
N |
CONSTRAINTS |
是否匯出約束 |
Y |
TABLESPACE |
匯出的物件定義是否包含表空間 |
N |
GRANTS |
是否匯出許可權 |
Y |
INDEXES |
是否匯出索引 |
Y |
TRIGGERS |
是否匯出觸發器 |
Y |
ROWS |
是否匯出資料行 |
Y |
NOLOGFILE |
不使用日誌檔案 |
N |
NOLOG |
螢幕上不顯示日誌資訊 |
N |
LOG_WRITE |
日誌資訊實時寫入檔案 |
N |
COMPRESS |
是否壓縮匯出資料檔案 |
N |
ENCRYPT |
匯出資料是否加密 |
N |
DROP |
匯出後刪除原表,但不級聯刪除 |
N |
LOCAL |
MPP環境使用MPP_LOCAL登入 |
N |
引數注意事項:
- TABLESPACE引數可解決資料恢復更換表空間的問題(可對比Oracle的REMAP_TABLESPACE引數),在做資料備份時需要提前為資料恢復做考慮。
- COMPRESS引數可對備份資料進行壓縮以節省備份空間,但要注意開啟壓縮後,無論資料備份還是資料恢復速度都會變慢。
- PWD密碼中帶有特殊字元(/,@.:等),需要外加三層雙引號("""""")進行轉義。
- FILE和LOG中指定的路徑,優先順序高於DIRECTORY中指定的路徑。如果都沒有指定路徑,則使用系統當前路徑。
- 物件(CONSTRAINTS、GRANTS、INDEXES、TRIGGERS、ROWS)分別單獨設定,和EXCLUDE/INCLUDE中批量設定功能一樣。如果單獨設定和批量同時出現時,以最後出現的為準。
- 對於匯出單個檔案過大的情況,可使用FILESIZE限制單個檔案上限,同時配合FILE引數中的%u來自動擴充套件檔名,配合FILENUM控制檔案個數。
- 對於命令過於複雜,長度過長的可使用PARFILE進行命令封裝。
2、備份測試
2.1、測試案例1-匯出schemas
- 構造測試用例:
- 備份schemas
dxep xxx/[email protected]:5236 directory=/dmdata file=exp.test1.dmp log=exp.test1.log schemas=test1
2.2、測試用例2-匯出tables,並使用query過濾age小於20的記錄
- 備份tables:
dexp xxx/xxx@10.100.x.x:5236 directory=/dmdata file=exp.test1_1.dmp log=exp.test1_1.log tables=test1.test query=" WHERE AGE<20"
2.3、測試用例3-匯出tables,並指定定義表空間為test1data(後續恢復時驗證)
- 備份tables:
dexp xxx/xxx@10.100.x.x:5236 directory=/dmdata file=exp.test1_2.log tables=test1.test tablespace=Y
(二)邏輯恢復
1、引數及注意事項
引數及預設值內容詳見官方手冊。在此只列出部分帶有預設值的引數作為強化記憶。並對注意事項進行備註說明。
引數 |
引數含義 |
預設值 |
FULL |
是否匯入整個資料庫 |
N |
IGNORE |
忽略建立錯誤 |
N |
FAST_LOAD |
是否使用dmfldr進行資料匯入 |
N |
GRANTS |
是否匯入許可權 |
Y |
CONSTRAINTS |
是否匯入約束 |
Y |
INDEXES |
是否匯入索引 |
Y |
TRIGGERS |
是否匯入觸發器 |
Y |
ROWS |
是否匯入資料行 |
Y |
NOLOGFILE |
不使用日誌檔案 |
N |
NOLOG |
螢幕上不顯示日誌資訊 |
N |
LOG_WRITE |
日誌資訊實時寫入檔案 |
N |
COMPILE |
編譯過程、程式包和函式 |
Y |
INDEXFIRST |
匯入時先建立索引 |
N |
TABLE_FIRST |
是否強制匯入表 |
N |
LOCAL |
MPP環境使用MPP_LOCAL登入 |
N |
引數注意事項:
- 一般情況下,OWNER和SCHEMAS匯入匯出是相同的,但是使用者可以包含多個模式,在這種情況下SCHEMAS的匯入匯出是OWNER匯入匯出的一個子集。
- 當FAST_LOAE=Y是才可以設定TABLE_PARALLEL引數,否則引數無效。
2、恢復測試
2.1、恢復用例1-將測試用例1恢復至test2模式下
- 資料恢復:
dimp xxx/xxx@10.100.x.x:5236 directory=/dmdata file=exp.test1.dmp log=imp_test1.log remap_schema=TEST1:TEST2
檢視test所屬表空間:可以看到由於備份時未指定tablespace選項,匯出test表定義時未包含表空間,直接恢復到test2的預設表空間test2data中。
2.2、恢復用例2-將測試用例2恢復到test2模式下
- 資料恢復:
dimp xxx/xxx@10.100.x.x:5236 directory=/dmdata file=exp.test1_1.dmp log=imp.test1_1.log remap_schema=TEST1:TEST2
查看錶資料:可以看到確為age小於20的2條記錄。
2.3、恢復用例3-將測試用例3恢復到test2模式下
- 資料恢復:
dimp xxx/xxx@10.100.x.x:5236 directory=dmdata file=exp.test1_2.dmp log=imp.test1_2.log remap_schema=TEST1:TEST2
檢視test所屬表空間:可以看到由於備份時指定tablespace選項為Y,匯出test表定義時包含表空間test1data,恢復時就直接恢復到test1data表空間中。
(三)Oracle和達夢資料庫邏輯備份對比
將Oracle資料庫TEST使用者TEST01表遷移至達夢資料庫,都執行邏輯備份,對比時間和資料量。
Oracle |
達夢 |
|
匯出資料量(不壓縮) |
7G |
8.5G |
匯出用時(不壓縮) |
4分18秒 |
7分23秒 |
匯出資料量(壓縮) |
1.4G |
1.4G |
匯出用時(壓縮) |
5分5秒 |
10分17秒 |
1、Oracle邏輯備份
- 匯出表資訊
- 匯出測試1:不壓縮,匯出大小為7G,用時4分18秒。
- 匯出測試2:壓縮,匯出大小為1.4G,用時5分5秒。
2、達夢邏輯備份
- 匯出表資訊
- 匯出測試1:不壓縮,匯出大小為8.5G,用時7分23秒。
- 匯出測試2:壓縮,匯出大小為1.4G,用時10分17秒。
(四)Oracle和達夢資料庫邏輯恢復對比
匯入物件為上一小節中匯出的TEST使用者TEST01表。
Oracle |
達夢 |
|
恢復用時(不壓縮) |
3分55秒 |
11分11秒 |
恢復用時(壓縮) |
6分16秒 |
11分10秒 |
1、Oracle邏輯恢復
- 匯入測試1:不壓縮,用時3分55秒。
- 匯入測試2:壓縮,用時6分16秒。
2、達夢邏輯恢復
- 匯入測試1:不壓縮,用時11分11秒。
- 匯入測試2:壓縮,用時11分10秒。
作者:花果山有猴子
出處:https://www.cnblogs.com/huzei/
本部落格所有文章僅用於學習、研究和交流目的,歡迎非商業性質轉載。
由於博主的水平有限,不足和錯誤之處在所難免,希望大家能夠批評指出。