web-dev-qa-db-ja.com

予期しないPostgreSQLの再起動

私の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

その理由は何でしょうか?

構成の詳細:

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
3
Pavel Naydenov

2017-08-16 03:44:34 GMT LOG:高速シャットダウン要求を受け取りました

誰かがpg_ctl -m fast stopを実行し、次にpg_ctl startを手動またはWindowsサービスコントローラ(services.mscnet service、...)を介して実行しました。

それがあなたではなかった場合、それはスケジュールされたジョブ、非公式のサードパーティによるPostgreSQLに関連するツールの自動更新などでした。システムが歴史上最も神秘的に幸運な宇宙線に見舞われない限り、それが起こったからです。

PostgreSQL SQL環境内からPostgreSQLを再起動する方法はありません(PgAdmin、psqlなどによるSQL接続)。データベースのスーパーユーザーとして接続していて、これらの言語がインストールされている場合は、plpythonuplperluなどの信頼できない手続き型言語から信号を送信することでそれを行うことができます。しかしそれ以外の場合は、ポストマスタープロセスに通知するなどして、pg_ctlを使用してコマンドシェルレベルで実行されます。

3
Craig Ringer