Oracle shutdown immediate データベースを終了できない時の対処法
シャットダウン・イミディエイトコマンドを使用して Oracle データベースをシャットダウンしようとするとシャットダウンできないのは、次の問題が考えられます。
- 他の会話がデータベースを使用中の為、終了できません。現在の活動会話を見るには、以下コマンドを使用します。
select * from v$session;
これらのセッションを終了することで、次のようにデータベースをシャットダウンできます。
natively in japanese, only need one option:alter system kill session ‘sid,serial#’;
- 未コミットなトランザクションがあり、それによってシャットダウンが妨げられている。次のコマンドは、現在未コミットのトランザクションを表示するために使用できる。
natively in japanese:
SELECT * FROM V$TRANSACTION;
未コミットのトランザクションをロールバックすることでデータベースをシャットダウンできます。コマンドは次のとおりです。
ロールバック
- 長時間実行中の操作(長時間に及ぶクエリ、DML 操作など)によりデータベースがシャットダウンできない場合は次のコマンドを使用して現在実行中の SQL ステートメントを確認できます。
select * from v$sql;
これらの長時間実行操作を終了することで、以下のコマンドでデータベースをシャットダウンできます。
alter system kill session ‘sid,serial#’;
上述方法それでも解決しない場合は、次のコマンドで強制シャットダウンしてみてください。
shutdown abort;
データベースの強制シャットダウンは、データの損失やデータベースの破損につながる可能性があるので注意してください。慎重に行ってください。また、重要なデータのバックアップを取ってください。さらに、データベースをシャットダウンする前はデータベース管理者に相談し、データベースをバックアップしてください。