logo
GBase 8s
安装配置
文章

执行初始化或启动时报错

hxuan7
发表于2023-04-23 15:50:01403次浏览0个评论

问题描述:

执行数据库初始化或者启动数据库时,报

Allocating and attaching to shared memory…FAILED

WARNING: server initialization failed or timed out.

Check the message log, online.log, for errors.

 

解决方案:

出现问题,根据提示要求查看online.log,使用onstat -m命令可查看最近20行online.log日志信息。如果日志里包含类似以下信息

“19:03:42 shmget: [EEXIST][17]: key 52564801: shared memory already exists

19:03:42 mt_shm_init: can’t create resident segment”,

表示数据库的内存段已经被占用,可能的情况是:

1)当前实例已经启动,即通过onstat -命令检查状态,如果已经是On-Line状态,即“On-Line -- Up 2 days 02:26:54 -- 23185760 Kbytes”

表示数据库不需要再初始化或者重新启动,保持现有状态即可。

2)当前实例未启动,即通过onstat -命令检查状态,如果已经是未启动状态,即“shared memory not initialized for GBASEDBTSERVER 'gbase01'”

则表示之前的数据库关闭或者异常时,内存未能及时释放,执行onclean -ky命令强制清理内存,然后通过ipcs -m命令查看key中与报错信息中一致的0x52564801是否存在,如果不存在,可以重新启动数据库实例;如果存在,使用root用户执行ipcrm -M 0x52564801清理共享内存,同时清理0x525648XX 开头各个内存段,完成后可以重新启动数据库实例

评论已关闭