签到成功

知道了

CNDBA社区CNDBA社区

DM 达梦 创建实例 Fail to create semaphore 错误解决方法

2023-04-14 11:29 1038 0 原创 DM 达梦
作者: dave

1 故障现象

dminit 创建达梦实例时报如下错误:http://www.cndba.cn/dave/article/116552

initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2024-01-03
Fail to create semaphore.
The instance /data/dmdata/cndba is running or check instance active failed.
fail to init db.

2 故障分析

这里报错是信号量的问题,信号量本质上是一个计数器,用于多进程对共享数据对象的读取,它和管道有所不同,它不以传送数据为主要目的,它主要是用来保护共享资源(信号量也属于临界资源),使得资源在一个时刻只有一个进程独享。

http://www.cndba.cn/dave/article/116552
http://www.cndba.cn/dave/article/116552
http://www.cndba.cn/dave/article/116552

信号量是linux系统中的一种资源,达梦在初始化实例的过程中也是需要申请信号量。http://www.cndba.cn/dave/article/116552

使用命令ipcs -l可以查看信号量相关的资源限制:http://www.cndba.cn/dave/article/116552http://www.cndba.cn/dave/article/116552

[dave@www.cndba.cn log]# ipcs -l

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

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509481983
max total shared memory (kbytes) = 18014398509480960
min seg size (bytes) = 1

------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 100
semaphore max value = 32767

通过命令ipcs -u可以看到当前系统中已经使用的信号量集和信号量总数:

http://www.cndba.cn/dave/article/116552
http://www.cndba.cn/dave/article/116552

[dave@www.cndba.cn log]# ipcs -u

------ Messages Status --------
allocated queues = 0
used headers = 0
used space = 0 bytes

------ Shared Memory Status --------
segments allocated 20
pages allocated 1738996
pages resident  723437
pages swapped   0
Swap performance: 0 attempts     0 successes

------ Semaphore Status --------
used arrays = 405
allocated semaphores = 7351

可以看到,我们这里已经使用405,而限制的才128。 所以报错。

3 解决方法

修改/etc/sysctl.conf 文件:

修改kernel.sem =250 32000 32 256
到
kernel.sem =250 32000 32 1024

执行sysctl -p 加载生效。 再次执行dminit,不再报错。

注意
这里有个背景,我们这台测试主机是复用了,上面还装了其他的几个数据库。 如果是新环境,只跑达梦,应该不会报这个错误。

http://www.cndba.cn/dave/article/116552

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2237
    原创
  • 3
    翻译
  • 546
    转载
  • 186
    评论
  • 访问:6588266次
  • 积分:4242
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ