インスタンスの停止は、インスタンスの起動の逆の操作です。Oracleインスタンスを停止する場合、デフォルト・モードはNORMAL
停止で、ユーザーはデータベースに対して新しい接続を作成できませんが、現在接続されているすべてのユーザーがセッションを終了するまで停止処理は待機します。すべてのユーザーが切断されると、コミット済トランザクションがディスクに書き込まれ、データベース・ファイルが閉じ、インスタンスが停止します。ただし、ユーザーが自分で切断するまで待機しない場合(IMMEDIATE
モード)、あるいはユーザーが切断される前に各ユーザーの現在のトランザクションを完了する場合(TRANSACTIONAL
モード)もあります。緊急の場合には、コミット済トランザクションがディスクに書き込まれるまで待機せずにデータベースを停止する(ABORT
モード)こともできます。
インスタンスの停止には次の段階があります。
すべてのユーザーがそのセッションを終了するか、または切断されると、Oracle Databaseはシステム・グローバル領域(SGA)内のデータをデータファイルおよびオンラインREDOログ・ファイルに書き込みます。チェックポイントがデータファイル上で実行されて、そのヘッダーがインスタンスの停止時点でカレントとマーク付けされます。データファイルとオンラインREDOログ・ファイルが閉じ、データベースの状態がCLOSED
になります。制御ファイルはインスタンスに対してオープンされたままになります。
Oracleインスタンスは制御ファイルで正しく停止されるのを記録するためデータベースおよび更新関連エントリをディスマウントします。制御ファイルはクローズ状態になります。ここで、データベースはクローズされディスマウントされた状態になります。インスタンスはNOMOUNT
状態です。
Oracleインスタンスはバックグラウンド・プロセスを停止し、SGAが使用している共有メモリーを割当て解除します。
SHUTDOWN ABORT
または異常終了が発生すると、オープン状態のデータベースのインスタンスはクローズされ、データベースはただちに停止されます。Oracle Databaseは、SGAのバッファ内のデータをデータファイルとREDOログ・ファイルに書き込みません。データベースを再度開くにはインスタンスのリカバリが必要であり、この処理はOracle Databaseで自動的に行われます。