Previous Topic: データベース全体のリカバリNext Topic: 表領域またはデータ ファイルのリカバリ


データベース全体および制御ファイルのリカバリ

制御ファイルが消失または破損した場合は、まず Oracle データベースをシャットダウンし、データベース全体をリカバリする前に、制御ファイルをリストアする必要があります。

データベースをシャットダウンして制御ファイルをリストアする方法

  1. SQL*Plus のプロンプトで以下のコマンドを入力して、データベースをシャットダウンします。
    SHUTDOWN
    
  2. Oracleのホーム ディレクトリに移動します。Agent for Oracleのホーム ディレクトリにリストアされた制御ファイルを、元のロケーションにコピーします。
  3. コピーした制御ファイルの名前を、元の制御ファイルの名前に変更します。

    注:この手順によって元の制御ファイルがリストアされます。リストアした制御ファイルの名前は、必ず元の制御ファイルの名前に変更する必要があります。

  4. リカバリ対象となるデータベースのインスタンスを起動してデータベースをマウントしたら、リカバリを開始します。

    SQL*Plus のプロンプトで、以下を入力します。

    CONNECT SYS/SYS_PASSWORD AS SYSDBA;
    STARTUP MOUNT;
    RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
    
  5. アーカイブ ログ ファイルの名前を入力するよう求められます。Oracle データベースによってアーカイブ ログ ファイルを自動的に適用することもできます。必要なアーカイブ ログ ファイルが見つからない場合は、オンライン REDO ログを手動で指定する必要がある場合があります。

    オンライン REDO ログを手動で適用する際には、フル パスとファイル名を指定する必要があります。間違ったREDOログを指定してしまった場合は、以下のコマンドを再入力します。

    RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
    

    プロンプト上で正しいオンライン REDO ログ ファイルを指定します。すべての REDO ログが適用されるまで、上記の手順を繰り返します。

  6. SQL*Plus のプロンプトで以下のコマンドを入力して、データベースをオンラインに戻し、ログをリセットします。
    ALTER DATABASE OPEN RESETLOGS; 
    
  7. アーカイブ ログ ファイルが格納されているディレクトリを参照して、すべてのアーカイブログ ファイルを削除します。
  8. オフラインの表領域がある場合は、SQL*Plus のプロンプトで以下のコマンドを入力して、オフラインの表領域をオンラインに戻します。
    ALTER TABLESPACE TABLESPACE_NAME ONLINE;