ヘッダーをスキップ

Oracle Database バックアップおよびリカバリ基礎
10gリリース2(10.2)

B19193-02
目次
目次
索引
索引

戻る 次へ

A Recovery Managerベースのディスクおよびテープのバックアップ計画の例

この付録では、Recovery Manager、増分更新バックアップおよびフラッシュ・リカバリ領域を効果的に使用する、ディスクのみのバックアップ計画およびディスクとテープベースのバックアップ計画のいくつかについて説明します。

この付録では、次の項目について説明します。

フラッシュ・リカバリ領域へのバックアップ: 基本的な例

次に示すすべての例では、Recovery Manager環境およびフラッシュ・リカバリ領域が「ディスク・ベースのバックアップ用のフラッシュ・リカバリ領域の構成: 例」のように構成されていることを前提としています。

ディスク専用バックアップのスクリプト作成

バックアップ・スクリプトの動作の詳細は、データベースの負荷および割り当てられているディスク領域の量に依存します。次のスクリプトは、データベースの更新パターン、およびディスク上のリカバリ期間のアーカイブに必要なフラッシュ・リカバリ領域に割り当てられた最小限のディスク領域に基づいて分類できます。

少数のデータベース・ブロックが変更される場合、増分バックアップのサイズは、データベースのサイズより大幅に小さくなります。この場合、ディスク領域と他のリソースを有効に利用するために、増分バックアップが最適なバックアップ方法です。

ほとんどまたはすべてのデータベース・ブロックが頻繁に変更される場合、増分バックアップのサイズは、データベースのサイズと同等に大きくなります。この場合、データベースの完全なイメージ・コピーを定期的に作成することが最適なバックアップ方法です。

次の例では、アーカイブ・ログのバックアップは必要ありません。これらのログは、Oracleがフラッシュ・リカバリ領域にアーカイブするためです。アーカイブ・ログは、保存方針で必要とされる間は、フラッシュ・リカバリ領域に残ります。また、すべてのデータベース・バックアップもフラッシュ・リカバリ領域に保存されます。

この項では次の項目を取り上げます。

少数のデータ・ブロックが変更される場合のバックアップ・スクリプト

毎日変更されるデータ・ブロックが少数の場合、増分バックアップのサイズは小さくなるので、毎日の増分バックアップを実行する計画を変更できます。

初期設定

ディスク上のフラッシュ・リカバリ領域の推奨最小サイズは、バックアップの頻度と使用される保存方針によって異なります。

構成済の保存方針がREDUNDANCY Xで、Y日ごとにバックアップを取る場合は、フラッシュ・リカバリ領域の推奨ディスク割当て制限を求める式は、次のようになります。

Disk Quota =
Size of X copies of database +
Size of one copy of incremental backups +
Size of (Y+1) days of archived logs 

保存方針をX日のリカバリ期間に設定し、バックアップ・スクリプトをY日ごとに実行する場合、次のいずれかの式で必要なディスク割当て制限を計算できます。X>=Yの場合、フラッシュ・リカバリ領域の推奨ディスク割当て制限を求める式は、次のとおりです。

Disk Quota =
Size of one copy of database +
Size of (floor(X/Y) + 1) copies of incremental backups +
Size of (X * ceil(X/Y) +1) days of archived logs

この場合、ceil(X/Y)はX/Y以上の最小整数で、floor(X/Y)はX/Y以下の最大整数です。

X <Yの場合、推奨値を求める式は次のとおりです。

Disk Quota =
Size of one copy of database +
Size of 2 copies of incremental backups +
Size of (Y +1) days of archived logs

適切な方の式に従って、フラッシュ・リカバリ領域のサイズを求めます。

次の例では、保存方針がREDUNDANCY 1であると想定しています。

RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 1;

また、バックアップを毎日実行することを想定しています。

毎日実行するスクリプト

毎日バックアップを実行するためのスクリプトは、次のようになります。

RMAN> RECOVER COPY OF DATABASE WITH TAG "whole_db_copy";
# Make an incremental backup of the database to the flash recovery area.
RMAN> BACKUP INCREMENTAL LEVEL 1 
      FOR RECOVER OF COPY WITH TAG "whole_db_copy" 
      DATABASE;

このバックアップ方法の1日目の時点で、"whole_db_copy"というタグが付けられたバックアップが存在しないとします。このスクリプトの実行結果は次のとおりです。

このバックアップ計画は、2月1日に有効になります。次の表に、この計画の結果、フラッシュ・リカバリ領域の内容がどのように変化するかを示します。(フラッシュ・リカバリ領域には、他のバックアップ操作に基づく他のファイルも含まれます。次の表では、このバックアップ計画に関連するファイルについてのみ示します。)

表A-1    少数のデータ・ブロックが変更される場合のバックアップ: バージョン1 
日付  スクリプトの処理  スクリプト実行後のフラッシュ・リカバリ領域の内容 

2月1日(日) 

  1. 増分更新を試行しますが、レベル0のバックアップが存在しないため、処理は実行されません。

  2. レベル0のバックアップを作成します。

 

2月1日 日曜日の時点でのSCNを持つレベル0のイメージ・コピーの増分バックアップ 

2月2日(月) 

  1. 増分更新を試行しますが、レベル1の増分が存在しないため、処理は実行されません。

  2. レベル1の増分をバックアップします。

 

2月1日 日曜日の時点でのSCNを持つレベル0のイメージ・コピーの増分バックアップ、2月1日〜2日の変更を含むレベル1の増分バックアップ、2月1日から今日までのアーカイブ・ログ 

2月3日以降 

  1. レベル0の増分更新を実行し、前日までロールフォワードします。

  2. レベル1の増分をバックアップします。

 

前日のレベル1のSCNまでロールフォワードされたレベル0のイメージ・コピーの増分バックアップ、過去24時間の変更を含むレベル1の増分バックアップ、2月1日から今日までのアーカイブ・ログ

ロールフォワードされたレベル0のバックアップのリカバリには有効でない古い増分バックアップおよびアーカイブ・ログは、フラッシュ・リカバリ領域が不足した時点で自動的に削除されます。 

例を変更する場合(n日分(n > 1)のアーカイブ・ログと増分バックアップを保持できるように、フラッシュ・リカバリ領域のサイズを変更する場合)は、RECOVER行をRECOVER COPY UNTIL TIME 'SYSDATE-n'に変更します。たとえば、フラッシュ・リカバリ領域が3日分の増分バックアップを保持できる大きさの場合、スクリプトを次のように変更できます。

RECOVER COPY OF DATABASE TAG "whole_db_copy" UNTIL TIME 'SYSDATE-3';
# Make an incremental backup of the database to the flash recovery area.
BACKUP INCREMENTAL LEVEL 1 
      FOR RECOVER OF COPY WITH TAG "whole_db_copy" 
      DATABASE;

毎日スクリプトを実行すると、Recovery Managerは、現在から3日前のSCNまでデータベース全体のコピーをロールフォワードします。つまり、ディスク割当て制限規則によって、SYSDATE-3日後に作成されたアーカイブ・ログと増分バックアップは保持されます(これは、過去3日のSCNまでデータベースをリカバリするために必要なためです)。

次の表に、この計画で毎日スクリプトを実行した後、フラッシュ・リカバリ領域に格納されるファイルを示します。

表A-2    少数のデータ・ブロックが変更される場合のバックアップ: 3日間のバックアップ 
日付  スクリプトの処理  フラッシュ・リカバリ領域の内容 

2月1日(日) 

  1. レベル0のバックアップの増分更新を試行しますが、「SYSDATE-3」までロールフォワードする必要がある古いレベル0のバックアップが存在しないため、何の影響も及ぼされません。

  2. レベル0のバックアップを作成します。

 

2月1日からのレベル0のバックアップ 

2月2日(月) 

  1. レベル0のバックアップの増分更新を試行しますが、「SYSDATE-3」までロールフォワードする必要がある古いレベル0のバックアップが存在しないため、何の影響も及ぼされません。

  2. 2月2日の変更に対するレベル1の増分バックアップを作成します。

 

2月1日からのレベル0のバックアップ、2月2日からの変更を含むレベル1のバックアップおよび2月1日から今日までのアーカイブ・ログ 

2月3日(火) 

  1. レベル0のバックアップの増分更新を試行しますが、「SYSDATE-3」までロールフォワードする必要がある古いレベル0のバックアップが存在しないため、何の影響も及ぼされません。

  2. 2月3日の変更に対するレベル1の増分バックアップを作成します。

 

レベル0のバックアップ、2月2日〜3日のレベル1の増分バックアップおよび2月1日〜3日のアーカイブ・ログ 

2月4日(水) 

  1. レベル0のバックアップの増分更新を試行しますが、「SYSDATE-3」までロールフォワードする必要がある古いレベル0のバックアップが存在しないため、何の影響も及ぼされません。

  2. 2月4日の変更に対するレベル1の増分バックアップを作成します。

 

レベル0のバックアップ、2月2日から今日までのレベル1のバックアップおよび2月1日から今日までのアーカイブ・ログ 

2月5日(木) 

  1. レベル0のバックアップを2月2日までロールフォワードする、レベル0のバックアップの増分更新を試行します。

  2. 2月5日の変更に対するレベル1の増分バックアップを作成します。

 

2月2日までロールフォワードされたレベル0のバックアップ、2月3日から今日までのレベル1のバックアップおよび2月2日から今日までのアーカイブ・ログ 

2月6日以降 

  1. レベル0のバックアップを2月3日までロールフォワードする、レベル0のバックアップの増分更新を試行します。

  2. その日に行われた変更に対するレベル1の増分バックアップを作成します。

 

過去3日間のレベル1のバックアップまでロールフォワードされたレベル0のバックアップ、2月1日から今日までのアーカイブ・ログ

ロールフォワードされたレベル0のバックアップのリカバリには有効でない古い増分バックアップおよびアーカイブ・ログは、フラッシュ・リカバリ領域が不足した時点で自動的に削除されます。 

ブロックが頻繁に変更される場合のバックアップ・スクリプト

一般的なCRM環境の例では、1週間で多数またはほとんどのデータ・ブロックが更新されます。

冗長性Xという保存方針と、Y日ごとに実行されるバックアップ・スクリプトを使用する場合、ディスク割当て制限の最小値は、次の式で判断できます。

Disk Quota = Size of X copies of the database + 
        size of Y days of archived redo logs

リカバリ期間X日という保存方針と、Y日ごとに実行されるバックアップ・スクリプトを使用する場合、X>=Yであれば、次の式でディスク割当て制限を判断できます。

Disk Quota = Size of 1 copy of the database + 
         size of ((X * ceil(X/Y)) +1) days of archived redo logs

この場合、ceil(X/Y)はX/Y以上の最小整数です。

X<Yの場合のディスク割当て制限は、X=Yの場合と同じです。つまり、次のようになります。

Disk Quota = Size of 1 copy of the database + 
         size of (Y +1) days of archived redo logs

次の例では、保存方針がREDUNDANCY 1で、バックアップ・スクリプトを毎週実行すると想定しています。この例のディスク割当て制限の最小値は次のようになります。

Disk Quota = Size of 1 copy of the database + 
        size of 8 days of archived logs

この例では、初期設定スクリプトは必要ありません。次に、毎週実行するバックアップ・スクリプトの例を示します。

# Execute once a week
# Make a full backup of the database to the flash recovery area.
BACKUP DATABASE TAG "weekly_full_bkup";

次の表に示すとおり、データベースのレベル0のコピーと、1週間分のアーカイブ・ログを保持するディスク割当て制限が必要です。

表A-3    ほとんどのブロックが変更される場合のバックアップ 
日付  処理  フラッシュ・リカバリ領域の内容 

2月1日(日) 

レベル0をバックアップします。 

全体バックアップ 

2月8日(日) 

レベル0をバックアップします。 

今日からの全体バックアップ、2月1日〜8日のアーカイブ・ログ 

以降の各日曜日 

レベル0をバックアップします。 

この日曜日からの全体バックアップ、前回の日曜日からこの日曜日までのアーカイブ・ログ 

半数のブロックが毎週変更される場合のバックアップ・スクリプト

約半数のデータ・ブロックが毎週変更される場合、または変更されるデータ・ブロックの数が週ごとに大きく異なる場合に、この計画を使用します。この計画で実行するスクリプトは、増分更新バックアップを使用する汎用スクリプトです。最初に、データベースのイメージ・コピーを作成し、定期的にレベル1の増分バックアップを取り、レベル0の既存のコピーをロールフォワードします。

フラッシュ・リカバリ領域に必要な領域を求める式は、保存方針によって異なります。保存方針がREDUNDANCY Xで、Y日ごとに実行するバックアップ・スクリプトの場合、必要なディスク領域は次のとおりです。

Disk Quota = Size of X copies of the database + 
             Size of 1 incremental backup + 
             Size of Y+1 days of archived redo logs

リカバリ期間がX日で、Y日ごとに実行するバックアップ・スクリプトの場合、X>=Yであれば、必要な領域は次のとおりです。

Disk Quota = Size of 1 copy of the database + 
             Size of floor(X/Y)+1 incremental backups + 
             Size of (X * ceil(X/Y)) + 1 days of archived logs

この場合、ceil(X/Y)はX/Y以上の最小整数で、floor(X/Y)はX/Y以下の最大整数です。

X<Yの場合に必要な領域は、X=Yの場合と同じです。

Disk Quota = Size of 1 copy of the database + 
             Size of 2 incremental backups + 
             Size of Y+1 days of archived logs

次の例では、保存方針がREDUNDANCY 1で、バックアップ・スクリプトを毎週実行すると想定しています。

初期設定

この例のディスク割当て制限の最小値は次のようになります。

Disk Quota = Size of 1 copy of the database + 
             Size of 1 incremental backup + 
             Size of 8 days of archived logs

1週目、BACKUP... FOR RECOVER OF COPYコマンドは、データベースのレベル0の増分バックアップをフラッシュ・リカバリ領域に作成します。このバックアップは、毎週の計画の基本になります。2週目以降、このコピーが、最後の増分バックアップのチェックポイント時間までロールフォワードされます。このようにして、ディスク上で行う1週間のリカバリ期間を作成します。

毎週実行するスクリプト

初期設定の後、毎週実行するバックアップ・スクリプト(毎週、日曜日の夜に実行するなど)は、次のようになります。

# Execute once a week
# Roll forward the whole copy of the database to last incremental backup SCN
RECOVER COPY OF DATABASE TAG "whole_db_copy";
# Make an incremental backup of the database to the flash recovery area.
BACKUP INCREMENTAL LEVEL 1 
      FOR RECOVER OF COPY WITH TAG "whole_db_copy" 
      DATABASE;

次の表に、バックアップ・スクリプトを実行するたびに、フラッシュ・リカバリ領域の内容がどのように変化するかを示します。ここでは、常に、十分なアーカイブ・ログとバックアップを保存して、7日間のリカバリ期間を保持します。

表A-4    半数のブロックが変更される場合のバックアップ 
日付  処理  スクリプト実行後のフラッシュ・リカバリ領域の内容 

2月1日(日) 

  1. "whole_db_copy"というタグが付けられたデータベースのレベル0の増分コピーをロールフォワードしますが、レベル0のコピーが存在しないため、失敗します。

  2. レベル0の増分バックアップを作成します。

 

レベル0のバックアップ 

2月8日(日) 

  1. 前の週のレベル1の増分バックアップを使用して、"whole_db_copy"というタグが付けられたデータベースのレベル0の増分コピーをロールフォワードしますが、前の週からのレベル1のバックアップが存在しないため、失敗します。

  2. レベル1の増分バックアップを作成します。

 

2月1日 日曜日からのレベル0のバックアップ(レベル1が存在しないため、ロールフォワードされない)、2月1日〜8日のアーカイブ・ログ 

以降の日曜日 

  1. データベースのレベル0のコピーをレベル1の最新の増分バックアップのSCNまでロールフォワードします。

  2. レベル1の最後の増分バックアップのSCNからの変更を含むレベル1の増分バックアップを作成します。

 

前回の日曜日のレベル1の増分のSCNまでロールフォワードされたレベル0のバックアップ、前回の日曜日から今日までのアーカイブ・ログ

前回の日曜日より前のアーカイブ・ログおよび前の週のレベル1の増分バックアップは、レベル0のバックアップのロールフォワード後、廃棄されます。これは、それらを適用できるバックアップが存在しないためです。

不要なファイルは、ディスク領域が不足したときにデータベースによって削除されるまで、またはDELETE OBSOLETEコマンドが使用されるまで、フラッシュ・リカバリ領域に残ります。 

フラッシュ・リカバリ領域およびテープへのバックアップ: 基本的な例

ここでは、Recovery Managerを使用して、フラッシュ・リカバリ領域にバックアップを作成した後、それらをテープに移動する方法について説明します。

この項で実行するスクリプトは、フラッシュ・リカバリ領域をログのアーカイブ先およびすべてのディスク・バックアップ先として使用します。つまり、フラッシュ・リカバリ領域にアーカイブ・ログまたはバックアップを作成するための領域がない場合は、Oracleが、不要またはテープに移動されたアーカイブ・ログおよびバックアップを自動的に削除します。

バックアップ・ファイルおよびアーカイブREDOログをテープに移動すると、フラッシュ・リカバリ領域で新しいファイル用に使用できる領域が増加します。フラッシュ・リカバリ領域のディスク割当て制限を求める式では、最小値が計算されます。このディスク割当て制限は、保存方針を満たすためのテープ領域の可用性によって異なります。ただし、式で計算されるより多くのフラッシュ・リカバリ領域のディスク割当て制限を行うことによって、ディスク上のリカバリ期間を増やし、データベースのリストアおよびリカバリ時にテープからアーカイブREDOログおよびバックアップをリストアする必要性を削減できます。

ディスクまたはテープにバックアップするためのRecovery Manager環境の構成

Recovery Managerを使用して、保存方針、バックアップの最適化および制御ファイルの自動バックアップを構成します。次に例を示します。

CONNECT TARGET SYS/orace@trgt;
# Recovery window of 15 days ensures that the database is recoverable within 7
# days using backups on disk and tape
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 15 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
# Because you do not use a recovery catalog, enable the autobackup feature
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE DEVICE TYPE sbt PARMS='...' PARALLELISM 1; # PARMS are vendor-specific

ディスクおよびテープへのバックアップ・スクリプトの作成例

ディスク専用の場合と同様に、この項で実行するバックアップ・スクリプトは、データベースの負荷に基づいて分類されます。

少数のデータ・ブロックが変更される場合のバックアップ・スクリプト

この例では、比較的少数のデータ・ブロックが頻繁に変更されるため、レベル1の毎日の増分バックアップのサイズは小さくなります。この例の目的は、ディスク上にあるレベル0の1つの増分バックアップを、レベル1の増分バックアップを使用して毎日増分更新した後、他のすべてのファイルをテープに移動することです。これによって、フラッシュ・リカバリ領域の使用量を最小限に抑えることができます。

初期設定

フラッシュ・リカバリ領域を必要なディスク割当て制限で作成し、そのフラッシュ・リカバリ領域をREDOログのアーカイブ先として設定します。

ディスク割当て制限を求める式は、バックアップの保存方針によって異なります。ただし、保存方針が冗長性に基づくか、リカバリ期間に基づくかは同じです。次の式を使用します。

Disk Quota = Size of 1 copy of the database 
             + size of 1 day's level 1 incremental backup
             + size of (Y+1) days of archived logs

この場合、Yは、各バックアップ・スクリプトでBACKUP RECOVERY AREAを実行する間隔(日数)です。

この例の場合、1つのバックアップ・スクリプトが毎日実行され、レベル1の新しい増分バックアップが、その日の変更を反映して作成されます。その後、前日からのレベル1のバックアップを使用して、レベル0のバックアップをロールフォワードし、フラッシュ・リカバリ領域のすべてのファイルをテープにバックアップします。スクリプトは、フラッシュ・リカバリ領域を毎日テープにバックアップするため、フラッシュ・リカバリ領域は、データベースのコピー、レベル1の毎日の増分バックアップおよび2日分のアーカイブREDOログを保持できる大きさである必要があります。

ディスク上のリカバリ期間は1日です。1日以上前の時点にリカバリするには、Recovery Managerは、バックアップをテープからリストアする必要があります。

毎日実行するスクリプト

初期設定の後、Recovery Managerによって通常毎日実行するバックアップ・スクリプトは、次のようになります。

# Execute each day of the week
# Roll forward the copy to most recent incremental backup SCN, which will
# be yesterday's incremental level 1 backup
RECOVER COPY OF DATABASE WITH TAG "daily_backup";
# Take incremental backups to flash recovery area (using default disk channel)
BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG "daily_backup" DATABASE;
# Back up flash recovery area to tape
BACKUP RECOVERY AREA;
# delete obsolete backups on tape
DELETE OBSOLETE DEVICE TYPE sbt;

次の表に、このスクリプトを毎日実行すると、フラッシュ・リカバリ領域とテープの内容がどのように変化するかを示します。スクリプトは、daily_backupというタグが付けられたレベル0のデータベースのコピーを、前日のレベル1の増分バックアップのSCNまでロールフォワードした後、レベル1の新しい増分バックアップを、前日の変更を反映して作成します。たとえば、木曜日にスクリプトを実行すると、Recovery Managerは、レベル0のバックアップを、水曜日の増分バックアップのSCNまでロールフォワードします。

表A-5    少数のブロックが変更される場合のバックアップ 
日付  処理  フラッシュ・リカバリ領域およびsbtの内容 

2月1日(日) 

  1. レベル0のバックアップをロールフォワードしますが、レベル0のバックアップが存在しないため、失敗します。

  2. 後日ロールフォワードされるレベル0の増分バックアップを作成します。

 

レベル0の増分バックアップ

アーカイブREDOログなど、フラッシュ・リカバリ領域にある他のファイルはテープにコピーされ、領域が不足したときにフラッシュ・リカバリ領域から削除されます。 

2月2日(月) 

  1. レベル0のバックアップをロールフォワードしますが、レベル1のバックアップが存在しないため、失敗します。

  2. 2月2日の変更を含むレベル1の増分バックアップを作成します。

  3. フラッシュ・リカバリ領域をsbtにバックアップします。

 

2月1日からのレベル0のバックアップ、2月2日からの変更を含むレベル1の増分バックアップ

アーカイブREDOログなど、フラッシュ・リカバリ領域にある他のファイルはテープにコピーされ、領域が不足したときにフラッシュ・リカバリ領域から削除されます。

テープに格納されている不要なファイルは削除されます。 

以降 

  1. レベル0の増分バックアップをレベル1の以前の増分バックアップのSCNまでロールフォワードします。

  2. 前日からの変更を含むレベル1の増分バックアップを作成します。

  3. フラッシュ・リカバリ領域をsbtにバックアップします。

 

前日までロールフォワードされたレベル0のバックアップ、この日からの変更を含むレベル1の増分バックアップ

アーカイブREDOログなど、フラッシュ・リカバリ領域にある他のファイルはテープにコピーされ、領域が不足したときにフラッシュ・リカバリ領域から削除されます。

テープに格納されている不要なファイルは削除されます。 

多くブロックが変更される場合のバックアップ・スクリプト

この例では、CRM環境の例と同様に、1週間で多数またはほとんどのデータ・ブロックが更新されます。毎日の増分バックアップを実行する計画は、増分バックアップのサイズが非常に大きくなり、予測が困難なためお薦めしません。

この場合は、データベースを毎週テープにバックアップし、アーカイブ・ログを毎日テープにバックアップし、リカバリ期間ベースの保存方針を使用する計画が適しています。

この計画では、次の処理が実行されます。

リカバリ期間ベースの保存方針を使用すると、その期間にPoint-in-Timeリカバリの実行に必要なすべてのバックアップは、必要な間は保持されます。これによって、ディスク領域の使用に制限がある場合でも、データは保護されます。

初期設定

フラッシュ・リカバリ領域を必要なディスク割当て制限で作成し、そのフラッシュ・リカバリ領域をREDOログのアーカイブ先として設定します。ディスク割当て制限を求めるための式は、テープへのフラッシュ・リカバリ領域のバックアップ頻度によって異なります。

Disk Quota = Size of 1 copies of the database 
           + size of (Y+1) days of archived logs

この場合、Yは、各バックアップ・スクリプトでBACKUP RECOVERY AREAを実行する間隔(日数)です。

この例では、データベースの全体バックアップを毎週実行し、テープへのフラッシュ・リカバリ領域のバックアップを毎日実行すると想定しています。

この計画では、2つのスクリプトを実行します。1つ目のスクリプトは、各週の1日目(日曜日)に実行し、データベースの全体バックアップを作成します。2つ目のスクリプトは、各週の他の日(月曜日〜土曜日)に実行し、フラッシュ・リカバリ領域の内容(その日のアーカイブREDOログ)をテープにバックアップします。

この計画では、どちらのスクリプトにもBACKUP RECOVERY AREAコマンドが含まれるため、コマンドは毎日実行されます。この例では、Y=1であるため、ディスク割当て制限は、データベースの1つのコピーに、2日分のアーカイブREDOログを足したサイズになります。

毎週実行するスクリプト

次のRecovery Managerバックアップ・スクリプトは、毎週日曜日に実行されます。

# Execute only once a week
# Take copy of database to flash recovery area
BACKUP AS COPY DATABASE;
# Take backup of flash recovery area to tape
BACKUP RECOVERY AREA;
# Delete obsolete backups on tape
DELETE OBSOLETE DEVICE TYPE sbt;
EXIT;
毎日実行するスクリプト

毎日(月曜日〜土曜日)実行されるRecovery Managerスクリプトは、次のようになります。

# Execute 6 days/wk
# Take backup of flash recovery area to tape
BACKUP RECOVERY AREA;
# delete obsolete backups on tape
DELETE OBSOLETE DEVICE TPE sbt;

フラッシュ・リカバリ領域全体が毎日テープにバックアップされるため、新しいファイル用に領域が必要になると、データベースは、バックアップおよびアーカイブREDOログ・ファイルをフラッシュ・リカバリ領域から削除します。領域が不足すると、必ずファイルが削除されるため、バックアップとバックアップの間で、どのファイルがフラッシュ・リカバリ領域に残るかを予測することは困難です。

半数のブロックが変更される場合のバックアップ・スクリプト

次の計画は、定期的に取られたデータベースの全体バックアップに基づいています。データベースの全体バックアップ間で約半数のデータ・ブロック変更される場合、または変更されるデータ・ブロックの数がデータベースの全体バックアップ間で大きく異なる場合に有効です。

計画は、データベースの増分更新バックアップベースの全体バックアップに基づいており、毎週ロールフォワードされます。この計画には、データベースのレベル0のディスク・コピー増分バックアップと、過去7日分のデータ・ファイルの変更で毎週日曜日に作成されるレベル1の増分が必要です。ロールフォワードの後、フラッシュ・リカバリ領域の内容はテープにバックアップされるため、データベースのレベル0の増分コピーおよびレベル1の毎週の増分バックアップは、ディスクおよびテープの両方で使用可能になります。

アーカイブREDOログ・ファイルは、毎日フラッシュ・リカバリ領域に蓄積されます。毎日スクリプトを実行するたびに、これらのREDOログ・ファイルはテープにバックアップされます。その後、フラッシュ・リカバリ領域が不足すると、これらのファイルはディスクから削除されます。

初期設定

この例でのフラッシュ・リカバリ領域の最小ディスク割当て制限は、次の式で計算されます。

Disk Quota = Size of 1 copy of the database 
           + Size of 1 level 1 incremental backup with Y days of changes 
           + Size of (Y+1) days of archived redo logs

この場合、Yは、フラッシュ・リカバリ領域をテープにバックアップする間隔(日数)です。

この例では、Y=7であるため、ディスク割当て制限は、データベースの1つのコピー、レベル1の7日間の増分バックアップ、8日分のアーカイブREDOログを足したサイズになります。

毎週実行するスクリプト

この計画で、毎週日曜日にバックアップを実行するスクリプトは、次のようになります。

# Execute once a week
# Roll forward the whole copy of the database to last incremental backup SCN
RECOVER COPY OF DATABASE WITH TAG "whole_db_copy";
# Make an incremental backup of the database to the flash recovery area.
BACKUP DEVICE TYPE DISK INCREMENTAL LEVEL 1 
       FOR RECOVER OF COPY WITH TAG "whole_db_copy" 
       DATABASE;
# Back up flash recovery area to tape
BACKUP RECOVERY AREA;
# delete obsolete backups on tape
DELETE OBSOLETE DEVICE TYPE sbt;
毎日実行するスクリプト

この計画で、毎日実行するスクリプトは、次のようになります。

# Execute 6 days/wk
# Back up flash recovery area to tape
BACKUP RECOVERY AREA;
# delete obsolete backups on tape
DELETE OBSOLETE DEVICE TYPE sbt;

次の表に、スクリプトによるリカバリ期間の保持方法を示します。この例では、週は日曜日に始まると想定しています。

表A-6    半数のブロックが変更される場合のバックアップ 
日付  スクリプト  処理  スクリプト実行後のフラッシュ・リカバリ領域およびテープの内容 

第1週、日曜日 

毎週 

  1. RECOVER COPY OF DATABASEコマンドを実行しますが、データベースのレベル0のバックアップが存在しないため、処理は実行されません。

  2. BACKUP... FOR RECOVER OF COPYコマンドの実行結果として、レベル0のバックアップを作成します。

  3. フラッシュ・リカバリ領域のすべてのファイルをテープにバックアップします。

  4. 不要なバックアップをテープから削除します。

 

フラッシュ・リカバリ領域には、データベースのレベル0の増分バックアップが含まれ、毎週ロールフォワードされます。

テープには、データベースのレベル0の増分バックアップが含まれます。 

第1週、月曜日〜土曜日 

毎日 

  1. フラッシュ・リカバリ領域をテープにバックアップします。

  2. 不要なバックアップをテープから削除します。

 

フラッシュ・リカバリ領域には、前日のアーカイブREDOログ、およびデータベースのレベル0の増分バックアップが含まれます。

テープには、レベル0の増分バックアップ、および第1週の日曜日以降のすべての日のREDOログが含まれます。

不要なバックアップはありません。 

第2週、日曜日 

毎週 

  1. レベル0を最新の増分SCNまでリカバリするRECOVER COPY OF DATABASEコマンドを実行しますが、ロールフォワードで使用するレベル1の増分バックアップが存在しないため、処理は実行されません。

  2. レベル1の増分バックアップを実行します。第1週からの変更を含むレベル1の増分バックアップが作成されます。

  3. フラッシュ・リカバリ領域をテープにバックアップします。

  4. 不要なバックアップをテープから削除します。

 

フラッシュ・リカバリ領域には、第1週の日曜日のSCNでのデータベースのレベル0の増分バックアップ、第1週からの変更を含むレベル1の増分バックアップが含まれます。

テープには、第1週の日曜日からのレベル0の増分バックアップ、第1週からのすべての変更を含むレベル1の増分バックアップ、第1週からのアーカイブREDOログが含まれます。

不要なバックアップはありません。 

第2週、月曜日〜土曜日 

毎日 

  1. フラッシュ・リカバリ領域をテープにバックアップします。

  2. 不要なバックアップをテープから削除します。

 

フラッシュ・リカバリ領域には、前日のアーカイブREDOログ、およびデータベースのレベル0の増分バックアップが含まれます。その他のアーカイブREDOログも含まれます。

テープには、レベル0の増分バックアップ、および第1週の日曜日以降のすべての日のREDOログが含まれます。 

第3週、日曜日 

毎週 

  1. レベル0を最新の増分SCNまでリカバリするRECOVER COPY OF DATABASEコマンドを実行します。レベル0の増分バックアップは、第2週の1日目までロールフォワードされます。

  2. レベル1の増分バックアップを実行します。第2週からの変更を含むレベル1の増分バックアップが作成されます。

  3. フラッシュ・リカバリ領域をテープにバックアップします。

  4. 不要なバックアップをテープから削除します。

 

フラッシュ・リカバリ領域には、第2週の日曜日のSCNでのデータベースのレベル0の増分バックアップ、第2週からの変更を含むレベル1の増分バックアップが含まれます。

テープには、第2週の日曜日のSCNまでロールフォワードされたレベル0の増分バックアップ、第2週からのすべての変更を含むレベル1の増分バックアップ、第2週からのアーカイブREDOログが含まれます。

テープから削除された不要なバックアップには、第1週からのアーカイブREDOログ、第1週からのデータベースのレベル0の増分バックアップのテープ・バックアップが含まれます。 

データベースのバックアップ用に十分なディスク領域がない場合のバックアップ・スクリプト

データベースのコピーを保持するためのディスク割当て制限が十分でない場合、フラッシュ・リカバリ領域をアーカイブ・ログの格納先としてのみ使用する必要があります。ディスク割当て制限規則によって、これらのログは、(すでにテープにバックアップ済などの理由で)不要になるとフラッシュ・リカバリ領域から削除されます。他のファイルを格納するための領域がフラッシュ・リカバリ領域に不足した場合に、アーカイブ・ログをフラッシュ・リカバリ領域から削除するには、アーカイブ・ログを毎日テープにバックアップします。

この計画では、フラッシュ・リカバリ領域のサイズは、2日分以上のアーカイブREDOログと1日分の増分バックアップを保持できる大きさにする必要があります。

この計画では、増分更新バックアップは使用しませんが、レベル0とレベル1の増分バックアップに基づいています。この計画では、2つのスクリプトを使用します。1つは毎週(日曜日など)実行し、もう1つは、1つ目のスクリプトを実行した日以外(月曜日〜土曜日)に実行します。

毎週実行するスクリプトは、テープにレベル0の増分バックアップを作成します。このバックアップには、データベースの内容すべてが含まれます。

1つ目のスクリプトを実行する日以外に実行するスクリプトは、レベル1の増分バックアップを作成します。このバックアップには、データベースへの毎日の変更が含まれます。

毎週実行するスクリプト

次に、各週の1日目に1回実行するスクリプトを示します。

# Execute only once a week
# backup database to tape
BACKUP DEVICE TYPE sbt INCREMENTAL LEVEL 0 DATABASE;
# delete obsolete backups on tape
DELETE OBSOLETE DEVICE TYPE sbt;
# backup recovery file destination to tape
BACKUP RECOVERY AREA;
毎日実行するスクリプト

次のスクリプトは、2日目以降の毎日(月曜日〜土曜日)実行します。

# backup recovery file destination to tape
BACKUP RECOVERY AREA;
# Take incremental backups to flash recovery area
BACKUP DEVICE TYPE DISK INCREMENTAL LEVEL 1 DATABASE;

次の表に、Recovery Managerの保存方針のリカバリ期間の保持方法と、ディスク割当て制限の保持方法を示します。毎日スクリプトを実行した後も存在するリカバリ・ファイルがテープに存在するため、Oracleでは、必要に応じて、フラッシュ・リカバリ領域からファイルを削除します。

表A-7     ディスク領域に制限がある場合のバックアップ
日付  スクリプト  処理  スクリプト実行後のテープの内容 

2月1日(日) 

毎週 

  1. レベル0をテープにバックアップします。

  2. 不要なバックアップをテープから削除します。

  3. フラッシュ・リカバリ領域をテープにバックアップします。

 

テープには、2月1日以降のデータベース全体のレベル0のバックアップと、アーカイブREDOログが含まれます。 

2月2日(月)〜2月7日(土) 

毎日 

  1. フラッシュ・リカバリ領域をテープにバックアップします。

  2. レベル1をディスクにバックアップします。

 

テープには、2月1日以降のデータベース全体のレベル0のバックアップ、月曜日から今日までの毎日のレベル1の増分バックアップ、1週間分のアーカイブREDOログが含まれます。 

2月8日(日) 

毎週 

  1. レベル0をテープにバックアップします。

  2. 不要なバックアップをテープから削除します。

  3. フラッシュ・リカバリ領域をテープにバックアップします。

 

テープには、2月1日以降のデータベース全体のレベル0のバックアップ、月曜日から今日までの毎日のレベル1の増分バックアップ、1週間分のアーカイブREDOログが含まれます。 


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引