执行初始化或启动时报错
问题描述:
执行数据库初始化或者启动数据库时,报
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 开头各个内存段,完成后可以重新启动数据库实例


热门帖子
- 12023-05-09浏览数:16814
- 22019-04-26浏览数:10235
- 32020-05-11浏览数:10143
- 42023-09-25浏览数:9544
- 52023-07-04浏览数:9446