フラッシュリカバリーエリア (FRA) がいっぱいで、データベースにログインできないときに Oracle データベースを再起動する方法 - WKB55931
Article number: 55931To English version
目的または目標
FRA がいっぱいで、データベースが故障している場合、Oracle データベースを再起動する。(データベースを「マウント」状態で再起動することはできず、SQL * Plus を使用したデータベースへのログインは不可能です。)
環境
- Oracle データベースを使用するすべての Waters 製品
手順
- フラッシュリカバリーエリアの 2 倍になるように、データベースの初期化パラメーターを変更します。
- エラーメッセージについては、alert_sdms.log ファイルを参照してください。
- 大きすぎてメモ帳で開かない場合は、アラートログの名前を変更します
- Oracleによってアラートログが再作成されるように、起動エラーを再び起こします。
- エラーメッセージにより、フラッシュリカバリーエリアがいっぱいになったことが示されます。そのエリアのパス、パラメーター名、値が得られます。
- データベースで init.ora ファイルを探します。通常は存在しませんが、SQL*Plus ロンプトで「create pfile from spfile」を使用するか、ドライブ:\oracle\product\11.2.0\admin\sdms\pfile のバックアップコピーから作成できます。
- そのファイルをコピーします。db_recovery_file_dest_size が現在の値の 2 倍になるように、コピーを編集します。
- pfile の db_recovery_file_dest パラメーターが、アクティブな flash_recovery_area のと同じであることを確認してください。pfile では、そのパラメーターの古い値になっていることがあります。
- Init.ora の control_files パラメーターが spfile のそのパラメーターと一致することを確認します。メモ帳で spfile を開き、control_files の現在の値を取得します。この値を init.ora にコピーし、init ファイルの構文と一致させます。これにより、データベースの起動時に、古いまたは存在しない制御ファイルへのパスではなく、現在の制御ファイルが使用されます。
- ファイルの名前を initServiceName.ora に変更します。ここで ServiceName は、影響を受けるデータベースインスタンスのサービス名です。以下は Waters 製品の既定のサービス名です。
- NuGenesis LMS および SDMS:SDMS
- NuGenesis Stability:SLIM
- Empower 3:WAT12
- initServiceName.ora ファイルを次の場所にコピーします。
- NuGenesis 8:ドライブ:\oracle\product\11.2.0\SDMS\database
- NuGenesis 9:ドライブ:\oracle\product\12.2.0\Oracle12cR2\database
- Empower 3:ドライブ:\Empower\Oracle12c\database
- 既存の SP* .ORA ファイルの名前を .OLD に変更します。spfile が存在する場合、Oracle は init ファイルを使用しません
- データベースインスタンスの Oracle サービスを再起動します
- Sqlplus の「idle>」プロンプトで、コマンドを実行します(または、initServiceName.ora へのフルパスを指定します)。
- 起動 pfile = initServiceName.ora
- データベースは新しいパラメーターを使用して起動します。リカバリー領域の上限が 2 倍になった場合には、起動に成功するはずです。
- 次のコマンドを使用して、変更したパラメーターを永続的にします。
- create spfile from pfile
- データベースをシャットダウンして起動し、データベースが spfile で起動することを確認します
- エラーメッセージについては、alert_sdms.log ファイルを参照してください。
- 古いバックアップセットを FRA から削除します。
- RMAN にログインし、「crosscheck archivelog all」コマンドを発行します。
- NuGenesis または Empower データベースの標準のバックアップ手順が適切に実行されていることを確認します。
追加情報
データベースにログインできない場合(例えば、データベースインスタンスが FRA エラーによりシャットダウンされ、TNS リスナーに登録されなかった場合)、上記のステップ 1.7 は実行できません。この場合、まずどのインスタンスが TNS に登録されているかを、以下のコマンドで確認します。
- lsnrctl status
インスタンスがそのリストにない場合:
- spfileServiceName.ora ファイルを \database フォルダーから削除します。
- initServiceName.ora ファイルを \database フォルダーにコピーします。
- インスタンスを再起動します。
spfile が存在しない場合、起動時に Oracle はインスタンスに init ファイルを使用しますが、コマンドラインで何も指定する必要はありません。インスタンスは TNS に登録され、tnsping および sqlplus を介して使用可能になっている必要があります。sqlplus を使用してインスタンスに SYSDBA としてログインし、上記の手順の残りのステップを続行します。
id55931, TNS listener