以下的文章主要向大家描述的是DB2 back 存檔使用與正確維護,在實際操作中我們是否希望以更好的方法管理 IBM® DB2® for Linux® or AIX® 服務器上的診斷文件?如果是這樣,本文會對您有幫助。
這裡提供一個腳本,它可以幫助您存檔和維護這些文件。通過壓縮和刪除舊的文件,可以進一步簡化管理過程。
簡介
隨著自治技術的應用日益增加,DB2 數據庫服務器可能會產生很大的消息日志文件、管理通知日志文件和事件日志文件。在具有許多邏輯和物理分區的大型數據倉庫環境中,這種情況尤其顯著。另外,在出現問題時,為了滿足首次故障數據捕捉的需要,DB2 往往會產生大量診斷數據。
日志記錄活動的增加還會增加占用的文件系統空間,導致可管理性問題。簡單地刪除日志文件是不可行的,因為 DB2 支持人員常常要求用戶提供歷史診斷數據,尤其是在研究當前問題期間和遷移實例之後。
本文介紹一個新腳本,可以使用它對 DB2 實例的診斷日志和數據執行維護任務。這個腳本稱為 db2dback.ksh,可以通過後面 下載 部分中的 zip 文件獲得它。這個腳本可以在單一分區和多分區環境中運行,它會考慮不同的用戶設置,不同的物理分區可以使用共享的或單獨的診斷數據路徑。
腳本概述
db2dback.ksh shell 腳本可以對來自 DB2 數據庫實例配置的診斷數據路徑 (DIAGPATH) 的診斷數據進行存檔。還可以對目標存檔)目錄中已經存檔的數據進行維護。
DB2 實例的所有者應該定期運行此腳本。可以手工運行此腳本,也可以通過調度工具例如,cron 作業)運行。
此腳本當前可以處理 AIX 和 Linux 操作系統上的 DB2 實例。在這兩種環境中,它可以處理單分區實例或用 Data Partitioning Feature (DPF) 創建的多分區實例,還包括 Balanced Warehouse 設置。在 DPF 環境中,此腳本支持不同的實例配置:
在所有分區之間共享單一 DIAGPATH
每個物理分區使用單獨的 DIAGPATH
注意:DIAGPATH 是一個 DB2 數據庫管理程序配置參數值。如果在實例配置中沒有設置這個參數,那麼使用 DB2 實例所有者的默認值 $HOME/sqllib/db2dump。關於數據庫管理程序配置參數的更多信息,請參見 DB2 Information Center。
安裝腳本
DB2 實例所有者可以按以下步驟安裝此腳本:
從下面的 下載 部分獲取 db2dback.zip 文件。
從 zip 文件中提取出 db2dback.ksh 腳本。
把 db2dback.ksh 復制到 DB2 數據庫實例的 sqllib/bin 目錄中。
必須有在 DPF 設置上遠程執行腳本所需的執行權限。
下面的命令示例設置正確的執行權限:
- 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
] [-r ] - Options:
- -h Print help message
- -a Archive diagnostic data
- -r
Remove diagnostic archives that are > - then
old. Can be combined with -a - -o
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 目錄作為默認的目標。如果此目錄不存在,腳本會創建它。
可以創建一個 DIAGPATH/db2dump_archive 鏈接,讓它指向另一個有足夠空間的本地或 NFS 掛載文件系統。在有多個物理分區的 DPF 設置中,如果物理分區不共享診斷路徑目錄,那麼必須在每個物理分區上創建此鏈接。
存檔
使用 –a (archive) 命令行選項存檔來自 DIAGPATH 的診斷數據:
- db2dback.ksh -a [-o
]
在默認情況下,在 DPF 系統上腳本嘗試使用 rah 命令在每個物理分區上運行本身的本地版本。如果所有物理分區共享 DIAGPATHBCU 不建議這麼做),可以使用 –l 子選項調用腳本的本地版本。
腳本把 db2diag.log 和管理日志文件重命名為 db2diag.log.
剛創建的 db2數據庫diag.log 和管理通知日志文件。
stmmlog 目錄中的自調優內存管理程序 (STMM) 日志文件。STMM 自動地管理它的日志文件使用的空間,通常不會讓空間總量超過 50MB。
在 15 分鐘以內創建的任何診斷數據文件或首次發生數據捕捉 (FODC) 目錄。這是為了確保在診斷數據轉儲期間啟動存檔的情況下,文件不會分配到不同的存檔或目標中。
從 DIAGPATH 轉移到新目標的所有文件保留原有的目錄層次結構。所有文件轉移到采用以下命名約定的子目錄中:
- db2dback.
.YYYY-MM-DD-hhmmss
使用 –t 命令行選項為目標目錄中的所有診斷數據文件創建 tar 存檔:
- db2dback.ksh -a -t [-o
]
從源目錄中刪除已經復制到 tar 存檔中的文件。上面的文件例外規則也適用於 tar 存檔。tar 文件采用以下命名約定:
- db2dback.
.YYYY-MM-DD-hhmmss.tar
使用 –z 命令行子選項壓縮目標目錄中的文件。在默認情況下,腳本使用 gzip 工具壓縮文件。如果腳本在系統上找不到 gzip 命令,它會嘗試使用 compress 實用程序。可以與 –t 子選項同時使用此選項,也可以單獨使用:
- db2dback.ksh -a –z [-o
] - db2dback.ksh -a -t –z [-o
]
在把數據發送給 tar 存檔時,工具在最後壓縮存檔。如果要轉移數據沒有 –t 選項),那麼在目標目錄中分別壓縮轉移的每個文件。只壓縮超過 200KB 的文件。
在默認情況下,DPF 系統上的診斷數據存檔是連續的,這意味著工具每次存檔一個物理分區的數據。使用 –p 子選項對所有物理分區同時執行存檔。這會在腳本中的 DB2 rah 命令中插入 ||& 前綴。關於使用 rah 命令的更多信息,請參見 DB2 數據庫Information Center。