この章では、最も基本的なバックアップ作業の実行方法およびRMANを使用したバックアップ計画の実装方法について説明します。この章の内容は次のとおりです。
関連項目:
バックアップの最適化、多重化、バックアップの暗号化、再開可能なバックアップなどの高度なトピックについては、 「データベースのバックアップ: 高度なトピック」を参照してください
Data Guard環境でのRMANバックアップおよびリカバリの実行方法については、『Oracle Data Guard概要および管理』を参照してください。
この項では、RMANバックアップの概要について説明します。
RMANバックアップの主要な目的は、データを保護することです。メディア障害が発生した場合は、バックアップをリストアして、消失した変更をリカバリできます。
また、バックアップを作成すると、「長期格納用のデータベース・バックアップの作成」の説明に従って長期アーカイブ用のデータを保存したり、「データベースの複製」から「プラットフォーム間でのデータ・トランスポート」までの章の説明に従ってデータを送信することができます。
「RMANバックアップの概要」で説明されているように、RMANクライアント内からBACKUP
コマンドを実行して、データベース全体またはその一部をバックアップできます。
多くの場合、バックアップ計画に従ってデータベースを構成しておくと、RMANプロンプトで次のコマンドを入力してデータベースをバックアップできます。
RMAN> BACKUP DATABASE;
RMANは、構成された設定、以前のバックアップのレコードおよびデータベース構造の制御ファイル・レコードを使用して、効率的な一連のバックアップ手順を決定します。その後、それらの手順を実行します。
「Data Guard環境でのRMANによるファイル管理について」で説明されているように、Data Guard環境の任意のデータベースでRMANバックアップを実行できます。バックアップにアクセスできる場合、環境内の任意のデータベースのすべてのバックアップを他のデータベースのリカバリに使用できます。データベース・ファイルのすべてのバックアップ(制御ファイルのバックアップを含む)をフィジカル・スタンバイ・データベースにオフロードすると、プライマリ・データベース上のリソースの消費を回避できます。
関連項目:
BACKUPコマンドの詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
RMANでスタンバイ・データベースをバックアップする方法については、『Oracle Data Guard概要および管理』を参照してください。
BACKUP DATABASE
などのRMANのコマンドに最低限必要なオプションしか指定しないと、構成済の環境およびRMANの組込みのデフォルトに基づいて、バックアップ先のデバイス、バックアップ出力の格納場所およびバックアップ・タグが自動的に決定されます。
また、BACKUP
に引数を指定して、これらのデフォルトを上書きすることもできます。次の項では、最も一般的なオプションについて説明します。
関連項目:
バックアップの多重化や再開などの高度なバックアップ・オプションについては、 「データベースのバックアップ: 高度なトピック」を参照してください
例9-1 デバイス・タイプDISKの指定
この例は、ディスクにバックアップする場合の例です。
BACKUP DEVICE TYPE DISK DATABASE;
DEVICE TYPE
句を指定せずにBACKUP
を実行すると、バックアップは構成済のデフォルト・デバイス(ディスクまたはSBT)に格納されます。デフォルト・デバイスは、「バックアップ用のデフォルト・デバイスの構成: ディスクまたはSBT」で説明されているCONFIGURE DEFAULT DEVICE TYPE
コマンドを使用して設定します。
RMANは、イメージ・コピーまたはバックアップ・セットとしてバックアップをディスク上に作成できます。デフォルトのディスク・デバイスの構成方法については、「バックアップ用のデフォルト・タイプの構成: バックアップ・セットまたはコピー」を参照してください。このデフォルトは、AS
COPY
句またはAS
BACKUPSET
句を使用して上書きできます。
例9-2 イメージ・コピーの作成
この例では、BACKUP
AS
COPY
を使用して、イメージ・コピーとしてディスクにバックアップします。
BACKUP AS COPY DEVICE TYPE DISK DATABASE;
例9-3 バックアップ・セットの作成
バックアップ・セットにデータをバックアップするには、AS BACKUPSET
句を使用します。この例では、バックアップ・セットを、構成されているデフォルト・デバイスに作成したり、ディスクまたはテープに明示的に格納する方法を示します。
BACKUP AS BACKUPSET DATABASE; BACKUP AS BACKUPSET DEVICE TYPE DISK DATABASE; BACKUP AS BACKUPSET DEVICE TYPE SBT DATABASE;
RMANには、BACKUP
コマンドで生成されるファイルに名前を指定するための様々なオプションが用意されています。RMANは、優先順位に従って示されている次のルール・セットを使用して、出力ファイル形式を決定します。
関連項目:
FORMAT句については、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。ご使用のプラットフォームのデフォルトのファイルの場所については、インストレーション・ガイドを参照してください。
通常、テープにバックアップする場合には、デフォルトの %U
変数によってテープ・バックアップに一意のファイル名が生成されるため、フォーマットを指定する必要はありません。ただし、ディスクへのバックアップで、パフォーマンスを向上するために複数のドライブにバックアップを分散させる必要がある場合には、フォーマットを指定できます。この場合、ファイル名が異なるディスク上で生成されるように、ALLOCATE CHANNEL
コマンドでディスク・ドライブごとに1つの
DISKチャネルを割り当てて、フォーマット文字列を指定します。たとえば、次のコマンドを発行します。
RUN { ALLOCATE CHANNEL disk1 DEVICE TYPE DISK FORMAT '/disk1/%d_backups/%U'; ALLOCATE CHANNEL disk2 DEVICE TYPE DISK FORMAT '/disk2/%d_backups/%U'; ALLOCATE CHANNEL disk3 DEVICE TYPE DISK FORMAT '/disk3/%d_backups/%U'; BACKUP AS COPY DATABASE; }
チャネルを次のように構成すると、将来、デフォルトでこのようにバックアップを分散できるようになります。
CONFIGURE DEVICE TYPE DISK PARALLELISM 3; CONFIGURE DEFAULT DEVICE TYPE TO DISK; CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/disk1/%d_backups/%U'; CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/disk2/%d_backups/%U'; CONFIGURE CHANNEL 3 DEVICE TYPE DISK FORMAT '/disk3/%d_backups/%U'; BACKUP AS COPY DATABASE;
RMANは、バックアップを識別する方法として、作成するすべてのバックアップにtag と呼ばれる文字列を追加します。デフォルトのタグを受け入れるか、またはBACKUP
コマンドのTAG
パラメータで独自のタグを指定できます。
この項の内容は、次のとおりです。
ユーザー指定のタグは、異なる種類のバックアップまたはコピーの目的や使用方法を示すのに役立ちます。バックアップ・セット、プロキシ・コピー、データファイル・コピーまたは制御ファイル・コピーにタグを付けることができます。たとえば、SWITCH
コマンドで使用する予定のデータファイル・コピーにはfor_switch_only
というタグを付け、RESTORE
コマンドでのみ使用するファイル・コピーにはfor_restore_only
というタグを付けることができます。
タグは一意である必要はないため、複数のバックアップ・セットまたはイメージ・コピーに同じタグ(weekly_backup
など)を付けることができます。特定のタグが付いたバックアップからデータファイルをリストアするように指定するとします。要求したファイルの複数のバックアップにそのタグが含まれている場合、RMANは、RESTORE
コマンドの制約内で、指定したタグが含まれている最新のバックアップをリストアします。
実際には、タグは、多くの場合、増分バックアップ計画などの1つの計画の一環として作成された一連のバックアップを区別する場合に使用されます。たとえば、週次の増分バックアップを作成し、BACKUP TAG weekly_incremental
などのタグを付けることができます。BACKUP
コマンドの多くの形式では、タグをバックアップに関連付けることができます。また、RESTORE
およびRECOVER
コマンドの多くでは、RESTORE
またはRECOVER
操作で使用するバックアップを制限するタグを指定できます。
BACKUP
コマンドのTAG
パラメータを使用して明示的にタグを指定しない場合は、RMANによって、バックアップ(制御ファイルの自動バックアップ以外)のデフォルト・タグが暗黙的に作成されます。タグの形式は、TAG
YYYYMMDD
T
HHMMSS
です。ここで、YYYY
は年、MM
は月、DD
は日、HH
は時間(24時間形式)、MM
は分、SS
は秒です。たとえば、データファイル1
のバックアップには、タグTAG20070208T133437
が割り当てられる場合があります。日時は、バックアップを実行するインスタンスのタイムゾーンで、RMANがバックアップを開始した日時です。1つのBACKUP
コマンドによって複数のバックアップ・セットが作成される場合、各バックアップ・ピースには同じデフォルト・タグが割り当てられます。
入力時に使用した大/小文字に関係なく、タグは大文字で格納されます。バックアップ・タグの最大長は30バイトです。オペレーティング・システムの環境変数または%T
、%D
などの特殊な書式は、タグに使用できません。
関連項目:
BACKUP
...
TAG
のデフォルト形式については、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
タグで使用する文字は、ターゲットのデータベース・ファイル・システムでファイル名として有効な文字に制限する必要があります。 たとえば、自動ストレージ管理(ASM)では、内部的に使用されるファイル名でのハイフン(-
)の使用はサポートされていません。このため、ASMディスク・グループでのバックアップの場合、ハイフンが含まれているタグ(weekly-incr
など)は無効なタグ名になります。
バックアップ・セットにタグを指定すると、そのタグは、指定したバックアップ・セットのコピーに含まれる各バックアップ・ピースの属性になります。多重バックアップ・セットを作成すると、バックアップ・セットの各コピーに同じタグが割り当てられます。
例9-4 バックアップ・セットへのタグの適用
この例では、タグMONDAYBKP
が指定されたバックアップ・セットを1つ作成します。
BACKUP AS BACKUPSET COPIES 1 DATAFILE 7 TAG mondaybkp;
例9-5 イメージ・コピーへのタグの適用
この例では、表領域users
およびtools
のデータファイルのコピーに、タグMONDAYCPY
を割り当てます。イメージ・コピーにタグを指定すると、そのタグは各コピーに適用されます。
BACKUP AS COPY TABLESPACE users, tools TAG mondaycpy;
例9-6 出力コピーへのタグの割当て
この例では、タグfull_cold_copy
が含まれている、データベースのすべてのイメージ・コピーのコピーを新しく作成し、その新しいコピーにタグnew_full_cold_copy
を割り当てます。FROM TAG
を使用して特定のタグが含まれているイメージ・コピーをコピーした後、TAG
を使用して出力コピーに別のタグを割り当てることができます。
BACKUP AS COPY COPY OF DATABASE FROM TAG full_cold_copy TAG new_full_cold_copy;
バックアップ・セットを作成するBACKUP
コマンドを実行する場合は、RMANでサポートされている、バックアップ・セットのバイナリ圧縮を利用できます。BACKUPコマンドに
AS COMPRESSED BACKUPSET
オプションを指定します。
RMANは、バックアップ・セットの内容を圧縮してからディスクに書き込みます。使用されるバイナリ圧縮レベルの詳細が自動的にバックアップ・セットに記録されます。使用される圧縮のタイプやリカバリ操作でのバックアップ・セットの解凍方法を明示的に示す必要はありません。
バイナリ圧縮では、バックアップおよびリカバリ操作中に、パフォーマンスにある程度のオーバーヘッドが発生します。バイナリ圧縮はCPUリソースを消費するため、CPU使用率が高いときは、圧縮バックアップを通常スケジュールにしないでください。ただし、次の状況では、パフォーマンスが低下する可能性があります。
高速リカバリ領域またはその他のディスクベースのバックアップ先内のディスク領域が制限されている状況で、ディスクベースのバックアップを使用している場合
CPU使用率よりネットワーク帯域幅を削減することのほうが重要となる状況で、ネットワークを介して特定のデバイスへのバックアップを実行している場合
CD、DVDなどのアーカイブ・バックアップ・メディアを使用しており、バックアップ・サイズを削減することでメディア・コストおよびアーカイブ・ストレージを節約できる場合
関連項目:
バックアップ・セットに関するパフォーマンスの詳細は、「RMANバックアップ・セットのバイナリ圧縮について」および『Oracle Databaseバックアップおよびリカバリ・リファレンス』のBACKUP
コマンドのAS COMPRESSED BACKUPSET
オプションに関する説明を参照してください
例9-7 圧縮バックアップの作成
この例では、データベース全体とアーカイブ・ログを、構成済のデフォルトのバックアップ先(ディスクまたはテープ)にバックアップし、圧縮バックアップ・セットを作成します。
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;
マルチセクション・バックアップでは、複数のチャネルでパラレルにバックアップできるように、大規模なデータファイルをセクションに分割できます。これにより、より高速なバックアップ・パフォーマンスとリカバリ時間の短縮を実現します。マルチセクション・バックアップには、複数のバックアップ・ピースが含まれます。マルチセクション・バックアップ操作の際、RMANはバックアップ・ピースごとに別々のチャネルを使用し、各バックアップ・ピースにパラレルで書き込みます。
データベースとデータファイルのマルチセクション・フル・バックアップは、Oracle Database 11gリリース1からサポートされます。RMANでは、Oracle Database 12cリリース1 (12.1)から、マルチセクション増分バックアップをサポートします。マルチセクション増分バックアップを作成する際に、適用できる場合は、未使用ブロック圧縮とブロック・チェンジ・トラッキングも使用されます。バックアップ・セットを使用すると、マルチセクションの全体または増分バックアップを作成できます。
レベル0のマルチセクション増分バックアップを作成するには、COMPATIBLE
パラメータに11.0以上を設定する必要があります。ただし、レベル1以上のマルチセクション増分バックアップを作成するには、COMPATIBLE
パラメータに12.0.0以上を設定する必要があります。RMANでは、常に、FILESPERSET
を1に設定して、マルチセクション増分バックアップを作成します。
マルチセクション・バックアップを作成するには、BACKUP
コマンドに SECTION SIZE
句を使用します。SECTION SIZE
句では、各バックアップ・セクションのサイズを指定します。ファイルのサイズより大きいセクション・サイズを指定した場合、RMANはそのファイルのマルチセクション・バックアップを使用しません。小さなセクション・サイズを指定した結果、セクションの数が256を超えると、RMANは、正確に256になる値までセクション・サイズを増やします。
マルチセクション・バックアップを識別するためのビュー
バックアップがマルチセクション・バックアップであるかどうかは、V$BACKUP_SET
ビューまたはリカバリ・カタログ・ビューRC_BACKUP_SET
のMULTI_SECTION
列を使用して確認します。マルチセクション・バックアップの場合、MULTI_SECTION
列に、値Yesが含まれます。
マルチセクション・バックアップのメタデータを含むビュー
V$BACKUP_DATAFILE
ビューとRC_BACKUP_DATAFILE
ビューでは、マルチセクション・バックアップの各セクションに、ブロック数に関する情報が表示されます。BLOCKS
列に、各マルチセクション・バックアップのブロック数が表示されます。
例: データベースのバックアップ・セットとしてのマルチセクション増分バックアップ
次の手順を使用し、データファイルのマルチセクション・レベル1増分バックアップをバックアップ・セットとして作成します。
RMANでは、イメージ・コピーを使用してマルチセクション・バックアップを作成できます。マルチセクション・バックアップでは、大規模なファイルをバックアップするために複数のチャネルをパラレルで使用することで、より高いパフォーマンスを提供します。Oracle Database 12cリリース1 (12.1)以降、イメージ・コピーとして格納されるマルチセクション・フル・バックアップを作成できます。イメージ・コピーの作成時に、複数のチャネルが使用されてファイルのセクションに書き込まれます。ただし、この操作の出力は、各データファイルに対して1つのコピーです。
マルチセクション・バックアップを作成するには、SECTION SIZE
句を使用します。指定したセクション・サイズがファイルのサイズより大きい場合、RMANはそのファイルのマルチセクション・バックアップを使用しません。セクションの数が256を超えることになる小さなセクション・サイズを指定した場合、RMANは、正確に256セクションになる値までセクション・サイズを増やします。
マルチセクション・バックアップに関する情報を含むビューの詳細は、「マルチセクション増分バックアップの指定」を参照してください。
例: データファイルのイメージ・コピーとしてのマルチセクション・バックアップ
データベースのマルチセクション・バックアップをイメージ・コピーとして作成するには、次の手順を使用します。
この項の内容は、次のとおりです。
データベース全体のバックアップは、データベースをマウントまたはオープンした状態で実行できます。データベース全体のバックアップを実行するには、RMANプロンプトからBACKUP DATABASE
コマンドを使用します。
必要に応じて、データベース全体のバックアップから指定した表領域を除外できます。「データベース全体のバックアップから除外する表領域の構成」で説明されているように、常にスキップする各表領域に対してCONFIGURE EXCLUDE
コマンドを実行して、複数のRMANセッションで表領域を永続的にスキップできます。構成済の設定は、BACKUP ... NOEXCLUDE
で上書きできます。
データベースをバックアップする手順
関連項目:
BACKUP
コマンドおよびCONNECT
コマンドの詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
BACKUP ... SKIP
を使用して、アクセスできないデータファイル、オフライン表領域内のデータファイルまたは読取り専用表領域内のデータファイルをスキップする方法については、「オフライン・ファイル、読取り専用ファイルおよびアクセスできないファイルのスキップ」を参照してください
BACKUP TABLESPACE
コマンドでは1つ以上の表領域、 BACKUP DATAFILE
コマンドでは1つ以上のデータファイルをバックアップできます。表領域を指定すると、RMANは表領域の名前を一連のデータファイルに内部的に変換します。データベースは、マウントされている状態でもオープンされている状態でもかまいません。表領域は、読取り/書込みでも読取り専用でもかまいません。
注意:
以前のリリースと同様に、トランスポータブル表領域は、バックアップに対して読取り/書込みモードである必要はありません。
バックアップにデータファイル1
が含まれている場合、RMANは、制御ファイルおよびサーバー・パラメータ・ファイル(インスタンスがサーバー・パラメータ・ファイルで起動されている場合)を自動的にバックアップします。制御ファイルの自動バックアップが有効になっている場合、RMANは、現行の制御ファイルおよびサーバー・パラメータ・ファイルを別の自動バックアップ・ピースに書き込みます。そうでない場合、RMANは、データファイル1
が含まれているバックアップ・セットにこれらのファイルを書き込みます。
表領域またはデータファイルをバックアップする手順
次の例では、users
およびtools
表領域をテープにバックアップします。
BACKUP DEVICE TYPE sbt TABLESPACE users, tools;
次の例では、SBTチャネルを使用して、データファイル1
から4
および/tmp/system01.dbf
に格納されているデータファイルのコピーをテープにバックアップします。
BACKUP DEVICE TYPE sbt DATAFILE 1,2,3,4 DATAFILECOPY '/tmp/system01.dbf';
制御ファイルは、データベースがマウントまたはオープンされた状態でバックアップできます。RMANは、スナップショット制御ファイルを使用して、読取り一貫性のバージョンを保証します。CONFIGURE CONTROLFILE AUTOBACKUP
コマンドをON
(デフォルトではOFF
)に設定すると、各バックアップの実行後、およびデータベースの構造変更後に、RMANで制御ファイルとサーバー・パラメータ・ファイルが自動的にバックアップされます。制御ファイルの自動バックアップには、障害リカバリに不可欠な以前のバックアップに関するメタデータが含まれます。
注意:
1つのData Guardデータベースで作成された制御ファイルのバックアップを、環境内の他のすべてのデータベースにリストアすることができます。プライマリ制御ファイルのバックアップとスタンバイ制御ファイルのバックアップには互換性があります。Recovery Managerを使用してスタンバイ・データベースにリストアする方法については、『Oracle Data Guard概要および管理』を参照してください。
自動バックアップ機能が設定されていない場合は、次のいずれかの方法を使用して、手動で制御ファイルをバックアップする必要があります。
制御ファイルの手動バックアップは、制御ファイルの自動バックアップとは異なります。RMANは、BACKUP
コマンドで指定されたファイルをバックアップした後、制御ファイルの自動バックアップを作成します。このため、制御ファイルの手動バックアップとは異なり、自動バックアップには、完了直後のバックアップに関するメタデータが含まれます。また、RMANは、リカバリ・カタログを使用しないで自動バックアップを自動的にリストアすることもできます。
現行の制御ファイルを、バックアップ・セットまたはイメージ・コピーとして、手動バックアップを作成できます。バックアップ・セットの場合、RMANは読取り一貫性のためのスナップショット制御ファイルを最初に作成します。スナップショット制御ファイルのファイル名と場所を構成することができます。イメージ・コピーの場合、スナップショット制御ファイルは必要ありません。
Oracle Real Application Clusters (Oracle RAC)環境では、次の制限事項があります。
スナップショット制御ファイルの場所は、共有記憶域(すべてのOracle RACインスタンスからアクセス可能な記憶域)上である必要があります。
現行の制御ファイルのイメージ・コピーの宛先は、共有記憶域である必要があります。
「RMANを使用した制御ファイルのバックアップ」で説明したとおり、RMANは、特定の状況下で、現行のサーバー・パラメータ・ファイルを自動的にバックアップします。BACKUP
SPFILE
コマンドは、パラメータ・ファイルを明示的にバックアップします。バックアップされるサーバー・パラメータ・ファイルは、インスタンスで現在使用されているサーバー・パラメータ・ファイルです。
サーバー・パラメータ・ファイルをバックアップする方法
データベースがクローズされ、一貫した状態の場合は、NOARCHIVELOG
モードでのみデータベースをバックアップできます。例9-8に示すスクリプトを実行すると、データベースがデータベース全体の一貫性バックアップを行うための正しいモードになり、バックアップされます。このスクリプトでは、制御ファイルの自動バックアップがデータベースに対して有効になっていると想定されています。
読取り専用表領域などの表領域はスキップできますが、バックアップからデータベースをリストアする必要がある場合、最新のバックアップ以降にオフラインまたは読取り専用になっていなかった表領域はスキップすると消失します。
例9-8 NOARCHIVELOGモードでのデータベースのバックアップ
SHUTDOWN IMMEDIATE; # Start the database in case it suffered instance failure or was # closed with SHUTDOWN ABORT before starting this script. STARTUP FORCE DBA; SHUTDOWN IMMEDIATE; STARTUP MOUNT; # this example uses automatic channels to make the backup BACKUP INCREMENTAL LEVEL 0 MAXSETSIZE 10M DATABASE TAG 'BACKUP_1'; # Now that the backup is complete, open the database. ALTER DATABASE OPEN;
この項では、マルチテナント・コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)のバックアップ方法を説明します。次の項目が含まれます。
注意:
非CDBがPDBとして別のCDBに組み込まれた後は、その非CDBのバックアップは使用できません。
関連項目:
PDBの詳細は、『Oracle Database概要』を参照してください。
RMANおよびOracle Enterprise Manager Cloud Controlによって、マルチテナント環境でのバックアップとリカバリが完全にサポートされます。マルチテナント・アーキテクチャによってOracle DatabaseはCDBとして機能できます。CDB全体、rootのみまたは1つ以上のPDBをバックアップおよびリカバリできます。また、PDB内の個々の表領域とデータファイルをバックアップおよびリカバリすることができます。
増分バックアップ計画を使用して、CDB全体のバックアップを夜間に実行する場合、個々のPDBの別々のバックアップを頻繁に実行する場合、CDB全体もrootのいずれのバックアップも頻繁ではない場合があります。
データ損失からのリカバリ機能に関して、rootとすべてのPDBを別々にバックアップすることは、CDB全体をバックアップすることと同じです。主な違いは、入力する必要があるRMANコマンドの数とリカバリの時間です。rootに加えてすべてのPDBをリカバリするよりも、CDB全体の方が短時間でリカバリできます。
CDB全体のバックアップは、CDB以外のバックアップと同様です。CDB全体をバックアップすると、RMANはroot、すべてのPDBおよびアーカイブREDOログをバックアップします。その後、CDBのバックアップから、CDB全体、rootのみまたは1つ以上のPDBをリカバリすることができます。
CDB全体をバックアップする手順
「RMANを使用したデータベース全体のバックアップ」の手順に従い、SYSBACKUP
権限またはSYSDBA
権限を持つ共通ユーザーとしてrootに接続します。
関連項目:
RMANを使用して、rootのみのバックアップを行うことができます。rootには、CDB全体の重要なメタデータが含まれるため、rootのバックアップまたはCDB全体のバックアップを、定期的に作成することをお薦めします。
RMANを使用したrootのバックアップ手順
Oracle Enterprise Manager Cloud Control (Cloud Control)を使用してrootをバックアップするには、次の手順を実行します。
RMANは、CDB内の1つ以上のPDBをバックアップすることができます。RMANによるPDBのバックアップには2つの方法があります。
rootに接続し、BACKUP
PLUGGABLE
DATABASE
コマンドを使用します。この方法では、単一のコマンドで複数のPDBをバックアップすることができます。
rootに接続してPDBをバックアップした場合、そのバックアップは、rootおよびその特定のPDBからは表示できますが、他のPDBからは表示できません。
PDBに接続し、BACKUP
DATABASE
コマンドを使用します。この方法では、単一のPDBのみをバックアップし、非CDBのバックアップに使用したコマンドと同じコマンドを使用することができます。
いずれかのPDBへの接続時に作成されたバックアップは、rootに接続すると表示されます。
個々のPDBをバックアップする場合、アーカイブREDOログはバックアップされません。
rootへの接続中に1つ以上のPDBをバックアップするには、次の手順を実行します。
RMANを起動し、SYSBACKUP
権限またはSYSDBA
権限を持つ共通ユーザーとして、rootに接続します。
関連項目:
RMANプロンプトで、BACKUP PLUGGABLE DATABASE
コマンドを実行します。
次の例では、PDB sales
およびhr
をバックアップします。
BACKUP PLUGGABLE DATABASE sales, hr;
PDBへの接続中に1つのPDBをバックアップするには、次の手順を実行します。
Oracle Enterprise Manager Cloud Control (Cloud Control)を使用して、1つ以上のPDBをバックアップするには、次の手順を実行します。
「データベース・ホーム」ページの「可用性」メニューから「バックアップとリカバリ」を選択し、「バックアップのスケジュール」を選択します。
その前にデータベースにログインしていなければ、「データベース・ログイン」ページが表示されます。「named」または「新規」資格証明を使用してログインし、「ログイン」をクリックします。
バックアップのスケジュール・ページが表示されます。
「カスタマイズ・バックアップ」セクションで、「プラガブル・データベース」を選択し、「カスタマイズ・バックアップのスケジュール」をクリックします。
「バックアップのスケジュール」ウィザードが表示され、「プラガブル・データベース」ページが表示されます。
次の手順を実行して、バックアップするPDBを選択します。
「追加」をクリックして、使用可能なプラガブル・データベース・ページを表示します。
表示されたPDBのリストから、「選択」列で、バックアップするPDBをクリックして指定します。オプションで「すべて選択」をクリックして、使用可能なすべてのPDBに対し「選択」オプションをオンにします。「選択解除」をクリックすると、すべてのPDBの選択が解除されます。
「選択」ボタンをクリックして、プラガブル・データベース・ページに戻ります。
オプションで、削除する各PDBの「選択」列をクリックし、「削除」をクリックすると、表からPDBを削除できます。
「次へ」をクリックして、ウィザードのオプションページに移動します。
PDBをバックアップするページの残りの部分を移動して、ウィザードを完了します。ウィザードの各ページの詳細を表示するには、「ヘルプ」をクリックします。
異なるPDBの表領域に同じ名前を付けることができるため、1つ以上のPDBの表領域をバックアップするには、曖昧さを排除するため、PDBに直接接続する必要があります。対照的に、データファイル番号とパスはCDB全体で一意であるため、rootまたはPDBのどちらに接続しても、PDBデータファイルをバックアップすることができます。rootに接続する場合は、単一のコマンドで複数のPDBからデータファイルをバックアップできます。PDBに接続する場合は、そのPDBのデータファイルのみをバックアップできます。
PDBの表領域をバックアップする手順
RMANを起動し、SYSBACKUP
権限またはSYSDBA
権限を持つローカル・ユーザーとして、PDBに接続します。
関連項目:
「RMANによる表領域とデータファイルのバックアップ」.の説明に従って、BACKUP TABLESPACE
コマンドを発行します。
BACKUP TABLESPACE users, examples;
PDBのデータファイルをバックアップするには、次の手順を実行します。
RMANバックアップのいくつかの機能は、アーカイブREDOログ専用です。たとえば、BACKUP ... DELETE
を使用すると、アーカイブREDOログをバックアップ・セットにバックアップした後、そのアーカイブREDOログの1つのコピーまたはすべてのコピーをディスクから削除できます。
この項の内容は、次のとおりです。
REDOログが複数のアーカイブ先にアーカイブされている場合でも、RMANを使用してアーカイブREDOログをバックアップすると、RMANはアーカイブREDOログ・ファイルのコピーを1つのみ選択してバックアップに含めます。同じログ順序番号を持つログは同一であるため、複数のログ・コピーを含める必要はありません。
アーカイブREDOログ・フェイルオーバー機能を使用すると、RMANは、一部のアーカイブ先でログが欠落している場合またはログに破損ブロックが存在する場合でも、バックアップを完了できます。特定のログ順序およびスレッドに対応する1つ以上のログが、高速リカバリ領域またはいずれかのアーカイブ先で使用可能な場合、RMANはそのログのバックアップを試みます。バックアップ中にログ・ファイルで破損ブロックが検出された場合、RMANは、他の出力先で破損ブロックのないそのログのコピーを検索します。
たとえば、/arch1
および/arch2
の2つのアーカイブ先に、ログ121から124をアーカイブするとします。表9-1に、制御ファイル内のアーカイブREDOログ・レコードを示します。
表9-1 アーカイブREDOログ・レコードの例
順序 | /arch1内のファイル名 | /arch2内のファイル名 |
---|---|---|
121 |
|
|
122 |
|
|
123 |
|
|
124 |
|
|
ここで、あるユーザーが、RMANを使用せずに/arch1
ディレクトリからログ122および124を削除したとします。その後、次のバックアップを実行したとします。
BACKUP ARCHIVELOG FROM SEQUENCE 121 UNTIL SEQUENCE 125;
フェイルオーバーによって、RMANは、/arch2
のログ122および124を使用してバックアップを完了します。
RMANのもう1つの重要な機能は、自動オンラインREDOログ・スイッチです。最新のオンラインREDOログが含まれている、アーカイブREDOログのオープンされているデータベースのバックアップを作成するには、次のいずれかの句を指定してBACKUP
コマンドを実行します。
PLUS ARCHIVELOG
ARCHIVELOG ALL
ARCHIVELOG FROM ...
RMANは、バックアップを開始する前に、現行のREDOログ・グループからの切替えを行い、コマンドの発行時に最新だったREDOログ・グループまでのアーカイブされていないすべてのオンラインREDOログをアーカイブします。この機能によって、コマンド開始前に生成されたすべてのREDOがバックアップに含まれるようになります。
アーカイブREDOログをバックアップする最も効果的な方法の1つとして、BACKUP
...
PLUS
ARCHIVELOG
コマンドを使用する方法があります。これによって、RMANで次の操作が実行されます。
ALTER SYSTEM
ARCHIVE
LOG
CURRENT
文を実行します。
BACKUP
ARCHIVELOG
ALL
を実行します。バックアップの最適化が有効になっている場合、RMANは、指定したデバイスにすでにバックアップされているログをスキップします。
BACKUP
コマンドに指定された残りのファイルをバックアップします。
ALTER
SYSTEM
ARCHIVE
LOG
CURRENT
文を実行します。
バックアップ中に生成された残りのアーカイブ・ログをバックアップします。バックアップの最適化が有効になっていない場合、RMANは、ステップ1で生成されたログおよびバックアップ中に生成されたすべてのログをバックアップします。
前述のステップによって、コマンド実行中に作成されるデータファイルのバックアップを一貫性のある状態にリカバリできます。また、バックアップ終了時にオンラインREDOログがアーカイブされていない場合、そのバックアップでDUPLICATE
を実行することはできません。
CDBでは、SYSDBA
またはSYSBACKUP
権限を持つ共通ユーザーとしてrootに接続した場合のみ、アーカイブREDOログをバックアップできます。SYSDBA
またはSYSBACKUP
権限を持つローカル・ユーザーとしてPDBに接続した場合は、アーカイブREDOログのバックアップまたは削除を行うことはできません。
アーカイブREDOログを複数の宛先にコピーする場合、rootに接続してアーカイブREDOログ・ファイルをコピーすると、RMANはアーカイブREDOログの1つのコピーのみをバックアップに含めます。CDBのrootに接続すると、アーカイブREDOログ・ファイルを切り替えることができます。したがって、「アーカイブREDOログ・フェイルオーバーについて」および「オンラインREDOログ・スイッチについて」の情報は、rootに接続する場合に適用されます。ただし、PDBに接続している場合は、アーカイブREDOログ・ファイルのバックアップや切り替えはできません。
アーカイブ・ログをバックアップするには、BACKUP
ARCHIVELOG
コマンドを使用します。バックアップの最適化が有効になっている場合、RMANは、指定したデバイスにすでにバックアップされているアーカイブ・ログのバックアップをスキップします。
アーカイブREDOログ・ファイルをバックアップする手順
バックアップの最適化を構成します。
「バックアップの最適化およびCONFIGUREコマンド」で説明されているように、バックアップの最適化を有効化すると、BACKUP ARCHIVELOG
コマンドは、同一のアーカイブ・ログ・ファイルが指定のデバイス・タイプにバックアップされている場合に、ファイルのバックアップをスキップします。DBID、スレッド、順序番号、およびRESETLOGS
のSCNと時刻が同じアーカイブ・ログは同一であるとみなされます。
「アーカイブREDOログの削除方針の構成」で説明されているように、削除方針がBACKED UP
integer
TIMES
句で構成されている場合、指定したデバイス・タイプ上にinteger
個のバックアップが存在していないかぎり、BACKUP ARCHIVELOG
コマンドはログをコピーします。ログのinteger
個のバックアップが存在している場合、BACKUP ARCHIVELOG
コマンドはログをスキップします。
BACKUP ... NOT BACKED UP
integer
TIMES
コマンドを指定すると、RMANは、指定したデバイスにinteger
回以上バックアップされていないアーカイブ・ログ・ファイルのみをバックアップします。ファイルのバックアップの数を決定する場合、RMANは、現行のバックアップと同じデバイス・タイプに作成されているバックアップのみを考慮します。
BACKED UP
句は、指定したメディアにアーカイブ・ログをバックアップする場合に有効です。たとえば、RMANがテープに各アーカイブREDOログのコピーを2つ保持し、追加のバックアップをスキップするように指定できます。
バックアップが必要なアーカイブREDOログをバックアップする手順
関連項目:
NOT BACKED UP
の使用例については、「バックアップの最適化を使用したファイルのスキップ」を参照してください。
BACKUP ARCHIVELOG
コマンドを使用することで、CDBのアーカイブREDOログをバックアップできます。
CDBのアーカイブREDOログをバックアップする手順
RMANを開始し、SYSDBA
またはSYSBACKUP
権限を持つユーザーとしてrootに接続します。「非CDBのアーカイブREDOログ・ファイルのバックアップ」の手順に従います。
関連項目:
CDBのバックアップが必要なアーカイブREDOログのみをバックアップする手順
RMANを開始し、SYSDBA
またはSYSBACKUP
権限を持つ共通ユーザーとしてrootに接続します。「非CDBのバックアップが必要なアーカイブREDOログのみのバックアップ」の手順に従います。
BACKUP ARCHIVELOG
... DELETE INPUT
コマンドは、アーカイブ・ログ・ファイルをバックアップした後、それらのファイルを削除します。このコマンドを使用すると、アーカイブREDOログを手動で削除する手順を実行する必要がなくなります。
DELETE
INPUT
を実行すると、RMANは、バックアップ・セットに選択されたアーカイブ・ログの特定のコピーのみを削除します。DELETE
ALL
INPUT
を実行すると、RMANは、バックアップ済の各アーカイブREDOログ・ファイルを、ログのすべてのアーカイブ先から削除します。
「アーカイブREDOログの削除方針の構成」で説明されているように、BACKUP ... DELETE INPUT
およびDELETE ARCHIVELOG
コマンドは、すべてのアーカイブ場所にあるログに関してアーカイブREDOログの削除方針に従います。たとえば、テープに2回以上バックアップされた場合にのみログを削除するように指定した場合、BACKUP ... DELETE
はこの方針に従います。
次の手順では、/arc_dest1
、/arc_dest2
および高速リカバリ領域にアーカイブすることを想定しています。
バックアップ後にアーカイブREDOログを削除する手順
関連項目:
スタンバイ・データベースでのアーカイブREDOログの管理については、『Oracle Data Guard概要および管理』を参照してください。
CONFIGURE ARCHIVELOG DELETION POLICYコマンドの詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
DELETE ARCHIVELOGコマンドの詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
CDBでは、BACKUP ARCHIVELOG ... DELETE INPUT
コマンドを使用して、バックアップ後にアーカイブREDOログを削除できます。
バックアップ後にCDBのアーカイブREDOログを削除する手順
RMANを開始し、SYSDBA
またはSYSBACKUP
権限を持つユーザーとしてrootに接続します。「非CDBのバックアップ後のアーカイブREDOログの削除」の手順に従います。
関連項目:
「RMANの増分バックアップについて」で説明されているように、増分バックアップでは、指定した以前のバックアップ以降に変更されたデータファイル・ブロックのみがコピーされます。増分バックアップは、累積増分バックアップまたは差分増分バックアップのいずれかです。
バックアップの内容は同じですが、BACKUP DATABASE
とBACKUP INCREMENTAL LEVEL 0 DATABASE
は異なります。全体バックアップは増分計画の一部として使用できませんが、レベル0の増分バックアップは増分計画の基礎となります。RMANコマンドでは、全体バックアップをレベル0の増分バックアップには変更できません。
RMANは、全体バックアップの場合と同様に、ARCHIVELOG
モードでオープンされているデータベースの増分バックアップを作成できます。データベースがNOARCHIVELOG
モードの場合、RMANは、一貫性のある状態でデータベースを停止した後でのみ、増分バックアップを作成できます。
この項の内容は、次のとおりです。
増分バックアップを計画の一環として作成する主な理由は次のとおりです。
ブロック・チェンジ・トラッキングを有効にすると、日次バックアップが高速になります(「ブロック・チェンジ・トラッキングを使用した、増分バックアップのパフォーマンスの向上」を参照)。
データファイルのイメージ・コピーをロールフォワードする機能によって、リカバリ時間を短縮し、全体バックアップが繰り返されないようにするため
ネットワークを介してバックアップする場合に帯域幅の消費を削減するため
テープの書込みI/Oに使用するテープ帯域幅の集計がディスクの読取りI/Oに使用するディスク帯域幅の集計より少ない場合にパフォーマンスを向上させるため
NOLOGGING
オプションで作成したオブジェクトへの変更をリカバリできるようにするため
たとえば、ダイレクト・ロード・インサートではREDOログ・エントリが作成されないため、ダイレクト・ロード・インサートによる変更はメディア・リカバリでは再作成できません。ただし、ダイレクト・ロード・インサートではデータ・ブロックが変更されるため、これらのブロックが増分バックアップによって取得されます。
フィジカル・スタンバイ・データベースをプライマリ・データベースと同期化する機能
RMANのBACKUP INCREMENTAL FROM SCN
コマンドを使用すると、スタンバイ・データベースの現行のSCNから始まるバックアップをプライマリ・データベースに作成できます。このバックアップを使用して、後でスタンバイ・データベースをロールフォワードできます。増分バックアップをスタンバイ・データベースに適用する方法については、『Oracle Data Guard概要および管理』を参照してください。
関連項目:
NOLOGGING
モードの詳細は、『Oracle Database管理者ガイド』を参照してください。
許容可能なMTTR(平均リカバリ時間)に応じて、バックアップ計画を選択します。たとえば、3つのレベルのバックアップ・スキームを実装して、レベル0のバックアップを月に1回、レベル1の累積バックアップを週に1回、レベル1の差分バックアップを毎日作成するように設定できます。この計画では、完全リカバリのために、1日分を超えるREDOを適用する必要はありません。
レベル0のバックアップを実行する頻度の目安として、データの20%以上が変更された時点で、レベル0の新しいバックアップを実行するようにします。データベースへの変更率を予想できる場合は、増分バックアップのサイズを監視して、レベル0の新しいバックアップが必要な時点を判断できます。次のSQL問合せを実行すると、ブロックの20%以上がバックアップされている各データファイルの、レベル1の増分バックアップに書き込まれたブロックの数が表示されます。
SELECT FILE#, INCREMENTAL_LEVEL, COMPLETION_TIME, BLOCKS, DATAFILE_BLOCKS FROM V$BACKUP_DATAFILE WHERE INCREMENTAL_LEVEL > 0 AND BLOCKS / DATAFILE_BLOCKS > .2 ORDER BY COMPLETION_TIME;
レベル1のバックアップのブロック数を、レベル0のバックアップと比較します。たとえば、レベル1の累積バックアップのみを作成する場合は、レベル1の最新のバックアップのサイズがレベル0のバックアップの約半分であれば、レベル0の新しいバックアップを作成します。
ディスク領域を節約する効果的な方法の1つとして、増分バックアップをディスクに作成してから、BACKUP
AS
BACKUPSET
コマンドでバックアップをテープにオフロードする方法があります。通常、増分バックアップは全体バックアップより小さいため、テープに移動されるまでの格納に必要な領域は制限されます。ディスク上の増分バックアップをテープにバックアップすると、増分バックアップのすべてのブロックがテープにコピーされるため、テープがストリーム化する可能性があります。RMANでのデータファイル内の変更されたブロックの特定にかかる時間を原因とした遅延が発生する可能性はありません。
もう1つの方法としては、「増分更新バックアップ」で説明されている増分更新バックアップを使用する方法があります。この方法では、各データファイルのイメージ・コピーを作成した後、レベル1の増分バックアップを作成および適用して、定期的にこのコピーをロールフォワードします。これによって、データファイルの完全なイメージ・コピーを繰り返し作成することによって発生するオーバーヘッドが回避され、すべてのメリットを活用できるようになります。
Data Guard環境では、増分バックアップをフィジカル・スタンバイ・データベースにオフロードできます。スタンバイ・データベースの増分バックアップとプライマリ・データベースの増分バックアップには互換性があります。つまり、スタンバイ・データベースの増分バックアップをプライマリ・データベースに適用したり、プライマリ・データベースの増分バックアップをスタンバイ・データベースに適用することができます。
関連項目:
RMANでスタンバイ・データベースをバックアップする方法については、『Oracle Data Guard概要および管理』を参照してください。特に、第10章「フィジカルおよびスナップショット・スタンバイ・データベースの管理」を参照してください。
Volume Shadow Copy Service(VSS)をOracle VSSライターとともに使用すると、データベース内のファイルのシャドウ・コピーまたはスナップショットを作成できます。Oracle VSSライターでVSSスナップショットを作成するには、RMANではなく、サード・パーティのバックアップ・プログラムを使用する必要があります。この場合、高速リカバリ領域によって、VSSスナップショットにバックアップされているファイルの管理が自動化され、必要に応じてそれらのファイルが削除されます。
RMANで BACKUP INCREMENTAL LEVEL 1 ... FROM SCN
コマンドを使用すると、高速リカバリ領域に増分バックアップを作成できます。つまり、このコマンドを使用すると、VSSシャドウ・コピーのレベル1の増分バックアップを作成できます。RMANでは、リカバリ中に増分バックアップを透過的に適用できます。
関連項目:
RMANを使用してVSSバックアップを作成する方法については、『Oracle Databaseプラットフォーム・ガイドfor Microsoft Windows』を参照してください。
バックアップを増分更新することによって、データベースのイメージ・コピーの全体バックアップに伴うオーバーヘッドを避けると同時に、データベースのメディア・リカバリに必要な時間を最小限にすることもできます。たとえば、日次バックアップ・スクリプトを実行する場合、メディア・リカバリのために、1日分を超えるREDOを適用する必要はありません。
データファイルのバックアップを増分更新する手順
増分更新バックアップ計画で使用する増分バックアップを作成するには、BACKUP
コマンドで BACKUP ...
FOR
RECOVER
OF
COPY
WITH
TAG
形式を使用します。このコマンドについては、増分更新バックアップ計画を実装するサンプル・スクリプトを参照してください。
増分更新バックアップに基づいた計画を実装するには、例9-9のスクリプトを定期的に実行することのみが必要となります。
例9-9 基本的な増分更新スクリプト
RUN { RECOVER COPY OF DATABASE WITH TAG 'incr_update'; BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE; }
このスクリプトおよび計画を理解するには、データファイルのコピーまたは増分バックアップが存在しない場合の、使用されている2つのコマンドの影響について理解する必要があります。次の2つの点に注意してください。
例9-9
のBACKUPコマンドによって、常にレベル1の増分バックアップが作成されるわけではありません。
例9-9のRECOVER
コマンドを実行すると、RMANによって、指定したタグが付いた利用可能なレベル1の増分バックアップが、同じタグが付いた一連のデータファイル・コピーに適用されます。
表9-2に、月曜日から毎日1回スクリプトを実行した場合の影響を示します。
表9-2 基本スクリプトを毎日実行した場合の影響
コマンド | 月曜日 | 火曜日 | 水曜日 | 木曜日以降 |
---|---|---|---|---|
|
増分バックアップまたはデータファイルのコピーが存在しないため、コマンドによってメッセージが生成されます(エラーは生成されません)。つまり、コマンドによる影響はありません。 |
データベースのコピーは存在しますが、そのコピーのリカバリに使用するレベル1の増分バックアップは存在しません。つまり、 |
火曜日に作成されたレベル1の増分バックアップがデータベース・コピーに適用され、そのコピーがレベル1の増分バックアップのチェックポイントSCNまで戻されます。 |
昨日作成されたレベル1の増分バックアップがデータベース・コピーに適用され、そのコピーがレベル1の増分バックアップのチェックポイントSCNまで戻されます。 |
|
レベル0のイメージ・コピーが存在しないため、コマンドによってデータベースのイメージ・コピーが作成され、タグ 注意: スクリプトによって |
コマンドによって、レベル1の増分バックアップが作成され、タグ |
コマンドによって、レベル1の増分バックアップが作成され、タグ |
コマンドによって、レベル1の増分バックアップが作成され、タグ |
例9-9についての次の追加事項に注意してください。
データファイルがデータベースに追加されるたびに、新しいデータファイルのイメージ・コピーが、次のスクリプト実行時に作成されます。その次の実行では、追加されたデータファイルの、最初のレベル1の増分バックアップが作成されます。後続のすべての実行では、新しいデータファイルは他のデータファイルと同様に処理されます。
他のバックアップ計画に影響を与えないように、タグを使用して、この計画のデータファイルのコピーおよび増分バックアップを識別する必要があります。複数の増分バックアップ計画を使用している場合、レベル0のバックアップにタグを指定していないかぎり、RMANはレベル1の増分バックアップを確実に作成することはできません。
これらのイメージ・コピーに適用されるレベル1の増分バックアップは、データファイルのイメージ・コピーのタグおよび使用可能なレベル1の増分バックアップのタグに基づいて選択されます。タグは、そのレベルの増分バックアップを選択する場合に必ず必要になります。
スクリプトの3回目の実行後は、次のファイルをPoint-in-Timeリカバリで使用できます。
前回(24時間前に)スクリプトを実行したときのチェックポイントSCN時点でのデータベースのイメージ・コピー
前回実行したときのチェックポイントSCN以降に行われた変更の増分バックアップ
イメージ・コピーのチェックポイントSCNと現在の時点の間で行われたすべての変更を含むアーカイブREDOログ
次の24時間の間にデータベースのリストアおよびリカバリが必要になった場合は、増分更新されたデータファイルのコピーからデータファイルをリストアできます。これによって、必要なSCNに達するまで、レベル1の最新の増分バックアップおよびREDOログから変更を適用できます。最大24時間分の適用対象のREDOがあるため、Point-in-Timeリカバリの終了にかかる時間は制限されます。
例9-9の基本スクリプトを拡張すると、24時間を超える期間を高速でリカバリできます。例9-10に、RECOVER
コマンドでリカバリ可能期間の開始時間を指定して、7日間保持する方法を示します。
例9-10 高度な増分更新スクリプト
RUN { RECOVER COPY OF DATABASE WITH TAG 'incr_update' UNTIL TIME 'SYSDATE - 7'; BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE; }
表9-3に、1月1日月曜日から毎日1回スクリプトを実行した場合の影響を示します。
表9-3 高度なスクリプトを毎日実行した場合の影響
コマンド | 1月1日(月曜日) | 1月2日(火曜日)から1月8日(月曜日) | 1月9日(火曜日) | 1月10日(水曜日)以降 |
---|---|---|---|---|
|
増分バックアップまたはデータファイルのコピーが存在しないため、コマンドによってメッセージが生成されます(エラーは生成されません)。つまり、コマンドによる影響はありません。 |
データベースのコピーは存在しますが、 |
|
データベースのコピーが、7日前に作成された増分バックアップで更新され、そのコピーがレベル1の増分バックアップのチェックポイントSCNまで戻されます。 |
|
レベル0のイメージ・コピーが存在しないため、コマンドによってデータベースのイメージ・コピーが作成され、タグ 注意: スクリプトによって |
コマンドによって、レベル1の増分バックアップが作成され、タグ |
コマンドによって、レベル1の増分バックアップが作成され、タグ |
コマンドによって、レベル1の増分バックアップが作成され、タグ |
例9-9の基本スクリプトと同様に、データファイルのコピーのSCNと現在の間の任意の時点に高速でリカバリできます。RMANは、増分バックアップのブロック変更およびREDOログの個々の変更の両方を使用できます。レベル1の日次増分バックアップがあるため、1日分を超えるREDOを適用する必要はありません。
関連項目:
RECOVER
コマンドの詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
増分バックアップのブロック・チェンジ・トラッキング機能を使用すると、データファイルごとに変更されたブロックを記録することによってバックアップのパフォーマンスが向上します。
この項の内容は、次のとおりです。
プライマリ・データベースまたはスタンバイ・データベースでブロック・チェンジ・トラッキングが有効になっている場合、RMANは、ブロック・チェンジ・トラッキング・ファイルを使用して、増分バックアップ用に変更されたブロックを識別します。この小さなビットマップ・ファイルを読み取り、変更されたブロックを確認することによって、バックアップしているデータファイルのすべてのブロックのスキャンを回避します。
ブロック・チェンジ・トラッキングは、デフォルトでは無効になっています。ただし、バックアップ中にデータファイル全体をスキャンする必要がなくなるというメリットは無視できません。バックアップを実行してから次のバックアップを実行するまでの間に変更されたデータ・ブロックが小量の場合は特にです。 バックアップ計画に増分バックアップが含まれている場合は、ブロック・チェンジ・トラッキングを有効にすることをお薦めします。ブロック・チェンジ・トラッキングによって、増分バックアップの実行に使用されるコマンドが変更されることはありません。初期構成後にチェンジ・トラッキング・ファイルにメンテナンスを行う必要はありません。
Oracle Active Data Guardオプションのライセンスが有効な場合にのみ、フィジカル・スタンバイ・データベースでブロック・チェンジ・トラッキングを有効にできます。
チェンジ・トラッキング・ファイルには、バックアップ間のデータファイルの変更をマークするビットマップが保持されます。データベースでは、各バックアップの前にビットマップの切替えが実行されます。Oracle Databaseでは、最新の8つのバックアップに対応するブロック・チェンジ・データを保持するためにチェンジ・トラッキング・ファイルの領域が自動的に管理されます。最大8つのビットマップに達すると、最も古いビットマップは現行の変更を追跡するビットマップによって上書きされます。
最初のレベル0の増分バックアップでは、データファイル全体がスキャンされます。その後の増分バックアップでは、ブロック・チェンジ・トラッキング・ファイルを使用して、最後のバックアップの後に変更されたとマークされているブロックのみがスキャンされます。増分バックアップの最適化は、ブロック・チェンジ・トラッキング・ファイルの最も古いビットマップ以降に作成された親バックアップに基づいてのみ行われます。
増分バックアップ計画を作成する場合は、ビットマップ数の制限(8)を考慮してください。たとえば、レベル0のデータベース・バックアップを作成した後で7つの差分増分バックアップを作成すると、ブロック・チェンジ・トラッキング・ファイルには8つのビットマップが含まれます。次にレベル1の累積増分バックアップを作成すると、レベル0の親バックアップに対応するビットマップが現行の変更を追跡するビットマップで上書きされるため、RMANはバックアップを最適化できません。
データベース全体に対して、1つのブロック・チェンジ・トラッキング・ファイルが作成されます。デフォルトでは、ブロック・チェンジ・トラッキング・ファイルは、DB_CREATE_FILE_DEST
初期化パラメータで指定された作成先にOracle Managed Filesとして作成されます。また、ブロック・チェンジ・トラッキングを有効にするときに名前を指定して、選択した任意の場所にブロック・チェンジ・トラッキング・ファイルを配置することもできます。RAWデバイス(つまりファイル・システムのないディスク)をチェンジ・トラッキング・ファイルとして使用しないことをお薦めします。
注意:
Oracle RAC環境では、チェンジ・トラッキング・ファイルは、クラスタ内のすべてのノードからアクセスできる共有ストレージに格納する必要があります。
RMANでは、チェンジ・トラッキング・ファイルのバックアップおよびリカバリはサポートされていません。データベースは、チェンジ・トラッキング・ファイルが無効であると判断した場合、チェンジ・トラッキング・ファイルを再設定します。データベース全体またはサブセットをリストアおよびリカバリする場合、データベースは、ブロック・チェンジ・トラッキング・ファイルを再設定し、変更の追跡を再度開始します。レベル0の増分バックアップを作成した後の次の増分バックアップでは、チェンジ・トラッキング・データを使用できます。
ブロック・チェンジ・トラッキング・ファイルのサイズは、データベースのサイズおよびREDOの有効になっているスレッドの数に比例します。ブロック・チェンジ・トラッキング・ファイルのサイズは、データベースの変更に応じて増減します。このサイズは、データベースの更新頻度とは関係ありません。
通常、シングル・インスタンスのブロック・チェンジ・トラッキングに必要な領域は、追跡するデータ・ブロックのサイズの約1/30,000です。Oracle RAC環境では、データベースのサイズの1/30,000×有効になっているスレッドの数です。
この見積りが示すサイズよりファイルが大きくなる場合の要因を次に示します。
データベースの拡張に応じて領域を割り当てた場合にオーバーヘッドが発生しないようにするために、ブロック・チェンジ・トラッキング・ファイルのサイズは10MBから始まります。新しい領域は10MBずつ割り当てられます。つまり、ファイルのサイズは、約300GBまでのデータベースに対しては10MB以上、約600GBまでのデータベースに対しては20MB以上になります。
データファイルのサイズとは関係なく、データファイルごとに320KB以上の領域がブロック・チェンジ・トラッキング・ファイルに割り当てられます。このため、比較的小さなデータファイルが多数ある場合は、同じデータを含む大きなデータファイルが少数ある場合よりチェンジ・トラッキング・ファイルのサイズが大きくなります。
ブロック・チェンジ・トラッキングは、データベースがオープンまたはマウントされている場合に有効にできます。この項では、ブロック・チェンジ・トラッキング・ファイルをOracle Managed Filesとしてデータベース領域に作成することを想定しており、データベース領域とは、データファイル、制御ファイル、オンラインREDOログ・ファイルなどのアクティブなデータベース・ファイルをデータベースが保持する場所です。データベース領域および高速リカバリ領域については、「高速リカバリ領域内のファイルの概要」を参照してください。
ブロック・チェンジ・トラッキングを有効にする手順
V$BLOCK_CHANGE_TRACKING
ビューを問い合せて、チェンジ・トラッキングが有効になっているかどうかを確認し、有効になっている場合はブロック・チェンジ・トラッキング・ファイルのファイル名も調べることができます。
チェンジ・トラッキングが有効かどうかを確認する方法
SQL*Plusで次の問合せを入力します(出力例も示します)。
COL STATUS FORMAT A8 COL FILENAME FORMAT A60 SELECT STATUS, FILENAME FROM V$BLOCK_CHANGE_TRACKING; STATUS FILENAME -------- ------------------------------------------------------------ ENABLED /disk1/bct/RDBMS/changetracking/o1_mf_2f71np5j_.chg
チェンジ・トラッキング・ファイルを移動するには、ALTER DATABASE RENAME FILE
文を使用します。データベースはマウントされている必要があります。この文は、新しい場所を参照するように制御ファイルを更新し、チェンジ・トラッキング・ファイルの内容を保持します。データベースを停止できない場合は、ブロック・チェンジ・トラッキングを無効にしてから有効にすることができます。この場合、既存のブロック・チェンジ・トラッキング・ファイルの内容は消失します。
チェンジ・トラッキング・ファイルの場所を変更する手順
関連項目:
ALTER DATABASE文およびALTER SYSTEM
文については、『Oracle Database SQL言語リファレンス』
を参照してください。
この項では、長期格納用のバックアップを作成する場合の基本的な概念およびタスクについて説明します。
この項の内容は、次のとおりです。
BACKUP
... KEEP
を使用して、バックアップの保存方針から除外する包括的なバックアップを作成できます。データベースのリストアおよびリカバリに必要なすべてのファイルが単一のディスクまたはテープにバックアップされるため、このバックアップは包括的になります。また、KEEP
オプションは、保存方針からのバックアップの除外を永続的または指定した期間行うように指定します。BACKUP ... KEEP
で作成されるバックアップの一般名はアーカイブ・バックアップです。
「データのアーカイブについて」で説明されているように、バックアップおよびリカバリ計画の目的の1つは、データを保存することです。BACKUP ... KEEP
を使用すると、保存方針に指定された期間より長くデータベースのバックアップを保持できます。たとえば、規定の要件を満たすために毎年元旦にデータベースをバックアップして、メディアをオフサイトに格納できます。アーカイブ・バックアップを作成して数年後に、このバックアップをリストアおよびリカバリして、バックアップ時のデータの状態を問い合せることができます。
アーカイブ・バックアップのもう1つの目的は、テストのためにリストアするバックアップを作成し、後で削除することです。たとえば、データベースをバックアップしてテスト環境でリストアした後、テスト・データベースが操作可能になったらアーカイブ・バックアップを破棄することができます。また、これと関連して、別のユーザーまたはホストへの転送完了後に削除可能な自己完結型のバックアップを作成するという目的もあります。たとえば、別のユーザーが、レポートまたはテスト用にデータベースのコピーを必要とする場合があります。
BACKUP
コマンドでKEEP
オプションを使用すると、バックアップを保存方針から除外できます。また、CHANGE
コマンドのKEEP
および
NOKEEPオプションを使用して、既存のバックアップのステータスを変更することもできます。KEEP
属性を使用したバックアップは、他のすべてのバックアップと同様にリカバリできる有効なバックアップです。
KEEP UNTIL TIME
句を使用してアーカイブ・バックアップの終了日を指定したり、FOREVER
を使用してバックアップを永続的に保持するように指定できます。UNTIL
を指定した場合、構成されている保存方針に関係なく、UNTIL
で指定した時間が経過すると、バックアップはRMANによって不要とマークされます。たとえば、KEEP UNTIL TIME '01-JAN-13'
と指定すると、2013年1月1日の深夜0時を1秒経過した後にバックアップが不要とマークされます。UNTIL TIME
を午後9時に指定すると、午後9時1分にバックアップが不要とマークされます。
BACKUP
コマンドにKEEP
を指定すると、RMANは複数のバックアップ・セットを生成します。BACKUP ... KEEP
コマンドには次の特性があります。
データファイル、制御ファイル(制御ファイルの自動バックアップが無効になっている場合でも)およびサーバー・パラメータ・ファイルが自動的にバックアップされます。
データベースのバックアップを一貫性のある状態にリカバリできるように、アーカイブREDOログのバックアップが自動的に生成されます。
FORMAT
、POOL
またはTAG
パラメータを指定した場合、これらのパラメータはすべてのバックアップに使用されます。このため、FORMAT
文字列で、複数のバックアップ・ピースを作成できるようにする必要があります。%U
置換変数を指定すると、最も簡単にこの要件を満たすことができます。
通常のリストア・ポイントを作成するオプションのRESTORE POINT句がサポートされています。通常のリストア・ポイントとは、バックアップを一貫性のある状態にするためにリカバリする必要がある時点のSCNのラベルのことです。SCNは、データファイルのバックアップが完了した直後に取得されます。RMANでは、リカバリ・カタログを使用してリストア・ポイントが再同期化され、バックアップが存在する間はそのリストア・ポイントが保持されます。リストア・ポイントの表示方法については、「リストア・ポイントの表示」を参照してください。
関連項目:
CHANGEの構文については、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。BACKUP ... KEEPの構文については、『Oracle Databaseバックアップおよびリカバリ・リファレンス』
を参照してください。
通常、アーカイブ・バックアップはテープに作成します。データ保護を目的としたバックアップは、アクセス可能な状態のままで再利用されるテープのセットに格納されることが多いため、アーカイブ・バックアップ用にテープのセットを保存することをお薦めします。この特別なテープのセットにアーカイブ・バックアップを書き込んだ後、オフサイトの保管場所に格納することができます。
動的更新を行うストアド・スクリプトまたはシェル・スクリプトを作成して、アーカイブ・バックアップを作成するための手順を変更できます。スクリプトを実行すると、リストア・ポイントの名前、バックアップ形式などを動的に設定できます。
関連項目:
アーカイブ・バックアップをリストアする場合の推奨方法については、「ターゲット接続を行わないバックアップベースの複製の例」を参照してください。
RMANコマンド・ファイルを使用してアーカイブ・バックアップを作成する方法については、「コマンド・ファイルでの置換変数の使用」および「動的ストアド・スクリプトの作成および実行」を参照してください。
次の例では、QUARTERLY
というバックアップのタグを使用して長期用のアーカイブ・バックアップを作成し、長期格納用に確保されているOracle Secure Backupの専用のテープ・ファミリに割り当てます。この例では、次の点に注意してください。
FOREVER
キーワードは、このバックアップがバックアップの保存方針による削除の対象にはならないことを示します。
BACKUP
コマンドでは、FY06Q4
という名前のリストア・ポイントを作成します。そのリストア・ポイントは、このバックアップが一貫性を持つ時点におけるSCNに対応します。
長期用のアーカイブ・バックアップを作成する手順
関連項目:
リストア・ポイントについては、「フラッシュバック・データベース、リストア・ポイントおよび保証付きリストア・ポイントの概要」を参照してください。
アーカイブ・バックアップの目的の1つは、テスト・データベースを作成することです。テスト・データベースの作成方法は、「長期格納用のアーカイブ・バックアップの作成」で説明されている方法と基本的に同じです。異なる点は、バックアップを、作成後すぐに削除することです。
BACKUP ... KEEP UNTIL
パラメータを使用すると、バックアップの一時的なステータスを指定できます。バックアップを作成後、そのバックアップを同じ日に新しいホストにリストアするとします。この場合、KEEP UNTIL
TIME SYSDATE+1
を指定して、1日間のみこのバックアップの保存方針を上書きするようにRMANに指示できます。1日が経過すると、構成されているバックアップ保存方針に関係なく、バックアップは不要とマークされます。
例9-11のコマンドは、タグTESTDB
が含まれているアーカイブ・バックアップを一時ディスクに作成します。この例では、バックアップをリカバリする時点のラベルとなる通常のリストア・ポイントを作成します。バックアップ中にデータベースがオープンしている場合、RMANはアーカイブREDOログのみをバックアップします。アーカイブ・ログは、オフライン・バックアップでは必要ないためバックアップされません。
例9-11 一時的なアーカイブ・バックアップの作成
BACKUP DATABASE FORMAT '/disk1/oraclebck/%U' TAG TESTDB KEEP UNTIL TIME 'SYSDATE+1' RESTORE POINT TESTDB06;
アーカイブ・バックアップをリストアする場合の推奨方法は、DUPLICATE
コマンドを使用することです。「ターゲット接続を行わないバックアップベースの複製の例」を参照してください。
この項では、バックアップ・セットおよびイメージ・コピーのバックアップ方法について説明します。項目は次のとおりです。
BACKUP BACKUPSET
コマンドを使用して、他のバックアップ・ジョブによって作成されたバックアップ・セットをバックアップできます。また、BACKUP RECOVERY AREA
を使用すると、現行および以前のすべての高速リカバリ領域に作成されたリカバリ・ファイルをバックアップすることもできます。リカバリ・ファイルとは、全体および増分バックアップ・セット、制御ファイルの自動バックアップ、データファイルのコピーおよびアーカイブREDOログのことです。BACKUP RECOVERY AREA
では、SBTバックアップおよびディスク・バックアップがサポートされています。リカバリ・ファイルのディスク・バックアップの場合は、TO DESTINATION
オプションを使用する必要があります。
すべてのバックアップをディスクおよびテープの両方に存在させる場合。
バックアップをディスクからテープに移動して、ディスク上の領域を解放する場合。このタスクは、必要に応じて領域を再利用できるようにデータベースで高速リカバリ領域を使用している場合、特に重要です。
また、BACKUP
COPY
OF
コマンドを使用すると、データファイル、制御ファイルおよびアーカイブREDOログのイメージ・コピーをバックアップすることもできます。このコマンドでは、バックアップ・セットまたはイメージ・コピーのいずれかを出力できるため、イメージ・コピーからバックアップ・セットを生成できます。ディスク上にイメージ・コピーとして作成されたデータベースのバックアップをテープにバックアップするには、この形式のバックアップを使用します。
BACKUP
BACKUPSET
コマンドを実行すると、バックアップ・セットにバックアップ・ピースの追加コピーが作成されますが、新しいバックアップ・セットは作成されません。つまり、BACKUP
BACKUPSET
は、BACKUP
のDUPLEX
またはMAXCOPIES
オプションを使用する場合と類似しています(「バックアップ・セットの多重化」を参照)。他の形式のBACKUP
コマンドによって生成されたバックアップ・セットのコピーが個別のバックアップ・セットにならないのと同様に、BACKUP
BACKUPSET
によって作成されたバックアップ・セットの追加コピーも新しいバックアップ・セットにはなりません。
冗長性に基づくバックアップの保存方針では、バックアップ・セットはバックアップの1つのインスタンスとみなされます。これは、バックアップ・セットを構成するバックアップ・ピースの複数のコピーが存在する場合(バックアップ・セットがディスクからテープにバックアップされている場合など)でも該当します。
リカバリ期間に基づく保存方針では、バックアップ・セットのすべてのコピーが不要とみなされるか、またはすべてが不要でないとみなされます。LIST
およびREPORT
コマンドの出力を確認すると、この点を最も簡単に理解できます。
バックアップをバックアップする場合のバックアップの保存方針の影響を表示する手順
この項では、BACKUP BACKUPSET
コマンドを使用して、バックアップ・セットをディスクからテープにコピーする方法について説明します。この手順では、デフォルト・デバイスとしてSBTデバイスが構成されていることを想定しています。
ディスクからテープにバックアップ・セットをバックアップする手順