ハングアップしているプロセスを killする。 注)ハングアップしたSQL等のプロセスを
killする場合には、
kill -15 これで killできない場合は
-3
-1
の順序で、行って下さい。
kill -9 で killを行うと DB が破壊される場合があります。
SQLなどのデータベースプロセスは更新時にロックのリストを内部で管理しています。これは、取得した順番でつながっていて開放する時もこの順序で開放します。
row 1 --> row 2 --> row 3 ロック取得
row 1 <-- row 2 <-- row 3 ロック開放
もし、この状態で kill -9 でプロセスが強制終了させられるとこのロックリストの情報がなくなってしまうので、これを開放させる事は出来ません。
また、コマンドラインからチェックする方法もありません。
したがって、取得しようとしたロックが dead process によって保持されている場合そのデータベースプロセスは
-23 "記述されたプロセスIDを持ったプロセスがありません" のエラーを出力して終了する仕様になっています。
もし、そのデータベースプロセスがデーモンの場合、その時点でデータベースダウンにつながり SQL
などが起動できなくなります。
dead process によって保持されているロックを参照しないプロセスはそのまま処理を続行できる場合もあります。
|