web-dev-qa-db-ja.com

RMANリストアデータベースプレビューについてレポートするv $またはrcビュー

セットアップ:

次を使用して、レベル0の増分バックアップを毎週実行します。

RMAN> backup as compressed backupset incremental level 0 database;
RMAN> backup check logical as compressed backupset (archivelog all delete all input);

次の方法で、レベル1の増分バックアップを毎晩(レベル0の増分バックアップを取る夜を除いて)行います。

RMAN> backup as compressed backupset incremental level 1 database;
RMAN> backup check logical as compressed backupset (archivelog all delete all input);

RMANでは、リカバリを開始するタイミングと、データファイルのあいまいさを解消してデータベースを一貫した状態にするためにどのSCNを復元する必要があるかについて、次のようにレポートできることを知っています。

RMAN> restore database preview;

Media recovery start SCN is 49928711194
Recovery must be done beyond SCN 49928711196 to clear datafile fuzziness

これは、restore database;を発行した場合、データベースを開く前にSCNの49928711194を49928711196に回復する必要があることを示しています。

ここから、使用可能なアーカイブログバックアップと、これらのアーカイブログバックアップに含まれるSCNを照会できることがわかります。

SELECT sequence#, first_change#, next_change#, id2, handle from (
  SELECT sequence#, first_change#, next_change#, id2
    FROM v$backup_archivelog_details where 49928711194 between first_change# and next_change#
UNION
  SELECT sequence#, first_change#, next_change#, id2
    FROM v$backup_archivelog_details where 49928711196 between first_change# and next_change#) archivelog
  JOIN v$backup_piece p
    ON archivelog.id2=p.set_count;

SEQUENCE#   FIRST_CHANGE#   NEXT_CHANGE#    ID2     HANDLE
22030       49923438913     49928711521     7940    L:\Oracle\BACKUPS\Arch_2_7940_1

私の質問は:v$ビューまたはrcビューをクエリして、開始SCNおよびRMAN> restore database preview;が提供するSCNを超えるSCNを取得して、特定のデータファイルのあいまいさを解消する方法はありますかバックアップセット?

2
Kris Johnston

V $ BACKUP_DATAFILE

V $ BACKUP_DATAFILEは、制御ファイルからのバックアップ・セット内の制御ファイルおよびデータファイルに関する情報を示します。

Media recovery start SCN is 7962109213
Recovery must be done beyond SCN 7962156379 to clear datafile fuzziness 
Finished restore at 28-JUN-2017 09:27:17

そして、私が興味を持っているのはABSOLUTE_FUZZY_CHANGE#およびCHECKPOINT_CHANGE#そのビューの列。

CHECKPOINT_CHANGE#:チェックポイント変更番号までのすべての変更がこのバックアップに含まれます

ABSOLUTE_FUZZY_CHANGE#:このバックアップで最大の変更番号

次のクエリを使用して、RMANのリストアプレビューコマンドと同じ結果を得ました。

SQL>   select max(absolute_fuzzy_change#) fuzz#, max(checkpoint_change#) chkpnt# from
                        (select file#, completion_time, checkpoint_change#, absolute_fuzzy_change# from v$backup_datafile
                        where  trunc(completion_time) = to_date('JUN-28-2017','MON-DD-YYYY')
                        and file# <> 0
                        order by completion_time desc
                        ); 

     FUZZ#    CHKPNT#
---------- ----------
7962156379 7962109213
1
JSapkota