DISK:將歸檔日志存放到磁盤上
TSM:將歸檔日志存放到TSM服務器
BAR APIs:第三方廠商提供的產品
DB2在版本8.2中增加了如下配置參數:
第一個日志歸檔方法 (LOGARCHMETH1) = LOGRETAIN
logarchmeth1 的選項 (LOGARCHOPT1) =
第二個日志歸檔方法 (LOGARCHMETH2) = OFF
logarchmeth2 的選項 (LOGARCHOPT2) =
故障轉移日志歸檔路徑 (FAILARCHPATH) =
錯誤時重試日志歸檔次數 (NUMARCHRETRY) = 5
日志歸檔重試延遲(秒) (ARCHRETRYDELAY) = 20
供應商選項 (VENDOROPT) =
下面是關于這些參數的說明:
日志歸檔方法 1(logarchmeth1)和日志歸檔方法 2(logarchmeth2)這些參數使數據庫管理器將日志文件歸檔至活動日志路徑之外的位置。如果指定這兩個參數,每個日志文件均歸檔兩次。這意味著您將擁有兩個位于不同位置的歸檔日志文件副本。 這些參數的有效值包括介質類型,且在某些情況下,包括目標字段。
使用冒號(:)來分隔值。有效的值為:
OFF 指定不使用日志歸檔方法。如果 logarchmeth1 和logarchmeth2 都設置為 OFF,則認為數據庫正在使用循環日志記錄,且不可前滾恢復。這是缺省值。
LOGRETAIN 此值僅可用于 logarchmeth1,且等價于將 logretain配置參數設置為 RECOVERY。如果指定此值,將自動更新logretain 配置參數。
USEREXIT 此值僅對 logarchmeth1 有效,且等價于將userexit 配置參數設置為 ON。如果指定此值,將自動更新userexit 配置參數。
DISK 此值后必須緊跟冒號(:),然后是全限定現有路徑名,日志文件將在其中歸檔。例如,如果將 logarchmeth1 設置為 DISK:/u/dbuser/archived_logs,則將歸檔日志文件放入名為 /u/dbuser/archived_logs 的目錄。
注意: 如果正在歸檔至磁帶,可以使用 db2tapemgr 實用程序來存儲和檢索日志文件。TSM 如果指定不帶任何附加配置參數,此值指示應該使用缺省管理類,將日志文件歸檔在本地 TSM 服務器上。如果此值后緊跟冒號(:)和 TSM 管理類,則使用指定的管理類來歸檔日志文件。
VENDOR 指定將使用供應商庫來歸檔日志文件。此值后必須緊跟冒號(:)和庫的名稱。庫中提供的 API 必須使用備份并復原供應商產品的 API。 注意:
如果將 logarchmeth1 或 logarchmeth2 設置為 OFF 以外的值,則必須配置數據庫以進行前滾恢復。 如果更新 userexit或 logretain 配置參數,將自動更新 logarchmeth1,反之亦然。然而,如果您正在使用 userexit 或 logretain,必須將 logarchmeth2 設置為 OFF。
日志歸檔選項 1(logarchopt1)、日志歸檔選項 2(logarchopt2):
指定傳遞至 TSM 服務器或供應商 API 的字符串。對于 TSM,此字段用于允許數據庫檢索在不同 TSM 節點或通過不同 TSM用戶生成的日志。字符串必須以如下格式提供: "-fromnode=nodename -fromowner=ownername"其中 nodename 是最初歸檔日志文件的 TSM 節點的名稱,ownername 是最初歸檔日志文件的 TSM 用戶的名稱。每個日志歸檔選項字段對應于一個日志歸檔方法:logarchopt1與 logarchmeth1 配合使用,logarchopt2 與 logarchmeth2 配合使用。
故障轉移歸檔路徑(failarchpath)
如果指定的日志歸檔方法失敗,則為歸檔日志文件指定備用目錄。在失敗的日志歸檔方法再次可用之前,此目錄是日志文件的臨時存儲區,此時日志文件將從此目錄中移至日志歸檔方法。通過將日志文件移動至該臨時位置,可以避免日志目錄發生已滿情況。此參數必須是一個全限定現有目錄。
出錯時的歸檔重試次數(numarchretry)
指定在日志文件歸檔到 failarchpath 配置參數指定的路徑之前,使用指定的歸檔方法歸檔日志文件的嘗試次數。如果設置了 failarchpath 配置參數,則只能使用該參數。缺省值為 5。
歸檔重試延遲(archretrydelay)
指定在上一次嘗試失敗之后,歸檔日志文件嘗試之間等待的時間量(以秒計)。缺省值為 20。
供應商選項(VENDOROPT)
指定使用第三方廠商進行備份、恢復、歸檔日志時需要的額外參數配置。參考第三方廠商存儲軟件的說明配置。
下面我們以一個簡單的例子配置DB2將日志歸檔到磁盤說明如何使用DB2版本8.2提供的新功能:
1、更新數據庫SAMPLE的配置參數(請在更新之前確保使用的目錄已經建立,而且DB2實例用戶有合適的權限):
D:\Temp>db2 update db cfg for sample using logarchmeth1 DISK:D:\TEMP\logarc1
DB20000I UPDATE DATABASE CONFIGURATION 命令成功完成。 D:\Temp>db2 update db cfg for sample using failarchpath d:\temp\logarc2 DB20000I UPDATE DATABASE CONFIGURATION 命令成功完成。 |
注意:如果先前你沒有設置為歸檔日志模式,您設置完參數后可能需要先做一個數據庫的脫機備份。例如:
db2 backup db sample to
2、查看一下數據庫SAMPLE的目前日志歸檔參數設置:
D:\Temp>db2 get db cfg for sample 第一個日志歸檔方法 (LOGARCHMETH1) = DISK:D:\TEMP\logarc1\ logarchmeth1 的選項 (LOGARCHOPT1) = 第二個日志歸檔方法 (LOGARCHMETH2) = OFF logarchmeth2 的選項 (LOGARCHOPT2) = 故障轉移日志歸檔路徑 (FAILARCHPATH) = d:\temp\logarc2\ 錯誤時重試日志歸檔次數 (NUMARCHRETRY) = 5 日志歸檔重試延遲(秒) (ARCHRETRYDELAY) = 20 供應商選項 (VENDOROPT) = 。。。 |
3、檢查db2diag.log,可以看到參數設置改變的信息:
2004-10-26-19.30.25.245000+480 I14933654H408 LEVEL: Event PID : 1872 TID : 2592 PROC : db2syscs.exe INSTANCE: DB2 NODE : 000 DB : SAMPLE APPHDL : 0-89 APPID: *LOCAL.DB2.041026024848 FUNCTION: DB2 UDB, config/install, sqlfLogUpdateCfgParam, probe:20 CHANGE : CFG DB SAMPLE: "Logarchmeth1" From: "" To: "DISK:D:\TEMP\logarc1" 2004-10-26-19.30.47.987000+480 I14934064H404 LEVEL: Event PID : 1872 TID : 2592 PROC : db2syscs.exe INSTANCE: DB2 NODE : 000 DB : SAMPLE APPHDL : 0-89 APPID: *LOCAL.DB2.041026024848 FUNCTION: DB2 UDB, config/install, sqlfLogUpdateCfgParam, probe:20 CHANGE : CFG DB SAMPLE: "Failarchpath" From: "" To: "d:\temp\logarc2\" |
4、對數據庫SAMPLE進行更新操作,以便寫滿日志文件,觸發日志歸檔。我們通過重復往staff表中插入數據實現:
D:\Temp>db2 connect to sample 數據庫連接信息 數據庫服務器 = DB2/NT 8.2.0 SQL 授權標識 = BIYJ 本地數據庫別名 = SAMPLE D:\Temp>db2 insert into staff select * from staff DB20000I SQL 命令成功完成。 |
重復執行上述命令。直至有日志文件寫滿觸發日志歸檔。
5、檢查db2diag.log,查看是否有日志歸檔,你會看到類似下面的內容:
2004-10-26-19.42.13.373000+480 I14935459H319 LEVEL: Warning PID : 1872 TID : 1884 PROC : db2syscs.exe INSTANCE: DB2 NODE : 000 FUNCTION: DB2 UDB, data protection, sqlpghck, probe:1390 MESSAGE : ExtNum 1, state 401, baselsn 0000000000FA0000 nextlsn 0000000000FA21E 2004-10-26-19.42.13.403000+480 I14935780H418 LEVEL: Warning PID : 1872 TID : 1516 PROC : db2syscs.exe INSTANCE: DB2 NODE : 000 FUNCTION: DB2 UDB, data protection, sqlpgArchiveLogFile, probe:3180 MESSAGE : Successfully archived log file S0000001.LOG to D:\TEMP\logarc1\DB2\SAMPLE\NODE0000\C0000002\ from C:\DB2\NODE0000\SQL00001\SQLOGDIR\. 2004-10-26-19.42.13.573000+480 I14936200H316 LEVEL: Warning PID : 1872 TID : 196 PROC : db2syscs.exe INSTANCE: DB2 NODE : 000 FUNCTION: DB2 UDB, data protection, sqlpgLoggrInitDelOldLog, probe:1440 MESSAGE : Cleaning up logs from RenameArchNum 1 to delLimit 2 |
6、檢查一下我們的歸檔日志,就會看到已經歸檔的文件:
D:\Temp\logarc1\DB2\SAMPLE\NODE0000\C0000002 的目錄 2004-10-26 07:43 下午
2004-10-26 07:43 下午
2004-10-26 07:42 下午 20,480 S0000001.LOG 2004-10-26 07:43 下午 4,104,192 S0000002.LOG 2004-10-26 07:43 下午 4,104,192 S0000003.LOG 2004-10-26 07:43 下午 4,104,192 S0000004.LOG |
關于使用TSM服務器和第三方廠商備份軟件配置歸檔日志的方法,請參見DB2 UDB V8.2 信息中心: