点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!! 2024年2月某业务GP集群进入恢复模式,所有业务数据进入只读,无法写入。
检查数据库segment状态正常,但是psql登录不进去。FATAL: DTM initialization: failure during startup recovery, retry failed, check segment status
检查数据库segment状态正常,但是psql任然登录不进去。FATAL: DTM initialization: failure during startup recovery, retry failed, check segment status
2.5 对GP数据库进行第三次重启操作(使用gpstop -M fast命令),GP库恢复正常
3.1 进入恢复模式原因

3.2 两次重启失败原因
最初重启时使用Postgresql提供的pg_ctl 工具仅会重启master实例, 且是直接终止 Greenplum 数据库的主 Master 进程,而不会像 gpstop 命令那样执行优雅的停止过程,包括回滚当前进行的事务;这时有一个segment上的postmaster服务进程没有被停止,导致DTM初始化失败;虽然后续节点状态恢复正常,但DTM初始化阶段失败导致无法接受客户端连接请求;后续使用 gpstop 命令优雅停止整个集群,DTM在master启动时初始化成功,集群功能恢复正常。备注:使用 pg_ctl stop -D data1/master/gpseg-1 -m fast 停止master后,有一个segment上的进程仍在提供服务,导致重启时DTM初始化失败。备注:重新使用 gpstop -M fast命令停止整个集群,然后用 gpstart -a 重启,没有再出现Postmaster进程未关闭的问题。总 结:
切记使用:gpstop -M fast 命令以及 gpstart -a 命令去优雅地重启GreenPlum数据库的所有实例,避免重启后出现异常。