意外的 PostgreSQL 重启

Pav*_*nov 6 postgresql pg-hba.conf

我的 PostgreSQL 服务器意外重启并显示以下消息:

2017-08-16 03:44:34 GMT LOG:  received fast shutdown request
2017-08-16 03:44:34 GMT LOG:  aborting any active transactions
2017-08-16 03:44:34 GMT FATAL:  terminating connection due to administrator command
2017-08-16 03:44:34 GMT FATAL:  terminating connection due to administrator command
2017-08-16 03:44:34 GMT LOG:  autovacuum launcher shutting down
2017-08-16 03:44:34 GMT LOG:  shutting down
2017-08-16 03:44:34 GMT LOG:  database system is shut down
2017-08-16 03:46:04 GMT LOG:  incomplete startup packet
2017-08-16 03:46:04 GMT LOG:  database system was shut down at 2017-08-16 03:44:34 GMT
2017-08-16 03:46:04 GMT LOG:  MultiXact member wraparound protections are now enabled
2017-08-16 03:46:04 GMT LOG:  database system is ready to accept connections
2017-08-16 03:46:04 GMT LOG:  autovacuum launcher started
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?

配置详情:

OS: Ubuntu 16.04.1 LTS (Windows Azure VM)
PostgreSQL version: 9.5.8
listen address: * (my bad, but Azure have to block another ports from external access.
                   I didn't enable PG 5432 port for external access) 
HBA config:
local   all             postgres                                ident
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5
host    all             all             10.0.0.0/24             md5
host    replication     app_replicator 10.0.0.5/32              md5
local   all             all                                     peer
Run Code Online (Sandbox Code Playgroud)

小智 6

就我而言,由于系统内存不足,这种情况自动发生。

在 Syslog 中找到有关 oom_reaper 和 dotnet oom 任务的日志,但没有从 Postgres 中找到。我只在 Postgres csvlog 中收到消息“收到快速关闭请求”。

PS:由于我的 Postgres 在 Docker 内部运行,我不能相互排除 Docker 发送了信号并强制关闭(但我不认为这一点)


Cra*_*ger 4

2017-08-16 03:44:34 GMT 日志:收到快速关闭请求

有人手动或通过 Windows 服务控制器执行了pg_ctl -m fast stopthen操作( , , ...)。pg_ctl startservices.mscnet service

如果不是你,那么这就是一项预定的工作,来自某个非官方第 3 方的与 PostgreSQL 相关的某些工具的自动更新等等。因为除非你的系统被历史上最神秘的幸运宇宙射线击中,否则就会发生这种情况。

无法从 PostgreSQL SQL 环境(通过 PgAdminpsql等的 SQL 连接)重新启动 PostgreSQL。您可以通过从不受信任的过程语言发送信号来完成此操作,例如plpythonu或者plperlu如果您作为数据库超级用户进行连接并且安装了这些语言。pg_ctl但除此之外,它可以通过向 postmaster 进程发出信号等在命令 shell 级别完成。

  • 就我而言,我查看了“/var/log/apt/history.log”,发现“无人值守升级”导致更新某些 postgres 工具后重新启动 (2认同)