DB2歸檔日志的管理方案從哪幾點入手?
此文章主要向大家講述的是DB2歸檔日志的管理方案,我們主要是從其需求描述。問題分析,使用USEREXIT程序的實際操作方法等相關(guān)內(nèi)容對DB2歸檔日志的管理方案進行描述,以下就是文章的主要內(nèi)容講述。
需求描述
由于使用了LOGRETAIN=ON數(shù)據(jù)庫配置,所以數(shù)據(jù)庫日志文件將不會被數(shù)據(jù)庫從活動日志目錄中自動刪除或循環(huán)利用,活動日志目錄中的日志文件將會越來越多,所以需要對該目錄下的日志文件進行歸檔。
問題分析
將LOGRETAIN設(shè)置為ON后,數(shù)據(jù)庫將支持前滾恢復(fù)。此時,系統(tǒng)中將會存在三種類型的日志文件:
活動日志:該日志包含尚未提交或回滾的事務(wù)單元的相關(guān)信息,以及已提交但尚未寫入數(shù)據(jù)庫文件的事務(wù)的信息。
聯(lián)機存檔日志:活動日志中所有改動對正常處理已不需要,即該日志中所記錄的事務(wù)都已提交并寫入數(shù)據(jù)庫文件時,該活動日志轉(zhuǎn)換為聯(lián)機存檔日志。稱之為聯(lián)機,是由于它們與活動日志存放在同一個目錄下。
脫機存檔日志:將聯(lián)機存檔日志從活動日志目錄下Copy到另外的地方存檔,就稱為脫機存檔日志。這些日志可能在數(shù)據(jù)庫前滾恢復(fù)的時候仍然需要。
DB2歸檔日志管理數(shù)據(jù)庫日志的工作可以手工完成(即將聯(lián)機存檔日志手工拷貝到某個archive目錄),也可由編寫USEREXIT程序自動維護。
由于DB2對所有平臺都提供了相應(yīng)的USEREXIT示例程序,而且非常易于修改和使用,所以IBM建議用戶使用USEREXIT程序來DB2歸檔日志文件。
使用USEREXIT程序的方法
要使用User exit program自動化log文件的archiving和retrieval過程:
1. 設(shè)置database cfg參數(shù)logarchmeth1 為USEREXIT
- connect to sample
- update db cfg using logarchmeth1 USEREXIT
- connect reset
2. 創(chuàng)建user exit programs。該程序必須是一個名為db2uext2的可執(zhí)行文件。DB2在各種平臺上都提供了User Exit的示例程序,用戶可以通過直接修改該樣本文件來實現(xiàn)自己的user exit程序。
在UNIX(R) based的系統(tǒng)中,該程序存放在sqllib/samples/c目錄下.
- There are four sample user exit programs for UNIX based systems:
- • db2uext2.ctsm
- This sample uses Tivoli(R) Storage Manager to archive and retrieve database log files.
- • db2uext2.ctape
- This sample uses tape media to archive and retrieve database log files .
- • db2uext2.cdisk
- This sample uses the operating system COPY command and disk media to archive and retrieve database log files.
- • db2uxt2.cxbsa
- This sample works with the XBSA Draft 0.8 published by the X/Open group. It can be used
to archive and retrieve database log files. This sample is only supported on AIX.
• 在Windows(R) 系統(tǒng)中,該文件存放在sqllib/samples/c目錄下。
- There are two sample user exit programs for Windows operating systems:
- • db2uext2.ctsm
- This sample uses Tivoli Storage Manager to archive and retrieve database log files.
- • db2uext2.cdisk
- This sample uses the operating system COPY command and disk media to archive and retrieve database log files.
3. 配置該示例程序,指定要將日志文件Archive到哪個系統(tǒng)目錄中(在windows平臺下,程序中默認為c:\mylogs)。
- #define ARCHIVE_PATH "c:\\mylogs\\"
- #define RETRIEVE_PATH "c:\\mylogs\\"
- #define AUDIT_ERROR_PATH "c:\\mylogs\\"
4. 編譯該C文件
cl db2uext2.c
5. 拷貝db2uext2.exe到/SQLLIB/BIN目錄下
6. 在db2cmd中鍵入archive log for db sample user db2admin using duan1980命令強制執(zhí)行l(wèi)og日志歸檔任務(wù)。查看c:\mylogs目錄下有無日志文件歸檔,驗證是否成功。以上的相關(guān)內(nèi)容就是對DB2歸檔日志管理方案的介紹,望你能有所收獲。