五郎. 发表于 2016-11-15 10:06:02

[经验总结]解决db2 bufferpool不足的问题

  问题:
  对Mars服务端程序同时开10个用户用复杂的XQuery语句查询,出错。
--CLI ERROR-------------
cliRC = -1
line = 806
file = dbapi.c

SQLSTATE = 57011
Native Error Code = -1218
SQL1218N There are no pages currently available in bufferpool "4096". SQLSTATE=57011
  解决思路:
  调整buffpool的大小
  解决方法:
  1> 启动数据库
db2inst1@mars: db2start
启动db2命令行
db2inst1@mars:db2
  

   2> 连接数据库
db2 =>connect to test
      3> 修改buffer pool
  
检查当前数据库已有的buffer pool
db2=>select * from syscat.bufferpools
结果显示系统存在默认的bufferpool IBMDEFAULTBP, 大小为4K(1*4096),这个数值明显太小;
  
直接修改IBMDEFAULTBP的大小:
db2 =>alter bufferpool IBMDEFAULTBP immediate size 50000
现在bufferpool的大小为200M(50000*4096) ,可以满足当前应用需求。
     4> 重启数据库管理程序
db2inst1@mars: db2stop force
      db2inst1@mars: db2start

  参考资料: Beginning DB2 From Novice to Professional 第十八章
页: [1]
查看完整版本: [经验总结]解决db2 bufferpool不足的问题