DB2 Buffer Pool定义的太大
如果是 Buffer Pool定义的太大, 无法分配造成的数据库不能连接, 可以尝试用下面的步骤来解决:
1. 用DB2实例Owner的用户登录到系统,
2. 执行下面的命令来设置环境变量DB2_OVERRIDE_BPF
db2set DB2_OVERRIDE_BPF=number-of-pages
其中number-of-pages为页数, 应该是一个较小的, 操作系统可以分配的值, 如5000; 下一次DB2数据库连接以激活数据库时, DB2系统会尝试按照此参数指定的大小来分配BUFFERPOOL;
3.执行db2 terminate ,
运行命令db2 connect to db来建立数据库连接; 由于我们已经设置了DB2_OVERRIDE_BPF环境变量, 此连接应该可以成功;
4. 连接建立后, 不要做其他操作, 立刻修改bufferpool;
db2 alter bufferpool bufferpool-name size number-of-pages
5. 为了使得我们修改的新buffer pool的大小可以生效, 需要先运行命令 db2 connect reset 断开当前的连接;
6. 运行命令 db2set DB2_OVERRIDE_BPF= 以去掉该环境变量, 使得我们配置的新的buffer pool的大小可以生效;
7. 重新连接数据库