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

问题:

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

 SQLSTATE     = 57011
 Native Error Code = -1218
[IBM][CLI Driver][DB2/LINUXX8664] 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 第十八章

你可能感兴趣的:(数据库技术)