Previous Topic: 手動リカバリNext Topic: オフライン フル バックアップからのリカバリ


損失または破損した制御ファイルを含むデータベース全体のリカバリ

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

損失または破損した制御ファイルを含むデータベース全体のリカバリ方法

  1. SQL*Plus のプロンプトで以下のコマンドを入力して、データベースをシャットダウンします。
    SHUTDOWN
    
  2. 適切なプロンプトで、リカバリ対象となる Oracle データベースのインスタンスを起動して Oracle データベースをマウントしたら、リカバリを開始します。SQL*Plus プロンプトで、以下のコマンドを入力します。
    CONNECT SYS/SYS_PASSWORD AS SYSDBA;
    STARTUP MOUNT;
    RECOVER DATABASE USING BACKUP CONTROLFILE;
    
  3. アーカイブ ログ ファイルの名前を入力するよう求められます。Oracle データベースによってアーカイブ ログ ファイルを自動的に適用することもできます。必要なアーカイブ ログ ファイルが見つからない場合は、オンライン REDO ログを手動で指定する必要がある場合があります。

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

    RECOVER DATABASE USING BACKUP CONTROLFILE;
    

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

  4. SQL*Plus のプロンプトで以下のコマンドを入力して、データベースをオンラインに戻し、ログをリセットします。
    ALTER DATABASE OPEN RESETLOGS;
    
  5. アーカイブ REDO ログが保管されているディレクトリに移動し、すべてのログ ファイルを削除します。
  6. オフラインの表領域がある場合は、SQL*Plus のプロンプトで以下のコマンドを入力して、オフラインの表領域をオンラインに戻します。
    ALTER TABLESPACE TABLESPACE_NAME ONLINE;
    
  7. RMAN を使用して、バックアップされた制御ファイルによってデータベース全体をリカバリする場合は、RMAN でデータベース情報を再同期して、新規にリカバリされたデータベースを反映させます。データベース情報を再同期する方法
    1. Oracle Database ソフトウェアを所有するユーザ アカウントに切り替えます。
    2. 以下のコマンドを入力して、Oracle データベースの SID を、リカバリされたデータベースの SID に設定します。
      ORACLE_SID=database SID
      
    3. 以下のコマンドを入力して、処理を完了します。
      rman target dbuser/ dbuserpassword rcvcat
      catowner/catownerpassword@rman service name
      reset database
      

      各エントリの内容は以下のとおりです。

      • dbuser - リカバリされたデータベースに対する dba 権限を持つユーザ
      • dbuserpassword - dbuser のパスワード
      • catowner - Oracle Recovery Manager カタログ所有者の Oracle ユーザ名
      • rman service name - RMAN カタログがインストールされているデータベースへのアクセスに使用するサービスの名前