oracle shutdown immediate の処理が完了しない場合の対処方法
Oracleデータベースのシャットダウンコマンド「shutdown immediate」が反応しない場合、以下の回避策があります。
- 強制終了: 管理者権限でコマンドプロンプトまたはターミナルで次のコマンドを実行し、Oracleデータベースプロセスを強制終了します。
sqlplus / as sysdba
shutdown abort
この方法は、データベース処理をすぐに終了させますが、未完了トランザクションのロールバックと、データベースのリカバリにつながる可能性があります。
- データベースを手動でシャットダウンするには、コマンドプロンプトまたはターミナルで次のコマンドを管理者権限で実行します。
sqlplus / as sysdba
shutdown
指示に従って、”immediate”、”transactional”、”normal”など、該当するシャットダウンモードを選択します。
- OSのツール(タスクマネージャなど)でオラクルデータベースのプロセスが存在するかを確認します。存在する場合は、それらのプロセスを終了させてください。そのうえで「シャットダウンインメディアット」コマンドでのデータベースの終了を再試行してください。
- データベースの状態を確認する: 次のコマンドでデータベースの状態を照会します。
sqlplus / as sysdba
select status from v$instance;
「SHUTDOWN」状態の場合は、データベースは停止しています。
「STARTUP」状態の場合、データベースは起動中です。「shutdown immediate」コマンドでデータベースを停止する前に起動が完了するまで待ってください。
ステータスが「OPEN」などの想定外の値となっている場合は、データベースに異常が発生している可能性があるので、詳細に調査する必要があります。
- ログファイルの確認: データベース警告ログファイルに異常情報がないか、下記コマンドで確認してください。
sqlplus / as sysdba
show parameter background_dump_dest;
オペレーティングシステムのファイルシステム内でそれを見つけ、関連するログファイルを確認します。
エラーや例外に関する情報がログファイルに記載されている場合は、内容に応じて解決します。
上記で解決できなかった場合、Oracleデータベース管理者や技術サポートに連絡して、詳細なトラブルシューティングおよび修復を実施することをお勧めします。