首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >由于已达到操作系统内核内存限制,数据库管理器未能分配共享内存。

由于已达到操作系统内核内存限制,数据库管理器未能分配共享内存。
EN

Database Administration用户
提问于 2016-02-12 12:11:32
回答 2查看 12.2K关注 0票数 6

我已经安装了IBMIBM10.5.5,我想在那里创建一个新的数据库。

当我进入指挥部时

代码语言:javascript
运行
复制
db2 create database test1

我说错了

代码语言:javascript
运行
复制
SQL1084C  The database manager failed to allocate shared memory because an 
operating system kernel memory limit has been reached.  SQLSTATE=57019

以下是我在运行“ipc -l”时得到的输出

代码语言:javascript
运行
复制
 ------ Shared Memory Limits --------
max number of segments = 10000
max seg size (kbytes) = 4882812
max total shared memory (kbytes) = 33554432
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 4096
max semaphores per array = 250
max semaphores system wide = 1024000
max ops per semop call = 32
semaphore max value = 32767

------ Messages Limits --------
max queues system wide = 16384
max size of message (bytes) = 65536
default max size of queue (bytes) = 16384

原因是什么?我怎么才能修好它?我在Ubuntu14.04上运行,内存为8GB。

EN

回答 2

Database Administration用户

发布于 2016-05-05 11:37:30

我只是遇到了同样的问题!在我的例子中,问题只是DB2实例的内存问题。

在windows类型中:

代码语言:javascript
运行
复制
db2 get dbm cfg | findstr MEMORY

在linux中:

代码语言:javascript
运行
复制
db2 get dbm cfg | grep MEMORY

你会得到这样的东西:

代码语言:javascript
运行
复制
Global instance memory (4KB)          (INSTANCE_MEMORY) = 500000

在我的例子中,解决方案只是通过激活自动模式来设置相同的阈值:

代码语言:javascript
运行
复制
db2 update dbm cfg using INSTANCE_MEMORY 100000 automatic immediate

命令“立即”现在应用设置,而不需要重新启动实例。因此,如果您再次获得设置,将有:

代码语言:javascript
运行
复制
Global instance memory (4KB)          (INSTANCE_MEMORY) = AUTOMATIC(5000000)

现在再次尝试连接到数据库。我相信这将再次正常连接。

根据DB2文档:

如果使用具有内存使用限制的DB2数据库产品,或者将其设置为特定值,则此参数指定可分配给数据库分区的最大内存量。否则,自动设置允许实例内存根据需要增长。

字体:IBM知识中心

票数 5
EN

Database Administration用户

发布于 2016-02-14 02:20:57

的输出中的内存限制。

代码语言:javascript
运行
复制
ulimit -a

作为实例所有者,并在必要时增加它们。

然后,只需检查

代码语言:javascript
运行
复制
free

我可以看到,您有足够的物理内存,但是没有证据表明db2有足够的空闲内存来完成它的工作。

最普遍的,几乎是rtfm,但不可避免的提示是读什么

代码语言:javascript
运行
复制
db2 '?' SQL1084C

通常,这是一分钟,当一个人拍打他/她的额头,自我误解的话会被听到。

票数 -1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/129087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档