以下の3つの方法があります。
Fastモードによる停止
バックアップが実行中であった場合はバックアップを終了させ、すべての実行中のトランザクションをロールバックして、クライアントとの接続を強制的に切断した後、インスタンスを停止します。
Immediateモードによる停止
インスタンスを即座に強制的に終了させます。インスタンスの再起動時にはクラッシュリカバリが実行されます。
サーバプロセスの強制停止
他の方法を実施しても停止できない場合に、サーバプロセスを確実に停止させます。
pg_ctlコマンドに“-m fast”を指定してインスタンスを停止します。
この方法を実施しても停止が失敗する場合は、“13.11.2.2 Immediateモードによる停止”、または“13.11.2.3 サーバプロセスの強制停止”に従った停止を実施してください。
例
> pg_ctl stop -D D:\database\inst1 -m fast
pg_ctlコマンドに“-m immediate”を指定してインスタンスを停止します。
この方法を実施しても停止が失敗する場合は、“13.11.2.3 サーバプロセスの強制停止”に従って停止を行ってください。
例
> pg_ctl stop -D D:\database\inst1 -m immediate
Fastモード、Immediateモードのいずれの方法でも停止できない場合は、pg_ctlコマンドのkillパラメータを使用してサーバプロセスを強制停止します。
手順を以下に示します。
wmicコマンドを実行して、サーバプロセスのプロセスIDを特定します。
c:\>wmic
wmic:root\cli>process where "name = \"postgres.exe\"" get CommandLine,Name,ProcessId
CommandLine Name ProcessId
~
"C:\Program Files\Fujitsu\fsepv<x>server64\bin\postgres.exe" -D "D:\database\inst1" postgres.exe 896
~
-Dオプションの引数に、該当するインスタンスのデータ格納先のディレクトリが示されているpostgres.exeのプロセスID(896)が、サーバプロセスになります。
サーバプロセスを強制停止します。
インスタンス管理者で、pg_ctlコマンドによりサーバプロセスの強制停止を行います。
c:\>pg_ctl kill QUIT 896