KingbaseES V8R6数据库运维案例之---kingbase.pid缺失无法关闭数据库服务

案例说明:
在执行sys_ctl正常关闭数据库服务时,提示缺失kingbase.pid文件,关闭数据库服务失败。
适用版本:
KingbaseES V8R3/R6

一、问题现象
如下图所示,在执行数据库服务的关闭时,提示‘kingbase.pid’文件缺失,无法正常关闭数据库(三种方式都不行):

二、问题分析
kingbase.pid文件类似一个进程锁,保证我们不会对同一个数据库集群"启动多次"。当数据库服务启动时创建,当数据库正常关闭时自动删除。

1、查看进程文件内容

[kingbase@node201 bin]$ cat ../data/kingbase.pid
3076
/home/kingbase/cluster/R6/R6HA/kingbase/data
1695021590
54321
/tmp
*
 54321001     98305
ready

如下图所示,kingbase.pid文件内容:

2、pid文件对应内容解析

1)数据库进程id

[kingbase@node201 bin]$ ps -ef |grep kingbase
kingbase  3076     1  0 15:19 ?        00:00:02 /home/kingbase/cluster/R6/R6HA/kingbase/bin/kingbase -D /home/kingbase/cluster/R6/R6HA/kingbase/data

2)postmater文件创建时间

test=#  select pg_postmaster_start_time();
   pg_postmaster_start_time
-------------------------------
 2023-09-18 15:19:51.075855+08
(1 row)

test=# select extract(epoch from '2023-09-18 15:19:51.075855+08'::timestamp);
     date_part
-------------------
 1695050391.075855
(1 row)

3)数据库服务网络通讯配置

test=# show port;
 port
-------
 54321
(1 row)

test=# show unix_socket_directories ;
 unix_socket_directories
-------------------------
 /tmp
(1 row)

test=# show listen_addresses ;
 listen_addresses
------------------
 *
(1 row)

4)共享内存地址key

[root@node201 ~]# ipcs -m

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0x00000072 0          root       444        1          14
0x033ce351 98305      kingbase   600        56         10

三、问题解决
编辑一个pid文件,将kingbase的主进程的pid写入后,数据库服务被自动关闭。

[kingbase@node201 data]$ cat kingbase.pid
 3076  

四、问题总结
kingbase.pid文件是数据库服务主进程(postmaster)启动时,创建的进程锁文件,在数据库关闭时,也需要读取,要保证pid文件的安全,在生产环境中不要误删除。

posted @   天涯客1224  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示