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 信息中心:
http://publib.boulder.ibm.com/infocenter/db2help/index.jsp