私の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
2017-08-16 03:44:34 GMT LOG:高速シャットダウン要求を受け取りました
誰かがpg_ctl -m fast stop
を実行し、次にpg_ctl start
を手動またはWindowsサービスコントローラ(services.msc
、net service
、...)を介して実行しました。
それがあなたではなかった場合、それはスケジュールされたジョブ、非公式のサードパーティによるPostgreSQLに関連するツールの自動更新などでした。システムが歴史上最も神秘的に幸運な宇宙線に見舞われない限り、それが起こったからです。
PostgreSQL SQL環境内からPostgreSQLを再起動する方法はありません(PgAdmin、psql
などによるSQL接続)。データベースのスーパーユーザーとして接続していて、これらの言語がインストールされている場合は、plpythonu
やplperlu
などの信頼できない手続き型言語から信号を送信することでそれを行うことができます。しかしそれ以外の場合は、ポストマスタープロセスに通知するなどして、pg_ctl
を使用してコマンドシェルレベルで実行されます。