我已经安装了IBMIBM10.5.5,我想在那里创建一个新的数据库。
当我进入指挥部时
db2 create database test1
我说错了
SQL1084C The database manager failed to allocate shared memory because an
operating system kernel memory limit has been reached. SQLSTATE=57019
以下是我在运行“ipc -l”时得到的输出
------ 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。
发布于 2016-05-05 11:37:30
我只是遇到了同样的问题!在我的例子中,问题只是DB2实例的内存问题。
在windows类型中:
db2 get dbm cfg | findstr MEMORY
在linux中:
db2 get dbm cfg | grep MEMORY
你会得到这样的东西:
Global instance memory (4KB) (INSTANCE_MEMORY) = 500000
在我的例子中,解决方案只是通过激活自动模式来设置相同的阈值:
db2 update dbm cfg using INSTANCE_MEMORY 100000 automatic immediate
命令“立即”现在应用设置,而不需要重新启动实例。因此,如果您再次获得设置,将有:
Global instance memory (4KB) (INSTANCE_MEMORY) = AUTOMATIC(5000000)
现在再次尝试连接到数据库。我相信这将再次正常连接。
根据DB2文档:
如果使用具有内存使用限制的DB2数据库产品,或者将其设置为特定值,则此参数指定可分配给数据库分区的最大内存量。否则,自动设置允许实例内存根据需要增长。
字体:IBM知识中心
发布于 2016-02-14 02:20:57
的输出中的内存限制。
ulimit -a
作为实例所有者,并在必要时增加它们。
然后,只需检查
free
我可以看到,您有足够的物理内存,但是没有证据表明db2有足够的空闲内存来完成它的工作。
最普遍的,几乎是rtfm,但不可避免的提示是读什么
db2 '?' SQL1084C
通常,这是一分钟,当一个人拍打他/她的额头,自我误解的话会被听到。
https://dba.stackexchange.com/questions/129087
复制相似问题