DB2 和 Docker 的恩怨

DB2 11.5 的容器镜像,启动的时候,自动创建了数据库TESTDB, 但是没有自动启动DB2 manager,进入db2inst1账号后,由于db2admin没有在PATH里面,db2start会失败,所以,将路径 /opt/ibm/db2/V11.5/das/bin 假如到PATH 后,db2start可以正常启动,但是,db2 connect  to testdb 时,就会报错,然后db2 manager进程就退出了。

然而,也找不到哪里有有用的错误日志。

db2 manager启动的时候,数据库本身并没有启动,可以激活数据库,也可以第一次connect to 数据库的时候自动激活,目前的情况就是第一次连接的时候失败,应该就是因为数据库启动失败

先怀疑一下:

  1. 可能是日志文件配置的太多、太大,磁盘不够,所以数据库启动不了
  2. 可能是启动数据库需要的内存不能满足需求,所以数据库启动失败

检查:

db2 get db cfg for testdb

日志文件存储需求: 1024 * 4K * (13+12) = 100MB ;

这个完全没有问题。

内存需求: 1237664 * 4K =  4.8GB  ,然而,我的容器限制的是2GB的内存

修改内存需求配置:

修改后: 4096*4KB= 16MB  (这个是非常小的,这里仅仅是快速测试一下是不是内存问题导致的失败,所以,随便写了一个很小的值)

再次测试,发现连接数据库正常了

 

总结:

  1. 注意修改数据库相关配置

问题:

  1. 默认的数据库内存大小是如何确定的?

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据