因处于回放状态导致停库时间过长的问题

一、问题现象

使用cm_ctl stop命令之后,停库时间过长。

二、定位方法

1.进入$GAUSSLOG/cm/cm_agent日志,搜索关键字dms_contrl.sh -clean,查看有没有正常调用dms_contrl.sh脚本;

2.进入$GAUSSLOG/pg_log日志,搜索 Gaussdb exit(0)字样,如果未出现则认为数据库并非正常退出;

3.重新启动数据库以后,观察 GAUSSLOG/pg_log日志是否存在 Recovery 字样的日志,如果有则认为刷脏页时间过长,导致脚本无法正常通过gs_ctl stop优雅关闭,而是gaussdb进程被直接kill掉,导致重新启动以后进入Recovery模式。

三、问题根因

正常执行cm_ctl stop时,CM会调用 dms_contrl.sh 脚本去停库,但是由于当前数据库刷脏页时间过长, gs_ctl stop在规定时间内未能正常停库,dms_contrl.sh会强制kill掉数据库。

意见反馈
编组 3备份
    openGauss 2025-06-07 22:42:34
    取消