例: PDB内の1つまたは複数のデータ・ブロックのリストアおよびリカバリ

ブロック・メディア・リカバリを使用すると、データ・ファイルをオンラインにしたまま1つ以上の破損データ・ブロックをリカバリできます。この例では、ブロック・メディア・リカバリを実行して、1つ以上の破損データ・ブロックをリカバリする方法を示します。

関連項目:

Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド

破損データ・ブロックが存在することを示すには、次のいずれかの方法を使用します。

  • 保護されたデータベースのアラート・ログに、1つ以上のブロックが破損していることを示す次のメッセージを追加します。

    Sun Aug 17 09:34:48 2014
    Hex dump of (file 2, block 16385) in trace file /u01/app/oracle/diag/rdbms/dbstress/dbstress/trace/dbstress_ora_9732.trc
     
    Corrupt block relative dba: 0x00004001 (file 2, block 16385)
    Fractured block found during backing up datafile
    Data in bad block:
     type: 6 format: 2 rdba: 0x00004001
     last change scn: 0x0000.00a564c0 seq: 0x1 flg: 0x06
     spare1: 0x0 spare2: 0x0 spare3: 0x0
     consistency value in tail: 0x00000000
     check value in block header: 0xd6dd
     computed block checksum: 0x58f7
    
  • RMANバックアップ中にブロック破損が検出された場合は、次のようなメッセージを表示します。

    RMAN-08038: channel c3: starting piece 1 at 2014/08/17 09:34:43
    RMAN-03009: failure of backup command on c1 channel at 08/17/2014 09:34:50
    ORA-19566: exceeded limit of 0 corrupt blocks for file /SHARED1/ORADATA/DBF/dbstress/soe.dbf
    .
    .
    RMAN-03002: failure of backup plus archivelog command at 08/17/2014 09:35:55
    RMAN-03009: failure of backup command on c1 channel at 08/17/2014 09:34:50
    ORA-19566: exceeded limit of 0 corrupt blocks for file /SHARED1/ORADATA/DBF/dbstress/soe.dbf
    

保護されたデータベースの破損データ・ブロックをリストアおよびリカバリするには:

  1. 「リカバリ・アプライアンスからデータをリストアおよびリカバリするための前提条件」で説明している前提条件を満たしていることを確認します。
  2. 「CLIを使用した保護されたデータベースとリカバリ・アプライアンスへの接続」の説明に従って、RMANを使用して保護されたデータベースにTARGETとして接続し、リカバリ・アプライアンス・カタログにCATALOGとして接続します。
  3. リカバリする必要のある破損ブロックを特定します。

    保護されたデータベースのアラート・ログ内のエントリを使用して、破損ブロックおよびその破損ブロックが含まれているデータ・ファイルを特定します。または、V$DATABASE_BLOCK_CORRUPTIONビューを問い合せて、破損ブロックを特定します。

  4. BLOCKRECOVERコマンドを使用して、破損データ・ブロックをリカバリします。

    次の例では、データ・ファイル4のデータ・ブロック46、56および84をリカバリします。

    RUN
    {
      BLOCKRECOVER CORRUPTION LIST;
      BLOCKRECOVER DATAFILE 4 BLOCK 46,56,84;
    }