程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 使用 db2back 存檔和維護 DB2 消息日志和診斷數據

使用 db2back 存檔和維護 DB2 消息日志和診斷數據

編輯:DB2教程

簡介

隨著自治技術的應用日益增加,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 實例所有者可以按以下步驟安裝此腳本:

從下面的 下載 部分獲取 db2dback.zip 文件。

從 zip 文件中提取出 db2dback.ksh 腳本。

把 db2dback.ksh 復制到 DB2 實例的 sqllib/bin 目錄中。

必須有在 DPF 設置上遠程執行腳本所需的執行權限。

下面的命令示例設置正確的執行權限:

cp db2dback.ksh ~/sqllib/bin 
chmod 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 目錄作為默認的目標。如果此目錄不存在,腳本會創建它。

可以創建一個 DIAGPATH/db2dump_archive 鏈接,讓它指向另一個有足夠空間的本地或 NFS 掛載文件系統。在有多個物理分區的 DPF 設置中,如果物理分區不共享診斷路徑目錄,那麼必須在每個物理分區上創建此鏈接。

存檔

使用 –a (archive) 命令行選項存檔來自 DIAGPATH 的診斷數據:

db2dback.ksh -a [-o <destination_path> ] 

在默認情況下,在 DPF 系統上腳本嘗試使用 rah 命令在每個物理分區上運行本身的本地版本。如果所有物理分區共享 DIAGPATH(BCU 不建議這麼做),可以使用 –l 子選項調用腳本的本地版本。

腳本把 db2diag.log 和管理日志文件重命名為 db2diag.log.<timestamp> 和 <instancename>.log.<timestamp>,然後為實例創建新的日志文件。然後,腳本使用 UNIX mv 命令轉移 DIAGPATH 中的所有文件和目錄,但是以下文件和目錄除外:

剛創建的 db2diag.log 和管理通知日志文件。

stmmlog 目錄中的自調優內存管理程序 (STMM) 日志文件。STMM 自動地管理它的日志文件使用的空間,通常不會讓空間總量超過 50MB。

在 15 分鐘以內創建的任何診斷數據文件或首次發生數據捕捉 (FODC) 目錄。這是為了確保在診斷數據轉儲期間啟動存檔的情況下,文件不會分配到不同的存檔或目標中。

從 DIAGPATH 轉移到新目標的所有文件保留原有的目錄層次結構。所有文件轉移到采用以下命名約定的子目錄中:

db2dback.<hostname>.YYYY-MM-DD-hhmmss

使用 –t 命令行選項為目標目錄中的所有診斷數據文件創建 tar 存檔:

db2dback.ksh -a -t [-o <destination_path> ]

從源目錄中刪除已經復制到 tar 存檔中的文件。上面的文件例外規則也適用於 tar 存檔。tar 文件采用以下命名約定:

db2dback.<hostname>.YYYY-MM-DD-hhmmss.tar 

使用 –z 命令行子選項壓縮目標目錄中的文件。在默認情況下,腳本使用 gzip 工具壓縮文件。如果腳本在系統上找不到 gzip 命令,它會嘗試使用 compress 實用程序。可以與 –t 子選項同時使用此選項,也可以單獨使用:

db2dback.ksh -a –z [-o <destination_path> ] 
db2dback.ksh -a -t –z [-o <destination_path> ] 

在把數據發送給 tar 存檔時,工具在最後壓縮存檔。如果要轉移數據(沒有 –t 選項),那麼在目標目錄中分別壓縮轉移的每個文件。只壓縮超過 200KB 的文件。

在默認情況下,DPF 系統上的診斷數據存檔是連續的,這意味著工具每次存檔一個物理分區的數據。使用 –p 子選項對所有物理分區同時執行存檔。這會在腳本中的 DB2 rah 命令中插入 ||& 前綴。

維護存檔的診斷數據

用 -r 命令行選項執行腳本,可以執行基本的診斷數據存檔維護。可以與 –a 存檔選項同時使用此選項,也可以單獨使用。不帶 –a 選項的命令格式如下:

db2dback.ksh -r <number_of_days> 

在使用此選項時,必須通過參數指定文件在存檔中保留的天數。

在與 –a 存檔選項同時使用 -r 選項時,工具先存檔診斷數據,然後嘗試刪除舊文件。帶 –a 選項的命令格式如下:

db2dback.ksh -a -r 180 

天數參數可以指定為 0(零),表示希望刪除除了 db2dback.ksh 實用程序日志文件之外的所有存檔文件。

腳本日志文件

db2dback.ksh 腳本把消息寫入自己的日志文件。這些消息報告進度並記錄所有錯誤。腳本為每個物理分區創建單獨的日志文件。日志文件的命名約定使用機器的主機名,如下所示:

db2dback.<hostname>.log 

腳本在存檔目標目錄中創建日志文件。文件只包含最近一次調用腳本的相關信息,這確保文件本身不會增長得太大。下面是日志文件的示例:

  db2dback.ksh 
02-05-2009 19:00:38: Option -r specifIEd 
02-05-2009 19:00:38: Removing all archives older than 0 days 
02-05-2009 19:00:38: Removing archive db2dback.p6db2serv.2009-02-05-190017 

結束語

使用這個腳本可以輕松地管理 AIX 或 Linux 上的 DB2 的診斷日志。試一下,您會體驗到管理診斷數據是多麼容易。

本文示例源代碼或素材下載

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved