以下の3つの方法があります。
Fastモードによる停止
バックアップが実行中であった場合はバックアップを終了させ、すべての実行中のトランザクションをロールバックして、クライアントとの接続を強制的に切断した後、インスタンスを停止します。
Immediateモードによる停止
インスタンスを即座に強制的に終了させます。インスタンスの再起動時にはクラッシュリカバリが実行されます。
サーバプロセスの強制停止
他の方法を実施しても停止できない場合に、サーバプロセスを確実に停止させます。
pg_ctlコマンドに“-m fast”を指定してインスタンスを停止します。
この方法を実施しても停止が失敗する場合は、“7.11.2.2 Immediateモードによる停止”、または“7.11.2.3 サーバプロセスの強制停止”に従った停止を実施してください。
例
> pg_ctl stop -D D:\database\inst1 -m fast
pg_ctlコマンドに“-m immediate”を指定してインスタンスを停止します。
この方法を実施しても停止が失敗する場合は、“7.11.2.3 サーバプロセスの強制停止”に従って停止を行ってください。
例
> pg_ctl stop -D D:\database\inst1 -m immediate
Fastモード、Immediateモードのいずれの方法でも停止できない場合は、pg_ctlコマンドのkillパラメタ、またはtaskkillコマンドを使用してサーバプロセスを強制停止します。
手順を以下に示します。
tasklistコマンドを実行します。
c:\>tasklist /V /FO CSV /NH /FI "IMAGENAME eq smss.exe" "postgres.exe","896","Console","0","44 K","Running","NT AUTHORITY\SYSTEM","0:00:00","N/A"
プロセスID(896)がサーバプロセスになります。
サーバプロセスを強制停止します。
インスタンス管理者で、サーバプロセスの強制停止を行います。
c:\>pg_ctl kill SIGQUIT 896
c:\> taskkill /PID 896 /T