Oracle Databaseが停止しなくなった時の停止(強制停止)の方法

islands Oracle DB

理由ははっきりしませんが、手元の環境で起動中のOracle Databaseが停止できなくなったため、強制停止することにしました。

スポンサーリンク

確認したOSとバージョン

Windows 10

どういう場合に使えるか

  • 普通にshutdownコマンドで停止しようとしてできない場合
  • 更新や参照トランザクションが動いているがロールバック・切断されても問題ない場合

手順

⇓ 今回はこれで、十分です。

sqlplus / as sysdba
SQL> shutdown abort

ただし、上記の停止方法の場合、
REDOログにデータ更新の差分だけが出力され、
ディスク上のテーブルスペースには更新結果が記録されません。
そのため、次回起動時に、クラッシュリカバリが動作し、
長くて頻繁な更新トランザクションがあった場合には、
クラッシュリカバリに時間がかかります。
また、停止前に実行していたトランザクションはロールバックされます。

以上のようなことがあっても問題が無い場合に使えます。

他にも、下記の停止方法がありますが、これらはクライアントアプリケーションの処理内容を、ある程度守る代わりに強制力が弱くなります。

shutdown immediate … 動作中のトランザクションをロールバックさせてからインスタンスに接続しているクライアントを切断して停止
shutdown transactional … 動作中のトランザクションの完了を待っってからインスタンスに接続しているクライアントを切断して停止
shutdown … すべてのクライアントが接続を切るまで待ってから停止

それにしても、なぜ、shutdownで停止できなかったのか。。。わかれば記事にしたいと思います。

0

コメント

タイトルとURLをコピーしました