sunyangnj
作者sunyangnj·2014-01-03 11:14
技术经理·苏宁金融研究院

构建200G测试库日志满故障的处理

字数 1895阅读 1936评论 1赞 2

某部门需要测试存储,需要灌入200G数据,但是灌了一会就报日志满错误。硬件为HP服务器,操作系统为AIX,DB2为9.7 ESE。

报错日志摘选

2014-01-02-16.13.04.985015-360 I401792A556        LEVEL: Error
PID     : 58982454             TID  : 10539       PROC : db2sysc 0
INSTANCE: db2inst1             NODE : 000         DB   : TESTYBB
APPHDL  : 0-15                 APPID: 100.91.91.142.39369.14010222085
AUTHID  : DB2INST1
EDUID   : 10539                EDUNAME: db2agent (TESTYBB) 0
FUNCTION: DB2 UDB, data protection services, sqlpWriteLR, probe:6680
MESSAGE : ZRC=0x85100009=-2062548983=SQLP_NOSPACE
          "Log File has reached its saturation point"
          DIA8309C Log file was full.

我先请该DBA调日志文件大小到15000,也就是60M,主日志和辅助日志都调整到30

db2 update db cfg for xxx using logfilsiz 1500 logprimary 30 logsecond 30

注意主日志和日志大小是要重启数据库的

db2stop force, db2start

但是灌了5分钟,还是爆了,我需要修改TPCC脚本

经过和存储负责人确认,我将create_table.sql 中create table后面都加上了not logged intially

并且修改脚本让灌输据步骤的db2batch带上-c off参数,保持不记录日志状态

但是还是不行

通过搜索,我发现TPC有个configCommitCount参数,我猜是定时提交的,我设置为1000,但是还是不行。

被逼无奈,只好恢复了创建表的文件,重新创建数据库,设置logfilsiz 为50000, logprimary,logsecond分别为100,并且设置了归档日志目录为/testdb2/logarch

由于用root创建/testdb2/logarch,

在root下chown -R db2inst:db2iadm /testdb2/logarch

db2 update db xxx using logfilsiz 50000 logprimary 100 logsecond 100 logarchmeth1 /testdb2/logarch

然后db2 backup db xxx to /yyy compress,备份数据库

这设置之后,数据灌入终于成功了,但是这个问题是通过调整日志解决的,还是没有达到关闭日志记录功能的效果。

问题解决。

以后有时间去找一下TPC的源代码,看看能否更改一下它的设置功能

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论1 条评论

zhendazhenda数据库管理员昆仑银行
2016-01-27 10:42
有tpcc的db2ddl表结构么?
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广