この状態を修正するには、データベースクラスターを pg_ctl stop で停止する必要があります。停止が完了したら、LifeKeeper の In Service アクションは成功します。

現象:

PostgreSQL サーバーリソースのリストアは、サーバークラッシュのためにデータベースクラスターが正常にシャットダウンしなかった場合、またはシャットダウン時に PostgreSQL サービスがハングアップした場合(ハングアップのシミュレーションに windbg を使用した場合)に失敗する可能性があります。正常にシャットダウンできないと、次回の起動時にデータベースクラスターの復旧処理が強制されます。この復旧処理により、Windows サービスの開始アクションが失敗し、サービスがデータベースクラスターの状態と矛盾した状態になる可能性があります。

不完全なシャットダウン後の起動時に、PostgreSQLは 次のメッセージを(他の多くのログと共に)記録する場合があります。

Waiting for server start up

LOG: database system was interrupted; last known up at 2017-07-25 16:12:10 EDT

FATAL: the database system is starting up

LOG: database system was not properly shut down; automatic recovery in progress

リカバリーが完了すると、PostgreSQL データベースのクラスタープロセスは実行中になりますが、Windows サービスの状態は「停止」になり、LifeKeeper PostgreSQL リソースは失敗した状態になります。 LifeKeeper のリストア処理がデータベースクラスターの稼働中に試行されると、PostgreSQL は次のメッセージを記録します。

FATAL: lock file “postmaster.pid” already exists

HINT: Is another postmaster (PID 3488) running in data directory “E:/PGSQL1”?

推奨する対応:

この状態を修正するには、リカバリーの完了後にデータベースクラスターを pg_ctl stop で停止する必要があります。停止が完了したら、LifeKeeper の In Service アクションは成功します。

フィードバック

お役に立ちましたか?

はい いいえ
お役に立ちましたか
理由をお聞かせください
フィードバックありがとうございました

このトピックへフィードバック

送信