Home > Database > Mysql Tutorial > Db2的bufferpool问题

Db2的bufferpool问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-07 17:36:31
Original
1689 people have browsed it

数据库从操作系统申请到的内存可分为两部分:1.缓存池内存(数据页和空闲页)2.非缓存池内存(线程/DLL/连接服务器等).在数据库中,如何设置和调整bufferpool是一个

 数据库从操作系统申请到的内存可分为两部分:1.缓存池内存(数据页和空闲页) 2.非缓存池内存(线程/DLL/连接服务器等). 在数据库中,如何设置和调整bufferpool是一个重要技巧,值太大可能会使数据库无法启动,太小又会使应用出错,不能充分发挥数据库性能。

 举例来说:

 当你连接DB2数据库,运行某SQL语句时提示:

 SQL1218N  There are no pages currently available in bufferpool   "4096"。SQLSTATE=57011。

  一般解决思路:  

    调整buffpool的大小

     解决方法:

        1> 启动数据库
            db2inst1@tysq: db2start
          启动db2命令行
            db2inst1@tysq: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@tysq: db2stop force
              db2inst1@tysq: db2star


还有一种观察方法

db2inst1@tysq:~> db2pd -db zssqdb01 -buff


Database Partition 0 -- Database ZSSQDB01 -- Active -- Up 23 days 08:43:02 -- Date 2014-01-11-17.58.28.554662


Bufferpools:

First Active Pool ID      1

Max Bufferpool ID         2

Max Bufferpool ID on Disk 2

Num Bufferpools           6


Address            Id   Name               PageSz     PA-NumPgs  BA-NumPgs  BlkSize    NumTbsp    PgsToRemov CurrentSz  PostAlter  SuspndTSCt Automatic

0x00002AB4A91D91C0 1    IBMDEFAULTBP       4096       86884      0          0          5          0          86884      86884      0          True  

0x00002AB4A91DA3C0 2    BP32               32768      45000      0          0          2          0          45000      45000      0          False  

0x00002AB419AE4260 4096 IBMSYSTEMBP4K      4096       16         0          0          0          0          16         16         0          False  

0x00002AB419AE5460 4097 IBMSYSTEMBP8K      8192       16         0          0          0          0          16         16         0          False  

0x00002AB419AE66A0 4098 IBMSYSTEMBP16K     16384      16         0          0          0          0          16         16         0          False  

0x00002AB419AE78E0 4099 IBMSYSTEMBP32K     32768      16         0          0          0          0          16         16         0          False  


在这里可看到各个缓冲区的大小。检查SQL语句,可以发现报缓冲区不足信息的相应涉及表在几号表空间,那个表空间对应使用的BufferpoolID是什么,这样可以扩充对应的缓冲区空间,不是所有这个报错都和IBMDEFAULTBP有关系。


Related labels:
db2
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template