DB2 back 存檔使用與正確維護
以下的文章主要向大家描述的是DB2 back 存檔使用與正確維護,在實際操作中我們是否希望以更好的方法管理 IBM® DB2® for Linux® or AIX® 服務器上的診斷文件?如果是這樣,本文會對您有幫助。
這里提供一個腳本,它可以幫助您存檔和維護這些文件。通過壓縮和刪除舊的文件,可以進一步簡化管理過程。
簡介
隨著自治技術(shù)的應用日益增加,DB2 數(shù)據(jù)庫服務器可能會產(chǎn)生很大的消息日志文件、管理通知日志文件和事件日志文件。在具有許多邏輯和物理分區(qū)的大型數(shù)據(jù)倉庫環(huán)境中,這種情況尤其顯著。另外,在出現(xiàn)問題時,為了滿足首次故障數(shù)據(jù)捕捉的需要,DB2 往往會產(chǎn)生大量診斷數(shù)據(jù)。
日志記錄活動的增加還會增加占用的文件系統(tǒng)空間,導致可管理性問題。簡單地刪除日志文件是不可行的,因為 DB2 支持人員常常要求用戶提供歷史診斷數(shù)據(jù),尤其是在研究當前問題期間和遷移實例之后。
本文介紹一個新腳本,可以使用它對 DB2 實例的診斷日志和數(shù)據(jù)執(zhí)行維護任務。這個腳本稱為 db2dback.ksh,可以通過后面 下載 部分中的 zip 文件獲得它。這個腳本可以在單一分區(qū)和多分區(qū)環(huán)境中運行,它會考慮不同的用戶設(shè)置,不同的物理分區(qū)可以使用共享的或單獨的診斷數(shù)據(jù)路徑。
腳本概述
db2dback.ksh shell 腳本可以對來自 DB2 數(shù)據(jù)庫實例配置的診斷數(shù)據(jù)路徑 (DIAGPATH) 的診斷數(shù)據(jù)進行存檔。還可以對目標(存檔)目錄中已經(jīng)存檔的數(shù)據(jù)進行維護。
DB2 實例的所有者應該定期運行此腳本。可以手工運行此腳本,也可以通過調(diào)度工具(例如,cron 作業(yè))運行。
此腳本當前可以處理 AIX 和 Linux 操作系統(tǒng)上的 DB2 實例。在這兩種環(huán)境中,它可以處理單分區(qū)實例或用 Data Partitioning Feature (DPF) 創(chuàng)建的多分區(qū)實例,還包括 Balanced Warehouse 設(shè)置。在 DPF 環(huán)境中,此腳本支持不同的實例配置:
在所有分區(qū)之間共享單一 DIAGPATH
每個物理分區(qū)使用單獨的 DIAGPATH
注意:DIAGPATH 是一個 DB2 數(shù)據(jù)庫管理程序配置參數(shù)值。如果在實例配置中沒有設(shè)置這個參數(shù),那么使用 DB2 實例所有者的默認值 $HOME/sqllib/db2dump。關(guān)于數(shù)據(jù)庫管理程序配置參數(shù)的更多信息,請參見 DB2 Information Center。
安裝腳本
DB2 實例所有者可以按以下步驟安裝此腳本:
從下面的 下載 部分獲取 db2dback.zip 文件。
從 zip 文件中提取出 db2dback.ksh 腳本。
把 db2dback.ksh 復制到 DB2 數(shù)據(jù)庫實例的 sqllib/bin 目錄中。
必須有在 DPF 設(shè)置上遠程執(zhí)行腳本所需的執(zhí)行權(quán)限。
下面的命令示例設(shè)置正確的執(zhí)行權(quán)限:
- cp db2dback.ksh ~/sqllib/bin
- hmod 755 ~/sqllib/bin/db2dback.ksh
獲得腳本幫助
可以用 –h 命令行選項運行 db2dback.ksh 腳本,顯示腳本選項的幫助:
- $ db2dback.ksh -h
- 04-01-2009 13:13:25: DIAGPATH is set to /home3/agrankin/sqllib/db2dump
- Usage: db2dback.ksh [-ahzvptl] [-o <path> ] [-r <days> ]
- Options:
- -h Print help message
- -a Archive diagnostic data
- -r <days> Remove diagnostic archives that are >
- then <days> old. Can be combined with -a
- -o <dir> Specify output directory
- -z Compress diagnostic data tar archive
- -v Verbose output.
- -p Run diag data archiving in parallel
- (default is sequential).
- -l Local execution. This is used in cases
- when db2dump is shared by all partitions.
- It also can be used if archive runs on
- just single physical partition.
- -t Suboption for -a, archives data to a
- tar archive at destination.
下面詳細介紹不同的選項。
指定目標(存檔)目錄
如果沒有在命令行上指定目標目錄,腳本使用 DIAGPATH/db2dump_archive 目錄作為默認的目標。如果此目錄不存在,腳本會創(chuàng)建它。
可以創(chuàng)建一個 DIAGPATH/db2dump_archive 鏈接,讓它指向另一個有足夠空間的本地或 NFS 掛載文件系統(tǒng)。在有多個物理分區(qū)的 DPF 設(shè)置中,如果物理分區(qū)不共享診斷路徑目錄,那么必須在每個物理分區(qū)上創(chuàng)建此鏈接。
存檔
使用 –a (archive) 命令行選項存檔來自 DIAGPATH 的診斷數(shù)據(jù):
- db2dback.ksh -a [-o <destination_path> ]
在默認情況下,在 DPF 系統(tǒng)上腳本嘗試使用 rah 命令在每個物理分區(qū)上運行本身的本地版本。如果所有物理分區(qū)共享 DIAGPATH(BCU 不建議這么做),可以使用 –l 子選項調(diào)用腳本的本地版本。
腳本把 db2diag.log 和管理日志文件重命名為 db2diag.log.
剛創(chuàng)建的 db2數(shù)據(jù)庫diag.log 和管理通知日志文件。
stmmlog 目錄中的自調(diào)優(yōu)內(nèi)存管理程序 (STMM) 日志文件。STMM 自動地管理它的日志文件使用的空間,通常不會讓空間總量超過 50MB。
在 15 分鐘以內(nèi)創(chuàng)建的任何診斷數(shù)據(jù)文件或首次發(fā)生數(shù)據(jù)捕捉 (FODC) 目錄。這是為了確保在診斷數(shù)據(jù)轉(zhuǎn)儲期間啟動存檔的情況下,文件不會分配到不同的存檔或目標中。
從 DIAGPATH 轉(zhuǎn)移到新目標的所有文件保留原有的目錄層次結(jié)構(gòu)。所有文件轉(zhuǎn)移到采用以下命名約定的子目錄中:
- db2dback.<hostname>.YYYY-MM-DD-hhmmss
使用 –t 命令行選項為目標目錄中的所有診斷數(shù)據(jù)文件創(chuàng)建 tar 存檔:
- db2dback.ksh -a -t [-o <destination_path> ]
從源目錄中刪除已經(jīng)復制到 tar 存檔中的文件。上面的文件例外規(guī)則也適用于 tar 存檔。tar 文件采用以下命名約定:
- db2dback.<hostname>.YYYY-MM-DD-hhmmss.tar
使用 –z 命令行子選項壓縮目標目錄中的文件。在默認情況下,腳本使用 gzip 工具壓縮文件。如果腳本在系統(tǒng)上找不到 gzip 命令,它會嘗試使用 compress 實用程序。可以與 –t 子選項同時使用此選項,也可以單獨使用:
- db2dback.ksh -a –z [-o <destination_path> ]
- db2dback.ksh -a -t –z [-o <destination_path> ]
在把數(shù)據(jù)發(fā)送給 tar 存檔時,工具在最后壓縮存檔。如果要轉(zhuǎn)移數(shù)據(jù)(沒有 –t 選項),那么在目標目錄中分別壓縮轉(zhuǎn)移的每個文件。只壓縮超過 200KB 的文件。
在默認情況下,DPF 系統(tǒng)上的診斷數(shù)據(jù)存檔是連續(xù)的,這意味著工具每次存檔一個物理分區(qū)的數(shù)據(jù)。使用 –p 子選項對所有物理分區(qū)同時執(zhí)行存檔。這會在腳本中的 DB2 rah 命令中插入 ||& 前綴。關(guān)于使用 rah 命令的更多信息,請參見 DB2 數(shù)據(jù)庫Information Center。
【編輯推薦】