之前DB2数据库参数配置完全没有问题,数据库能够正常自动归档。 6月25日因机房断电导致存储重启,小机上的/db2 和/db2backup 目录都是存储映射过来的dbvg卷组。 重启小机服务器HA开启数据库后,运行几天正常。但是发现事务日志目录空间占用越来越大,后来检查发现原来的归档目录下自从故障重启后 没有产生新的归档文件。一直停留在6月25号早上:
查看 数据库相关的归档配置参数如下:
User exit for logging status = NO
Log retain for recovery enabled (LOGRETAIN) = RECOVERY
First log archive method (LOGARCHMETH1) = LOGRETAIN
Second log archive method (LOGARCHMETH2) = OFF
对比之前的参数:
User exit for logging status = YES
First log archive method (LOGARCHMETH1) = DISK:/db2backup/IDBYF_ARCHLOG_PATH/
后来我重新更新参数LOGARCHMETH1 为DISK:/db2backup/IDBYF_ARCHLOG_PATH/
跟踪几天发现数据库仍然没有自动归档。 从网上查的User exit for logging status 设置为OFF也是可以的。 请问如何实现数据库的自动归档? 改完参数还用重启数据库吗? 这样改对吗?
6月25日主机重启以后的 数据库相关的归档配置参数:
User exit for logging status = NO
Log retain for recovery enabled (LOGRETAIN) = RECOVERY
First log archive method (LOGARCHMETH1) = LOGRETAIN
你那边的 DB2应该是 v9.5以前的老版本了,logretain 被设置为 RECOVERY,那么会保留活动日志文件在活动日志目录,并且这些文件会成为联机归档日志文件以用于前滚恢复。所以像你看到的那样“ 事务日志目录空间占用越来越大 ”,日志并没有归档到你规划的“ /db2backup/IDBYF_ARCHLOG_PATH/ ”目录中。
这里有个问题:检查一下 HA 切换脚本中是否有对数据库参数配置操作,查清为什么 LOGARCHMETH1 参数被修改了。
将 LOGARCHMETH1 参数设置为原先规划好的目录,重启下数据库就可以了。
db2 " update db cfg for xxxx using LOGARCHMETH1 disk:/db2backup/IDBYF_ARCHLOG_PATH/ "
然后,可以使用 ARCHIVE LOG 命令测试下,日志是否正常归档到设置的归档目录中。
db2 " archive log for db xxxx "
修改日志归档目录需要重启实例才生效的,重启之后如果归档还是失败那就看看diag日志,看下归档有什么报错,然后再去处理。
db2的日志归档是自动的,也可以手动,不过一般用不到。