簡介: 擁有一份最新的一致備份,以便加快數(shù)據(jù)庫恢復速度,這非常重要。IBM? DB2? Merge Backup for Linux?, UNIX? and Windows? 為您提供了備用戰(zhàn)略來消除執(zhí)行定期 DB2 完全備份的需要,并使用多個 delta 備份和增量備份來構(gòu)建一個能被 DB2 完全識別的新的完全備份副本。這篇文章介紹了 IBM DB2 Merge Backup,指導您使用 IBM DB2 Merge Backup 中的控制文件結(jié)構(gòu)創(chuàng)建合并備份 (merge backup)。
本文提供一個分步指南,向您展示如何使用 IBM DB2 Merge Backup for LUW 來利用 DB2 Merge Backup 中的控制文件結(jié)構(gòu)創(chuàng)建一個完整的合并備份。在本文中,您將學習如何創(chuàng)建完全備份和 delta 備份,以及如何使用控制文件將 delta 備份和完全備份合并在一起,創(chuàng)建一個新的完整合并備份。
按照本文中的步驟,您將:
1、創(chuàng)建數(shù)據(jù)庫的完全備份,將此備份用作基準備份。
2、在數(shù)據(jù)庫中模擬某種活動。
3、創(chuàng)建一個 delta 備份來捕獲自完成定期完全備份以來執(zhí)行的更改。
4、創(chuàng)建一個新的合并備份,將 DB2 完全備份和 delta 備份相結(jié)合,分析如何在 DB2 歷史文件中注冊這個新備份。
5、使用 db2ckbkp 實用程序進行驗證,Merge Backup 創(chuàng)建的備份是否擁有在還原數(shù)據(jù)庫時需要使用的完整性。
本中使用的示例僅用于演示,可能不是最佳實踐。
本文將 IBM DB2 Merge Backup for Linux, UNIX, and Windows 產(chǎn)品稱為 DB2 Merge Backup、Merge Backup 實用程序或者簡稱為 Merge Backup。本文是為擁有初級到中級技能和經(jīng)驗的 DB2 for Linux, UNIX, or Windows 數(shù)據(jù)庫管理員而編寫。您應對數(shù)據(jù)庫管理及備份和恢復原理具有一定的了解,無需擁有特定于 IBM DB2 的技能。
系統(tǒng)要求
要執(zhí)行本文中的示例和最充分地理解本文,建議安裝以下軟件:
1、IBM DB2 Merge Backup for Linux, UNIX and Windows version 1.1.1.1
2、DB2 10.1 或以前的 DB2 for Linux, UNIX, and Windows 版本
請參閱 參考資料 部分,了解軟件相關(guān)的下載信息。
在本文的所有示例中,我們將使用一個名為 GSDB 的示例數(shù)據(jù)庫,它包含一家名為 Great Outdoors 公司的虛構(gòu)的戶外設備銷售商的示例數(shù)據(jù)。在繼續(xù)閱讀本文之前,請創(chuàng)建 GSDB 數(shù)據(jù)庫(請參閱 參考資料,了解相關(guān)的下載信息)。如果希望使用您自己的現(xiàn)有數(shù)據(jù)庫,請記住,在引用本文中的示例時,使用您的數(shù)據(jù)庫名稱代替 GSDB。
要成功地完成增量備份或 delta 備份,數(shù)據(jù)庫必須處于歸檔日志模式,這意味著必須將 TRACKMOD 數(shù)據(jù)庫參數(shù)設置為 YES。請參閱 參考資料,獲取將 TRACKMOD 參數(shù)設置為 YES 的幫助。
在您的機器上創(chuàng)建一個目錄,將它作為保存?zhèn)浞莸奈恢谩1疚氖褂?/home/db2inst1/Desktop/BACKUPS 目錄作為將保存?zhèn)浞莸奈恢?。確保用于完成本文中的示例的目錄是真實存在的。
BM DB2 Merge Backup for LUW 概述
您的數(shù)據(jù)庫關(guān)閉(無論是計劃的還是未計劃的)的每時每刻都可能意味著生產(chǎn)力損失、數(shù)據(jù)丟失或收入損失,這對一家公司具有非常大的損害。DB2 Advanced Recovery Solutions 為幫助您節(jié)省金錢、時間和縮短數(shù)據(jù)庫宕機時間進行了精心準備。DB2 Merge Backup 是 DB2 Advanced Recovery Solutions 中的一個工具,可幫助您縮短備份時間和加快恢復速度。
DB2 Merge Backup 是一個命令行實用程序工具,允許您將完整 DB2 備份與增量或 delta 備份相結(jié)合,構(gòu)建一個可用于還原數(shù)據(jù)庫或各個表空間的新的完整合并備份。合并備份包含與使用 DB2 for LUW 創(chuàng)建的完全備份相同的信息。
您可能已知道,數(shù)據(jù)庫中的數(shù)據(jù)正在快速增長,這使得頻繁的完全備份變得越來越耗時。但是,如果不經(jīng)常備份數(shù)據(jù),則會帶來代價高昂的風險。事實證明,此項選擇的代價是如此之高,甚至有可能導致數(shù)據(jù)永遠無法恢復。使用 DB2 Merge Backup,您可以創(chuàng)建可用來創(chuàng)建完全備份的 delta 備份或增量備份,無需總是創(chuàng)建定期完全備份。您首先需要創(chuàng)建一個完整的定期備份,然后將所有 delta 備份或增量備份合并在一起,創(chuàng)建一個新的完整的合并備份。這也就是說,您只需創(chuàng)建一個完整的定期備份一次,在這之后,所有合并都將從使用 DB2 Merge Backup 創(chuàng)建的完整合并備份開始。
圖 1 表明,Merge Backup 從歷史文件中獲取有關(guān)最新的完全備份以及增量和 delta 備份的信息,將它們合并到一個新的完整合并備份中。然后,這個新的完整合并備份可由 db2ckbkp 和 restore 實用程序像常規(guī) DB2 完全備份一樣處理。新的合并備份也可用于未來的后續(xù)合并,以及增量或 delta 備份,這消除了定期執(zhí)行 DB2 完全備份的需求。
圖 1. Merge Backup 概述圖
DB2 備份類型
上一節(jié) 中已經(jīng)提到,使用 DB2 Merge Backup 創(chuàng)建的數(shù)據(jù)庫備份擁有與 DB2 創(chuàng)建的定期完全備份相同的信息,可用該備份代替最后一個源備份來執(zhí)行還原。這意味著,Merge Backup 可以使用 DB2 支持的所有類型的備份來創(chuàng)建一個新的合并備份,這個合并備份最終可用于還原您的數(shù)據(jù)庫?,F(xiàn)在,讓我們來看一下 DB2 和 DB2 Merge Backup 支持的 4 種不同的備份類型:完全備份映像、增量備份、delta 備份和日志。
完全備份映像:這是任何恢復戰(zhàn)略的基礎(chǔ)。沒有完整的備份映像,就無法執(zhí)行任何恢復。所以您始終需要一個完全備份,以此作為基準。如果備份是在線創(chuàng)建的,那么您需要獲得在創(chuàng)建備份期間執(zhí)行的所有事務的日志。還原一個完全備份,重放自創(chuàng)建該備份以后的所有事務的日志,您的恢復就完成了。
增量備份:這包括自上一次完全備份以來執(zhí)行的所有更改。您需要還原一個完全備份,還原增量備份,重放自該增量備份以來的日志,這樣您的恢復就完成了。圖 2 顯示了增量備份。
圖 2. 增量備份
Delta 備份:這包括自上一次任何類型的備份(完整、增量或 delta 備份)以來執(zhí)行的所有更改。如果上一次備份是一次完全備份,那么該備份和 delta 備份將提供最完整的備份。如果在創(chuàng)建增量備份映像后創(chuàng)建了 delta 備份,則需要獲得此 delta 備份、增量備份和增量備份所基于的完整的備份映像。如果 delta 之前是一個或多個 delta,那么您需要獲得一個增量備份或完全備份映像的所有 delta。圖 3 顯示了增量備份。
圖 3. 增量 delta 備份
日志文件:日志包含自上一次備份以來您能夠還原的所有事務。
控制文件
控制文件是一個簡單的 ASCII 文件,其中包含一個完整的 DB2 Merge Backup 選項列表。有了這些選項,您在數(shù)據(jù)上就擁有非常高的靈活性和強大的控制力。建議在希望完成比較復雜的任務時使用控制文件,但這并不意味著無法將它們用于簡單任務。您也可以跨數(shù)據(jù)庫重用控制文件,使用命令行修改它們的內(nèi)容。例如,如果希望在多個數(shù)據(jù)庫上處理同一個任務,那么您可以在調(diào)用控制文件時使用 –d database_name 選項修改在文件中指定的數(shù)據(jù)庫名稱。
每個控制文件僅需一個 MERGE 子句。MERGE 子句用于指定合并備份的范圍。對于本文中的示例,該范圍將是 GSDB 數(shù)據(jù)庫。一個控制文件中可以擁有多個 MERGE 子句,它們使用分號分隔。在本文使用的示例中,控制文件將包含一個 OUTPUT 子句,該子句允許您指定將合并備份文件存儲到哪個位置。
可以從命令行窗口使用以下語法指定使用控制文件:db2mbk -f control_file_name,其中 control_file_name 是控制文件的名稱。在 合并備份 一節(jié)中,您將學習如何創(chuàng)建和運行控制文件來創(chuàng)建一個合并備份。
創(chuàng)建作為基準的完整數(shù)據(jù)庫備份
首先,您需要創(chuàng)建數(shù)據(jù)庫 GSDB 的一個完全備份,并使用這個完全備份作為基準。請記住,IBM Merge Backup 需要使用一個完全備份作為來源,然后才能創(chuàng)建一個合并備份作為起點。創(chuàng)建 DB2 完全備份后,無需再次創(chuàng)建另一個完全備份。
如果尚未啟動 DB2,請打開 DB2 命令提示符并啟動它。要啟動 DB2,可以發(fā)出以下命令:
db2start |
運行 DB2 TERMINATE 命令來斷開已存在的任何數(shù)據(jù)庫連接。
db2 terminate |
最后,執(zhí)行 BACKUP 命令來創(chuàng)建您的 GSDB 數(shù)據(jù)庫備份。
db2 backup db gsdb to /home/db2inst1/Desktop/MBK/BACKUPS compress without prompting |
請記住,使用您希望用來存儲備份的機器上的某個現(xiàn)有目錄。
在完成備份操作時,終端將顯式創(chuàng)建備份映像時的時間戳。記下該時間戳,因為本文后面會引用它。圖 4 顯示了輸出。
圖 4. 創(chuàng)建 DB2 完全備份終端輸出
通過檢查您指定用來保存?zhèn)浞莸哪夸浳恢?,可以檢查完全備份是否已創(chuàng)建。在創(chuàng)建備份時,應該看到創(chuàng)建了一個新文件,可在輸出中看到它的時間戳是文件名的一部分。
圖 5. 查看備份的文件瀏覽器
如果備份沒有成功完成,可檢查您輸入的命令信息是否正確。
請注意,您提供了最初的完全備份作為基準,現(xiàn)在您可以開始使用 DB2 支持的任何其他類型的備份(包括使用 DB2 Merge Backup 創(chuàng)建的合并備份)來創(chuàng)建合并備份。
模擬對數(shù)據(jù)庫的更改
要捕獲自初始備份以來對數(shù)據(jù)庫執(zhí)行的所有更改,需要模擬對數(shù)據(jù)庫的一些更改。本節(jié)將介紹為 GSDB 數(shù)據(jù)庫創(chuàng)建一些更改的過程。
如果未使用建議的示例數(shù)據(jù)庫 GSDB,則需要模擬對您用于本文的數(shù)據(jù)庫的一些更改??梢阅M一些簡單更改,比如向一個表中添加一個新條目,創(chuàng)建一個新表或更新一個條目,這樣就可以捕獲自完全備份以來執(zhí)行的一些更改。
以下查詢會將 GSDB 數(shù)據(jù)庫的 GOSALESCT 模式的 CUSTOMER_ORDER_DETAIL 表的客戶數(shù)量增加 1。
在 DB2 命令提示符下,創(chuàng)建與 GSDB 數(shù)據(jù)庫的連接。要連接到 GSDB 數(shù)據(jù)庫,請輸入以下命令:
db2 connect to GSDB |
接下來,必須使用以下查詢將客戶數(shù)量增加 1:
db2 update gosalesct.cust_order_detail set cust_quantity = cust_quantity + 1; |
將您的更改提交給數(shù)據(jù)庫。
db2 commit |
終止您創(chuàng)建的與 GSDB 的數(shù)據(jù)庫連接。
db2 terminate |
圖 6 顯示了這個過程。
圖 6. 對數(shù)據(jù)庫執(zhí)行更改
現(xiàn)在,delta 備份已捕獲了對 GSDB 數(shù)據(jù)庫執(zhí)行的所有更改。
創(chuàng)建 delta 備份
現(xiàn)在已經(jīng)可以創(chuàng)建 delta 備份,以便在下一節(jié)中使用它來創(chuàng)建合并備份。此備份僅捕獲自上一次完全備份以來對數(shù)據(jù)庫執(zhí)行的更改。
仍然在 DB2 命令提示符下,鍵入以下信息:
<!DOCTYPE HTML> |
該命令應寫出到一行上。
等待命令完成執(zhí)行;您會在終端看到一條成功消息。終端輸出還會顯示一個時間戳,您需要記下該時間戳。圖 7 顯示了 delta 備份輸出。
圖 7. Delta 備份輸出
如果沒有成功完成該命令,請確保您鍵入了正確的信息。
我們假設完全備份和 delta 備份都已實際創(chuàng)建。
使用一個文件瀏覽器窗口,導航到您指定用來保存?zhèn)浞莸奈恢?。在本例中,該目錄?/home/db2inst1/Desktop/MBK/BACKUPS。
現(xiàn)在有兩個文件:一個完全備份和一個 delta 備份。圖 8 顯示了包含兩個備份的文件瀏覽器窗口。
圖 8. 用于檢查備份的文件瀏覽器
請注意,您的備份的文件名看起來有些類似;這不是巧合。DB2 備份文件名由一些串聯(lián)的元素組成,這些元素使用句點分開。一般規(guī)則是:
DB_alias.Type.Inst_name.DBPARTnnn.timestamp.Seq_num |
其中
1、DB_alias 是數(shù)據(jù)庫別名,在本例中用 GSDB 顯示。
2、Type 指操作的類型。在這里它顯示為 0,這表明這是一個數(shù)據(jù)庫級操作。
3、Inst_name 是數(shù)據(jù)庫實例的名稱。在本例中,DB2 實例名為 db2inst1。
4、DBPARTnnn 表示數(shù)據(jù)庫分區(qū)編號。因為在示例環(huán)境中 GSDB 數(shù)據(jù)庫只有一個分區(qū),所以結(jié)果顯示為 DBPART000。
5、timestamp 也是文件名的一部分。您看到的每個時間戳都與一個文件匹配,最新的日期屬于 delta 備份。
6、Seq_num 是為該文件提供的一個序列號。此示例表明,兩個文件都具有序列號 001。
您還可以明顯地看出這兩個文件的大小差異,完全備份文件是兩個中較大的那個。
創(chuàng)建一個完整合并備份
本文的目的是展示如何通過創(chuàng)建控制文件來創(chuàng)建一個合并備份。下一節(jié)將介紹如何創(chuàng)建一個控制文件,將完全備份與 delta 備份合并在一起。盡管無需使用控制文件即可創(chuàng)建合并備份,但建議對較為復雜的任務使用控制文件。
1、要創(chuàng)建控制文件,可打開一個新的空白文本文檔,將它保存為 merge.ctl。以下是完成的控制文件。
MERGE database gsdb OUTPUT to “/home/db2inst1/Desktop/MBK/BACKUPS” compress yes |
這個文件將要執(zhí)行的操作是創(chuàng)建一個新的合并文件,其中包含自 GSDB 數(shù)據(jù)庫的上一次完整合并備份或初始定期完全備份以來創(chuàng)建的所有 delta 或增量備份。
2、以下是創(chuàng)建控制文件的內(nèi)容的各個步驟。
首先從 MERGE 子句開始。在您新創(chuàng)建的控制文件中,鍵入以下內(nèi)容:
MERGE database gsdb |
接下來,在您的控制文件中,您可能希望提供一個位置來保存將要創(chuàng)建的新合并備份。這可以使用 OUTPUT 子句完成。在您的控制文件中,在一個新行上為 OUTPUT 子句編寫以下代碼:
OUTPUT to “/home/db2inst1/Desktop/MBK/BACKUPS” |
在一個新行上,編寫代碼來壓縮合并備份。在控制文件中,鍵入以下內(nèi)容:
compress yes |
這使用默認的 DB2 壓縮庫來減少備份的大小。
3、保存您對控制文件執(zhí)行的所有更改并關(guān)閉它。
4、從 DB2 命令行更改保存控制文件的目錄。
5、在 DB2 命令窗口中鍵入以下命令來執(zhí)行控制文件:
<!DOCTYPE HTML> |
等待合并完成。您將在終端看到合并的輸出信息。我們看到輸出中提供了您剛完成的合并的信息。圖 9 顯示了輸出。
圖 9. 合并備份輸出
控制文件的內(nèi)容顯示在輸出頂部。顯示了合并的開始和結(jié)束時間,以及合并過程的持續(xù)時間。您還會看到合并中涉及的備份信息(它們按時間戳順序列出)。要準確找出涉及到哪些備份,請查閱您在創(chuàng)建備份時記下的時間戳。記下合并備份的時間戳,因為在下一節(jié)中調(diào)用 db2ckbkp 實用程序時會用到該值。
回顧歷史
DB2 Merge Backup 使用歷史文件來確定備份列表。您可以使用 db2 list history 命令確定如何向歷史文件注冊合并備份。
在命令提示符下輸入以下命令來檢索數(shù)據(jù)庫備份歷史:
db2 list history backup all for GSDB |
系統(tǒng)會列出關(guān)于您創(chuàng)建的 3 個備份的信息。例如,圖 10(查看 大圖)顯示了來自 list history 命令的輸出的結(jié)尾部分;詳細信息是屬于合并備份的。您可能想知道如何確定圖 10 中的信息屬于合并備份。答案是,它在表的操作類型 (OP) 列中使用 M 表示。您還可以匹配時間戳。
圖 10. 合并備份的歷史細節(jié)
使用 list history 命令后,列出了大量與您的備份相關(guān)的信息。在輸出中可以找到有關(guān)某個備份的詳細信息(比如操作類型、備份類型、備份的時間戳和備份的位置)。
表 1 總結(jié)了您可在恢復歷史文件過程中找到的操作和操作類型的不同值。
類型
|
描述
|
F
|
完全離線
|
M
|
合并
|
B
|
備份
|
N
|
在線
|
I
|
增量離線
|
O
|
增量在線
|
D
|
Delta 離線
|
E
|
Delta 離線
|
R
|
重新構(gòu)建
|
表 1. 操作類型
使用 db2ckbkp 命令驗證備份
使用 DB2 檢查備份實用程序(使用 db2ckbkp 命令調(diào)用),您可測試備份映像的完整性,以確定是否可還原該映像。
我們驗證一下剛創(chuàng)建的合并備份的完整性。
1、在 DB2 中斷中或從一個文件瀏覽器將目錄更改為您保存?zhèn)浞莸奈恢谩?
2、您需要知道完整的合并備份文件名,然后才能使用 db2ckbkp 命令。從命令提示符執(zhí)行備份映像文件的列出命令,或者使用一個文件瀏覽器獲取您創(chuàng)建的備份的文件名。使用您在創(chuàng)建備份時記下的時間戳信息來查找合并備份。合并備份是具有最新的時間戳的文件。在本例中,合并備份的文件名為 GSDB.0.db2inst1.DBPART000.20130304125847.001。圖 11 顯示了這些文件。
圖 11. 列出備份以獲取合并文件名
您現(xiàn)在已經(jīng)可以調(diào)用 db2ckbkp 命令。
3、從命令提示符,鍵入以下命令:
db2ckbkp -h GSDB.0.db2inst1.DBPART000.20130304125847.001 |
請記得使用自己的備份文件名。
4、等待驗證過程完成;在看到處理命令后,在輸出的底部顯示了井號標記 (#)。
5、在運行完該命令后,您將在輸出的末尾看到驗證的結(jié)果(圖 12)。
圖 12. db2ckbkp 輸出
看看輸出中還顯示了哪些與備份相關(guān)的信息。
請注意,在輸出中,可確定映像類型為合并備份,因為 Merge Backup Image 中顯示了 1。如果這是一個傳統(tǒng)備份,您將看到 0。
圖 13. db2ckbkp 輸出細節(jié)
結(jié)束語
本文介紹了如何使用 DB2 Merge Backup 實用程序?qū)⒍鄠€備份組合到一個完整備份中。您還學習了如何使用 db2ckbkp 實用程序驗證此備份可很好地用于還原。
您可看到在真實環(huán)境中使用 DB2 Merge Backup 的價值,因為它使您能夠擁有用于恢復的最新的一致備份。該工具的價值在于,它雖然沒有節(jié)省創(chuàng)建實際備份的時間,而它能夠提供一個可更頻繁地執(zhí)行的備份,使您能夠以更快的速度執(zhí)行恢復。同樣地,您并不需要真正再次創(chuàng)建完全備份,因為這些 DB2 Merge Backup 是真正的 DB2 完全備份副本,它們已在 DB2 歷史文件中注冊,并且獲得了與其他任何 DB2 備份文件相同的待遇。在生產(chǎn)環(huán)境中使用 DB2 Merge Backup 有助于減少宕機成本和 DBA 勞動,實施對生產(chǎn)影響最小但提供了必要的恢復資產(chǎn)的備份戰(zhàn)略。
深圳塔塔咨詢服務有限公司(簡稱塔塔IT)專注于IT前沿技術(shù)的傳播與應用。公司與微軟、Cisco、Oracle、IBM、Vmware、Citrix、EMC、HP、SAP等全球著名IT廠商建立長期合作伙伴關(guān)系,提供思科CCNA\CCNP\CCIE培訓,微軟MCSE\MCITP培訓,Office培訓,Oracle培訓,JAVA培訓,ITIL培訓,PMP培訓、CompTIA培訓等多種IT認證培訓以及IT服務、企業(yè)內(nèi)訓業(yè)務,是一家以IT高端培訓、咨詢服務、技術(shù)支持以及國際IT認證考試為核心業(yè)務的專業(yè)服務商。聯(lián)系方式:深圳 0755-29152000
Copyright? 2012-2013 TATAIT.COM All Rights Reserved 深圳塔塔咨詢服務有限公司 版權(quán)所有 深圳網(wǎng)站建設:沙漠風
塔塔IT—高端IT培訓領(lǐng)導品牌,專注于IT前沿技術(shù)的傳播與應用。專業(yè)創(chuàng)造價值,服務贏得口碑!