9 バックアップおよびリカバリの実行

この章では、Oracle Recovery Manager (RMAN)でのOracle Databaseのバックアップおよびリカバリについて説明します。この章を読むと、Oracle Databaseのバックアップ操作およびリカバリ操作の基本概念に精通し、ディスクベースのバックアップ計画の実装方法を習得して、データベース・ファイルに対する簡単な修復を行うことができます。

この章の構成は、次のとおりです。

関連項目:

9.1 データベースのバックアップとリカバリの概要

Oracle Databaseのバックアップおよびリカバリでは、データベース・ファイルの物理バックアップを行い、データベースを再構築できるようにすることが主な目的になります。

Oracle Recovery Manager (RMAN)はコマンドライン・ツールで、Oracle Databaseを効率よくバックアップおよびリカバリする際に使用することをお薦めします。RMANに組込みのバックアップおよびリカバリ機能によって保護されるファイルには、データファイル、制御ファイル、サーバー・パラメータ・ファイルおよびアーカイブREDOログ・ファイルがあります。これらのファイルを使用すると、データベースを再構築できます。RMANは、サーバーと密接に作用するよう設計されており、バックアップおよびリカバリ中のブロックレベルの破損を検出します。RMANにより、ファイルの多重化やバックアップ・セットの圧縮によるバックアップ時のパフォーマンスと領域消費を最適化でき、前のテープやストレージ・メディア製品と統合できます。バックアップ・メカニズムは、データファイルの間違った削除やディスク・ドライブの障害などによるファイルの損傷を回避するために、物理レベルで機能します。また、RMANを使用すると、フラッシュバックなどの他の手法を使用できない場合に、Point-in-Timeリカバリを実行して論理的な障害からリカバリすることもできます。

論理バックアップ(表や表領域のようなデータベース・オブジェクトのエクスポートなど)は、物理バックアップの補助手段としては有効ですが、データベース全体の保護はできません。効果的なバックアップ計画は物理バックアップに基づいたものであることが必要です。

Oracle Databaseフラッシュバック機能は、物理および論理バックアップに対する使いやすい効率的な代替方法として一連の物理および論理データ・リカバリ・ツールを提供します。フラッシュバック機能を使用すると、バックアップからデータファイルをリストアしなくても、不要なデータベースの変更の結果を取り消すことができます。

ここでは、次のフラッシュバック機能へのリンクを示します。これらの機能の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

最初の2つの機能は論理レベルで実行され、3つ目の機能は物理レベルで実行されます。これらの機能では、失われたデータを回復する場合に、論理エクスポートの作成などの詳細な準備を必要としませんが、Oracle Flashback Databaseでは機能を有効にするのに詳細な準備が必要です。ユーザーのデータベースが使用可能である場合は、すべての機能を使用できます。Oracle Databaseのフラッシュバック機能の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』で説明しています。

注意:

Oracle Flashback Databaseでは、消失したデータファイルのリカバリは実行できません。

9.1.1 CDBとPDBのバックアップおよびリカバリの概要

マルチテナント・アーキテクチャを使用すると、マルチテナント・コンテナ・データベース(CDB)全体、ルート、または1つ以上のプラガブル・データベース(PDB)に対してバックアップおよびリカバリ操作を実行できます。

CDBとPDBのバックアップおよびリカバリで使用するOracle Recovery Manager (RMAN)コマンドは、非CDBで使用するコマンドと同じです(ただし、構文にわずかな違いがあります)。非CDBで実行するバックアップおよびリカバリ操作は、CDBとPDBでも実行可能です。次のものが必要となります。

  • 全体バックアップと増分バックアップ

  • 完全およびPoint-in-Timeリカバリ(PITR)

  • フラッシュバック・データベース

  • レポート作成操作(バックアップのリスト作成およびバックアップの照合チェック)

CDBおよびPDBへの接続について

ルートには、次のいずれかの方法で接続できます。

  • オペレーティング・システム認証を使用した接続

    SYSDBA権限を持つSYSユーザーとしてルートに接続されます。

  • 共通ユーザーとしてのローカル接続

  • 共通ユーザーとしてのOracle Net Servicesを介した接続

TARGETとしてPDBに接続するには、次の方法のいずれかを使用します。

  • PDBのデータベース・サービスに変換されるネット・サービス名を使用して接続します

  • SYSDBA権限またはSYSBACKUP権限を持つ共通ユーザーまたはローカル・ユーザーとしてローカルに接続します

注意:

PDBに直接接続している場合には、一部の操作は使用できません。これらの操作のリストは、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

関連項目:

PDBのバックアップおよびリカバリの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』で次の項を参照してください。

9.1.1.1 CDBのバックアップおよび完全リカバリ

マルチテナント・コンテナ・データベース(CDB)全体に対するバックアップと完全リカバリ操作を実行するには、TARGETとしてルートに接続します。

SYSDBA権限またはSYSBACKUP権限を持つ共通ユーザーとして接続を確立する必要があります。

ルートに接続したら、非CDBに対する操作の実行に使用するものと同じコマンドを使用して、CDB全体のバックアップと完全リカバリを実行します。

関連項目:

CDBのバックアップと完全リカバリの実行の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』の次の項を参照してください。

9.1.1.2 PDBのバックアップおよび完全リカバリ

バックアップと完全リカバリ操作は、単一のプラガブル・データベース(PDB)または複数のPDBに対して実行できます。

PDBのバックアップ

PDBを再配置したり、非CDBをPDBとしてクローニングする場合、プリプラグイン・バックアップを使用し続けることをお薦めします。プリプラグイン・バックアップを宛先CDBで使用できるようにするには、プリプラグイン・バックアップに関するメタデータが、宛先CDBのRMANリポジトリにエクスポートされている必要があります。

バックアップを使用可能にする方法は、操作のタイプによって異なります。

  • 非CDBのクローニングによるPDBの作成

    非CDBが読取り/書込みモードでオープンされている場合は、クローニング前の最後のステップとしてDBMS_PDB.EXPORTRMANBACKUPプロシージャを実行する必要があります。宛先CDBに対するPDBとして非CDBをプラグインすると、ソースの非CDBのバックアップ・メタデータが、宛先CDBのデータ・ディクショナリにコピーされます。

  • 別のCDBへのPDBの再配置

    ソースPDBを切断すると、バックアップ・メタデータが自動的にエクスポートされます。したがって、DBMS_PDB.EXPORTRMANBACKUPを実行する必要はありません。

プリプラグイン・バックアップは、ソースの非CDBまたはPDBをプラグインする宛先CDBのみで使用できます。

注意:

バックアップ・コマンドの構文

Oracle Recovery Manager (RMAN)コマンドは同じですが、複数のPDBに対する操作の実行で使用する構文は一部変更します。

単一のPDBに対するバックアップと完全リカバリ操作を実行するには、TARGETとして次のいずれかのコンテナに接続できます。

  • PDB

    この場合は、非CDBのバックアップまたはリカバリで使用するのと同じコマンドを使用します。たとえば、PDBをバックアップするには、BACKUP DATABASEコマンドを使用します。

  • CDB$ROOT

    この場合、RMANコマンドでPLUGGABLE DATABASE句を使用します。次のコマンドでは、ルートに接続されている場合にhrpdbというPDBをバックアップします。

    BACKUP PLUGGABLE DATABASE hrpdb;
    

    単一のコマンドを使用して複数のPDBに対するバックアップと完全リカバリ操作を実行するには、ルートに接続する必要があります。PLUGGABLE DATABASE句の後に、操作を実行する対象のPDBのリストを指定して使用します。次の例では、ルートに接続されている場合にhrpdbsalespdbおよびinvpdbの各PDBをバックアップします。

    BACKUP PLUGGABLE DATABASE hrpdb, salespdb, invpdb;
    

関連項目:

PDBのバックアップおよびリカバリの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』で次の項を参照してください。

9.1.1.3 マルチテナント環境におけるPoint-in-Timeリカバリ

マルチテナント・コンテナ・データベース(CDB)全体または特定のプラガブル・データベース(PDB)のPoint-in-Timeリカバリを実行できます。

CDBのPoint-in-Timeリカバリ

CDBのPoint-in-Timeリカバリを実行するには、次の前提条件を満たす必要があります。

  • SYSDBAまたはSYSBACKUP権限を持つ共通ユーザーとしてルート・コンテナにログインする必要があります。

  • CDBはマウントされている必要があります。

リカバリ操作を実行するときは、非CDBで使用するのと同じコマンドを使用します。

PDBのPoint-in-Timeリカバリ

PDBの不完全リカバリの方法は、CDBのUNDOモードによって異なります。次の表で、相違点について説明します。

表9-1 Point-in-Timeリカバリ方法の相違点

CDBのUNDOモード 補助インスタンスの使用 TARGETとしての接続先 PDBリカバリ中のオープン・モード リカバリに使用するRMANコマンド

共有

あり

CDBルート

クローズ(CDBはオープン可能)

PLUGGABLE DATABASE句を含めて、リカバリする必要があるPDBを指定します。

RMANは、リカバリ時に作成される一時ファイルを格納するために、補助の宛先を使用します。高速リカバリ領域が構成されている場合は、その領域が補助の宛先として使用されます。補助の宛先は、RECOVERコマンドにAUXILIARY DESTINATION句を使用することで、明示的に指定できます。

ローカル

なし

PDBまたはCDBルート

クローズ(CDBはオープン可能)

PDBに接続したときには、非CDBに使用するものと同じコマンドを使用します。ルートに接続したときには、リカバリする必要のあるPDBを指定するためのPLUGGABLE DATABASE句を含めます。

関連項目:

Point-in-Timeリカバリの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』の次の項を参照してください。

9.1.1.4 マルチテナント環境におけるフラッシュバック・データベース

マルチテナント・コンテナ・データベース(CDB)全体または特定のブラガブル(PDB)に対して、フラッシュバック・データベース操作を実行できます。

RMANは、Point-in-Timeリカバリ時に作成される一時ファイルを格納するために、補助の宛先を使用します。デフォルトでは、高速リカバリ領域が補助の宛先として使用されます。補助の宛先は、RECOVERコマンドにAUXILIARY DESTINATION句を使用することで、明示的に指定できます。

CDBのフラッシュバック

CDBに対してフラッシュバック・データベースを実行するには、次の前提条件を満たす必要があります。

  • SYSDBAまたはSYSBACKUP権限を持つ共通ユーザーとしてrootに接続する必要があります。

  • CDBはマウントされている必要があります。

フラッシュバック操作の目標時点は、CDBリストア・ポイント、時間式またはSCNを使用して指定します。CDBリストア・ポイントは、そのCDB内のどのPDBからでもアクセスできます。ただし、リストア・ポイントは、そのいずれのPDBのPDBサブインカネーションも反映しません。

PDBのフラッシュバック

FLASHBACK DATABASEコマンドを使用して、1つのPDBに対してフラッシュバック・データベース操作を実行できます。特定のPDBでフラッシュバック・データベース操作を実行すると、そのPDBに関連するデータファイルのみを変更します。CDB内のその他のPDBは影響を受けず、使用できます。PDBリストア・ポイントは、そのリストア・ポイントが定義されているPDBにのみアクセス可能で、このPDBに対する操作にのみ使用できることに注意してください。

表9-2 フラッシュバック方法の相違点

CDBのUNDOモード 補助インスタンスの使用 TARGETとしての接続先 PDBリカバリ中のオープン・モード コマンド

共有

あり

CDBルート

クローズ(CDBのオープンは必要)

FLASHBACK PLUGGABLE DATABASEコマンドを使用します。クリーンPDBリストア・ポイントに対するフラッシュバックのみが可能です。

RMANは、フラッシュバック時に作成される一時ファイルを格納するために、補助の宛先を使用します。高速リカバリ領域が構成されている場合は、その領域が補助の宛先として使用されます。補助の宛先は、FLASHBACK PLUGGABLE DATABASEコマンドにAUXILIARY DESTINATION句を使用することで、明示的に指定できます。

ローカル

なし

CDBルートまたはPDB

クローズ(CDBのオープンは必要)

FLASHBACK PLUGGABLE DATABASEコマンドを使用します。CDBリストア・ポイント、PDBリストア・ポイント、時間式またはターゲットSCNを使用してフラッシュバック操作の目標時点を指定できます。

関連項目:

CDBおよびPDBのフラッシュバックの詳細は、Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイドの次の項を参照してください。

9.2 データベースのバックアップおよびリカバリの概要

データベースのバックアップとは、データファイル、制御ファイルおよびアーカイブREDOログ・ファイルのコピーを作成することです(データベースがARCHIVELOGモードで実行されている場合)。データベースのリストアとは、通常はディスクまたはテープなどのバックアップ媒体から元の場所または新しい場所に、データベースを構成する物理ファイルをコピーすることです。データベースのリカバリとは、増分バックアップおよびREDOログをリストア済ファイルに適用することによって、バックアップからリストアしたデータベース・ファイルを、バックアップ後にデータベースに加えられた変更で更新するプロセスのことです。

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

関連項目:

9.2.1 ARCHIVELOGモードとNOARCHIVELOGモード

DBAとして決定する必要がある重要事項の1つは、データベースをARCHIVELOGモードとNOARCHIVELOGモードのどちらで実行する必要があるかです。選択するモードは、可用性および信頼性の要件に依存します。また、実行可能なバックアップおよびリカバリ操作のタイプにも影響します。

NOARCHIVELOGモードでは、一杯になったREDOログ・グループ(非アクティブになる)を再利用できます。このモードでは、データベースがインスタンス障害から保護されますが、メディア障害からは保護されません。ARCHIVELOGモードでは、一杯になったREDOログ・グループはアーカイブされます。このモードでは、データベースがインスタンス障害とメディア障害の両方から保護されますが、追加のハードウェア・リソースが必要な場合があります。

関連項目:

ARCHIVELOGモードとNOARCHIVELOGモードの詳細は、『Oracle Database管理者ガイド』を参照してください

9.2.2 RMANリポジトリ

Oracle Recovery Manager (RMAN)では、各データベースの操作の実行対象となるデータベース・ファイルおよびバックアップのレコードが保持されます。このメタデータをRMANリポジトリと呼びます。データベースのリカバリをリクエストすると、RMANはこのリポジトリ・メタデータを使用して、リストアおよびリカバリに必要な最も効率的なバックアップを選択します。

データベースのRMANリポジトリが第1に格納される場所はデータベースの制御ファイルです。RMANのこのメタデータの重要性は、制御ファイルの保護がバックアップ計画の重要な部分を占めるもう1つの理由となっています。インストールの形態によっては、RMANリポジトリの2番目のコピーがリカバリ・カタログと呼ばれるスキーマに格納されます。リカバリ・カタログは別のデータベースにあり、複数のターゲット・データベースのメタデータを格納できます。

リカバリ・カタログを使用することをお薦めします。リカバリ・カタログでは、制御ファイルより長期のメタデータ履歴を格納するため、制御ファイルの履歴より前の時点にリカバリすることができます。また、ターゲット制御ファイルおよびすべてのバックアップが消失した場合でも、リカバリ・カタログ内のRMANメタデータを使用できます。

関連項目:

リカバリ・カタログの作成および管理の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください

9.2.3 イメージ・コピーおよびバックアップ・セット

Oracle Recovery Manager (RMAN)で作成されたデータベース・バックアップは、イメージ・コピーまたはバックアップ・セットとして格納されます。

イメージ・コピーは、ファイルが正確にバイト単位でコピーされたものです。イメージ・コピーは、オペレーティング・システム・レベルでファイルをコピーして作成できます。ただし、オペレーティング・システム・レベルでのファイルのコピーとは異なり、RMANによって作成されたイメージ・コピーは、データベースのリストア操作およびリカバリ時にRMANが使用できるようにRMANリポジトリに記録されます。RMANによるファイルのリストアが可能なのは、RMANリポジトリにファイルが記録されているときのみです。RMANは、ディスク上にのみイメージ・コピーを作成できます。

バックアップ・セットとは、RMANのBACKUPコマンドで生成される論理エンティティです。このコマンドにより、ディスクまたはテープ・デバイス上に1つ以上のバックアップ・セットを生成できます。イメージ・コピーではすべてのRMAN機能を使用することはできませんが、イメージ・コピーに増分バックアップを適用すること(統合的な全体バックアップ)が可能で、先にイメージ・コピーをコピーしなくても、所定の場所で直接使用してリストアを迅速に実行できるという利点があります。

各バックアップ・セットには、バックアップ・ピースと呼ばれる1つ以上の物理ファイルが含まれています。1つのバックアップ・ピースに、1つ以上のデータベース・ファイルのバックアップがRMAN固有のコンパクトな形式で格納されます。バックアップ・セットの利点の1つとして、RMANの未使用ブロックの圧縮により、データファイルのバックアップに使用される領域を節約できることがあげられます。データファイルの中でデータの格納に使用されたブロックのみがバックアップ・セットに含められます。また、バックアップ・セットは圧縮、暗号化、テープへの送信が可能で、データファイルのコピーでは使用できない未使用領域の高度な圧縮を利用できます。

9.2.4 全体バックアップと増分バックアップ

データファイルの全体バックアップには、データファイルのすべての使用済ブロックが含まれます。全体バックアップはイメージ・コピーとバックアップ・セットのいずれかです。

増分バックアップでは、バックアップとバックアップの間に変更されたデータファイルのブロックのみがコピーされます。データファイルのすべてのブロックをコピーしたレベル0の増分バックアップは、増分バックアップ計画の開始点として使用されます。

レベル1の増分バックアップは、前回のレベル0またはレベル1の増分バックアップの後で変更されたブロックのイメージのみをコピーします。レベル1のバックアップは、直近のレベル0のバックアップ以降に変更されたすべてのブロックが含まれる累積バックアップか、直近のレベル0またはレベル1の増分バックアップ以降に変更されたブロックのみが含まれる差分バックアップです。

レベル0の増分バックアップは、バックアップ・セットまたはイメージ・コピーのいずれかにできますが、レベル1の増分バックアップは、バックアップ・セットのみが可能です。

通常の増分バックアップ計画では、レベル1のバックアップを1日1回のように定期的に行います。

リカバリ時に、Oracle Recovery Manager (RMAN)では必要に応じて増分バックアップとREDOログの両方を自動的に適用し、データベースを必要な時点までリカバリします。

9.2.5 一貫性バックアップと非一貫性バックアップ

バックアップには、一貫性バックアップと非一貫性バックアップがあります。一貫性バックアップを作成するには、データベースが正常に停止され、バックアップ中はクローズ状態である必要があります。停止プロセスの実行時にコミットされたすべての変更がデータファイルに書き込まれるため、データファイルはトランザクションの一貫性が保たれた状態となります。一貫性バックアップからデータファイルをリストアするときは、データベースをすぐにオープンできます。

データベースがARCHIVELOGモードの場合は、アーカイブREDOログ・ファイルを使用してリカバリが可能な非一貫性バックアップを作成できます。オープンしているデータベースのバックアップは、まだデータファイルに適用されていない変更がオンラインREDOログ・ファイルに含まれているため、一貫性がありません。確実にリカバリできるように、オンラインREDOログ・ファイルをアーカイブした後、データファイルとともにバックアップする必要があります。

名前によらず、非一貫性バックアップは一貫性バックアップと同程度の堅牢性を持っています。一貫性バックアップの作成と比較した場合、データベースがオープンしていて更新可能な状態でもデータベースのバックアップができるという利点があります。

9.2.6 メディア・リカバリ

アーカイブREDOログ・ファイルおよびデータファイルをリストアする場合、データベースをオープンする前にメディア・リカバリを実行する必要があります。データファイルに反映されていないアーカイブREDOログ・ファイルのデータベース・トランザクションがすべてデータファイルに適用され、トランザクションの一貫性が保たれた状態になってから、データベースがオープンされます。

メディア・リカバリには、制御ファイル、データファイル(通常、バックアップからリストアされたもの)、およびデータファイルがバックアップされた時点以降の変更を含むオンラインREDOログ・ファイルとアーカイブREDOログ・ファイルが必要です。メディア・リカバリは、ファイルやディスクの消失などのメディア障害から、または表のコンテンツの削除などのユーザー・エラーからリカバリする場合によく使用されます。

メディア・リカバリには、完全リカバリとPoint-in-Timeリカバリがあります。完全リカバリは、個々のデータファイル、表領域またはデータベース全体に適用できます。Point-in-Timeリカバリはデータベース全体に適用されます(また、Oracle Recover Manager (RMAN)の自動化支援によって、個々の表領域に適用されることもあります)。

完全リカバリでは、バックアップのデータファイルをリストアし、すべての変更をアーカイブREDOログ・ファイルおよびオンラインREDOログ・ファイルからデータファイルに適用します。データベースは障害発生時の状態に戻り、データを失うことなくオープンできます。

Point-in-Timeリカバリでは、ユーザーが選択した過去のある時点の内容にデータベースを戻します。ターゲットの時点より前に作成されたデータファイルのバックアップ、およびバックアップ作成時からターゲットの時点までのアーカイブREDOログ・ファイル一式をリストアします。バックアップ時からターゲットの時点までの変更がデータファイルに適用されます。ターゲットの時点より後の変更はすべて破棄されます。

RMANでは、データベースの完全リカバリとPoint-in-Timeリカバリの両方を実行できます。ただし、このマニュアルでは完全リカバリを中心に説明します。

関連項目:

9.2.7 高速リカバリ領域

バックアップおよびリカバリ・ファイルの管理を簡略化するには、データベースの高速リカバリ領域を作成します。高速リカバリ領域とは、バックアップおよびリカバリ・ファイルの記憶域の場所を集中化するOracle管理ディレクトリ、ファイル・システムまたはOracle Automatic Storage Managementディスク・グループのことです。アーカイブ・ログとフラッシュバック・ログは高速リカバリ領域に作成されます。Oracle Recovery Manager (RMAN)は、バックアップ・セットおよびイメージ・コピーを高速リカバリ領域に格納し、メディア・リカバリ時にこれらを使用してファイルをリストアします。高速リカバリ領域は、テープ用のディスク・キャッシュとしても機能します。

Oracle Databaseではこの記憶域を自動的に管理し、不要になったファイルを削除します。バックアップを定期的にテープにコピーすると、他のファイル用に高速リカバリ領域を解放できます。

バックアップの宛先を指定せずにRMANのBACKUPコマンドを発行すると、RMANは高速リカバリ領域(構成されている場合)に自動的にバックアップします。

高速リカバリ領域を構成して、バックアップ管理を簡略化することをお薦めします。このマニュアルでは、特に注記がある場合以外は、リカバリ領域を使用することが前提となります。

9.3 基本バックアップおよびリカバリのためのデータベースの構成

この項では、推奨バックアップ計画を利用するためのデータベースの設定方法について説明します。

バックアップおよびリカバリのファイルと操作を自動管理するOracle Databaseの機能を最大限に利用するには、データベースを次のように構成します。

  • ほとんどのバックアップ関連ファイルのストレージ管理を自動化する高速リカバリ領域を使用し、アーカイブREDOログ・ファイルの宛先として指定します。

  • ARCHIVELOGモードでデータベースを実行します。これにより、オンライン・バックアップが実行でき、完全なメディア・リカバリやPoint-in-Timeメディア・リカバリなどのデータ・リカバリ・オプションを指定できます。

また、バックアップするファイル、バックアップをディスクに格納する形式、ファイルを削除できる時期などを管理する複数のポリシーを設定する必要があります。

マルチテナント環境では、ルートに接続して、マルチテナント・コンテナ・データベース(CDB)全体のバックアップおよびリカバリ設定を構成する必要があります。これらの設定は、CDB内のルートおよびすべてのプラガブル・データベース(PDB)に適用されます。

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

9.3.1 高速リカバリ領域の領域使用量および位置の計画

作業中のデータベース・ファイル・セットとは別のストレージ・デバイスに高速リカバリ領域を配置することをお薦めします。これを行わなかった場合、このストレージ・デバイスがデータベースのシングル・ポイント障害になる可能性があります。

高速リカバリ領域に割り当てる記憶領域の容量は、データベースのサイズとアクティビティ・レベル、およびリカバリ目標によって異なります。オブジェクトは使用するバックアップの種類、使用する時間および維持する期間を決定します。

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

9.3.1.1 バックアップ保存ポリシーおよび高速リカバリ領域について

高速リカバリ領域での領域管理は、バックアップ保存ポリシーによって制御されます。保存ポリシーは、ファイルがいつ不要になるか、つまりデータ・リカバリ目標を達成するために必要ではなくなるかを決定します。

保存ポリシーは、バックアップの冗長性またはリカバリ期間がベースとなります。

冗長性ベースのポリシーを使用する場合は、Oracle Recovery Manager (RMAN)に保持される各データファイルおよび制御ファイルの全体またはレベル0のバックアップの数を指定します。特定のデータファイルまたは制御ファイルの全体またはレベル0のバックアップの数が冗長性の設定を超えると、RMANは余分なバックアップを不要とみなします。

期間ベースのリカバリ・ポリシーでは、期間を日数で指定します。ファイルは、指定した期間内のシステム変更番号(SCN)への完全リカバリまたはPoint-in-Timeリカバリに必要ではなくなった場合にのみ、不要になります。したがって、期間ベースのリカバリ保存ポリシーをお薦めします。

デフォルトの保存ポリシーでは、冗長性が1です。高速リカバリ領域のファイルが不要になった後でも、通常は新規ファイルのために領域が必要になるまで削除されません。領域に空きがある場合、最近テープに移動されたファイルは、リカバリの際にテープからリストアしなくてもよいようにディスクに残ります。不要なファイルおよびテープに移動されたファイルが高速リカバリ領域から自動的に削除されるため、高速リカバリ領域は宛先として便利です。その他の場所では、ログを手動で削除する必要があります。

関連項目:

9.3.1.2 高速リカバリ領域サイズについて
一般に、高速リカバリ領域は大きいほど有効に使用できます。Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイドでは、高速リカバリ領域のサイズ設定方法について説明されています。理想的には、データベースをリカバリするために必要なデータファイル、制御ファイル、オンラインREDOログ・ファイルおよびアーカイブREDOログ・ファイルのコピーと、保存ポリシーに従って保持されるこれらのバックアップ・ファイルのコピーを十分に格納できる大きさの高速リカバリ領域が必要です。

バックアップ計画に増分バックアップが含まれる場合、これらのファイルの高速リカバリ領域に十分な領域を追加します。バックアップの一部をテープに移動できる場合、高速リカバリ領域のサイズを削減できます。テープからファイルを取得する場合はデータベースのリストア操作およびリカバリに必要な時間が長くなるので注意してください。

関連項目:

高速リカバリ領域が満杯になった場合の処理については、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください

9.3.2 バックアップおよびリカバリを実行するためのユーザーの構成

この項では、バックアップおよびリカバリを実行するために必要な資格証明、およびSYSBACKUP権限をデータベース・ユーザーに付与する方法について説明します。

9.3.2.1 バックアップおよびリカバリを実行するために必要な資格証明
Oracle Recovery Manager (RMAN)を使用してバックアップおよびリカバリ・タスクを実行するには、SYSDBAまたはSYSBACKUP管理権限を持つユーザーとしてターゲット・データベースに接続する必要があります。SYSBACKUP権限には、データベースのバックアップおよびリカバリに必要なすべての権限が含まれています。これらの権限は、SYSDBA管理権限に含まれる権限のサブセットです。

次のタイプのユーザーはSYSBACKUP権限を持っています。

  • SYSBACKUPユーザー。

    データベースをインストールすると、SYSBACKUP権限を持つSYSBACKUPユーザーが自動的に作成されます。

  • SYSBACKUP権限を付与するデータベース・ユーザー。

  • オペレーティング・システム認証用のOSBACKUPDBAオペレーティング・システム・グループのメンバーであるデータベース・ホスト・ユーザー。

    データベースのインストール時に、OSBACKUPDBAグループは、特定のオペレーティング・システム・グループに割り当てられます。たとえば、UNIXおよびLinuxシステムでは、backupdbaグループは通常、OSBACKUPDBAグループとして指定されます。このグループのホスト・ユーザーは、オペレーティング・システム認証を使用してターゲット・データベースに接続することが可能で、データベース・ユーザーとして定義する必要はありません。

このマニュアルで説明されている推奨バックアップ計画では、オペレーティング・システム認証を使用します。ホスト・ユーザーを作成して、それらをOSBACKUPDBAグループに追加する方法は、オペレーティング・システムのドキュメントを参照してください。

注意:

以前のリリースでは、バックアップおよびリカバリ・タスクを実行するには、SYSDBA管理権限が必要でした。Oracle Database 12c以降、バックアップおよびリカバリ操作にSYSBACKUP管理権限を使用することをお薦めします。

SYSBACKUPユーザーは使用しないことをお薦めします。かわりに、ユーザーを作成し、そのユーザーにSYSBACKUP権限を付与します。

関連項目:

9.3.2.2 SYSBACKUP権限の付与

データベース管理者として、SYSBACKUP権限を任意のデータベース・ユーザーに付与できます。付与すると、パスワード・ファイルにそのユーザーのエントリが作成されます。

SYSBACKUP権限を既存のユーザーに付与するには、次の手順を実行します。

  1. ユーザーSYSとしてOracle Enterprise Manager Database Express (EM Express)にログインします。ログイン・ページで「SYSDBA権限」チェック・ボックスを必ず選択します。

    詳細は、データベースのホームページのアクセスを参照してください。

  2. 「セキュリティ」メニューから「ユーザー」を選択します。
  3. ユーザー・ページで、権限を付与するユーザーの名前をクリックします。
  4. アカウント・サマリー・ページの「権限」タブで、「編集」をクリックします。
  5. 「権限の変更」ダイアログ・ボックスで、左側のリストのSYSBACKUP権限までスクロールして選択し、右矢印(>)ボタンをクリックします。

    SYSBACKUP権限が右側のリストに表示されます。

  6. 「OK」をクリックします。

9.3.3 RMANを使用したターゲット・データベースへの接続

バックアップまたはリカバリ操作を実行したり、バックアップおよびリカバリ設定を構成するには、Oracle Recovery Manager (RMAN)クライアントを起動し、ターゲット・データベースに接続する必要があります。ターゲット・データベースは、RMANを使用してバックアップまたはリストアする必要があるOracle Databaseです。ターゲット・データベースへの接続には、SYSDBAまたはSYSBACKUP管理権限が必要です。

ターゲット・データベースに接続するには、次の手順を実行します。

  1. コマンド・ウィンドウを開きます。
  2. 環境変数ORACLE_SIDが、データベースのシステム識別子(SID)に設定されていることを確認します。
    $ ORACLE_SID=prod; export ORACLE_SID
    
  3. 次のいずれかを行います:
    • SYSBACKUP権限を付与されたデータベース・ユーザーとして接続するには、次のコマンドを入力します。

      rman target '"username as sysbackup"'
      

      一重引用符および二重引用符が必要です。要求された場合にはユーザーのパスワードを入力します。

    • オペレーティング・システム認証を使用して接続するには、必ずOSBACKUPDBAグループ(通常、UNIXおよびLinuxシステムではbackupdbaグループ)のメンバーであるユーザーとしてデータベース・ホストにログインし、次のコマンドを入力します。

      rman target /
      

      SYSDBAまたはSYSBACKUPを明示的に指定しない場合は、SYSDBA権限でターゲット・データベースに接続されます。

注意:

あるデータベース・ホストでRMANを起動し、別のホストでターゲット・データベースに接続することができます。これはリモート・データベースへの接続として知られ、次のことが必要です。

  • 接続文字列にネット・サービス名を指定する。

  • SYSBACKUPとして接続するには、リモート・データベースのパスワード・ファイルにユーザー名を入力する。

リモート・データベースへの接続はこのマニュアルの範囲外です。詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください

関連項目:

9.3.4 リカバリ設定の構成

この項では、インスタンス・リカバリ、メディア・リカバリおよび高速リカバリに使用する設定の構成方法について説明します。次のトピックが含まれています:

9.3.4.1 高速リカバリ領域の構成

インストール時に高速リカバリ領域の場所を指定しなかった場合、インストール・プロセスにより、Oracleベース・ディレクトリに高速リカバリ領域が自動的に構成されます。ただし、データベース・ファイルとは別のストレージ・デバイスに高速リカバリ領域を配置することをお薦めします。

次の初期化パラメータを変更して、高速リカバリ領域を再配置し、そのサイズを調整できます。

  • DB_RECOVERY_FILE_DEST

    高速リカバリ領域の場所を指定します。ファイル・システム・ディレクトリまたはOracle Automatic Storage Management (Oracle ASM)ディスク・グループを指定できますが、RAWディスクは指定できません。

  • DB_RECOVERY_FILE_DEST_SIZE

    高速リカバリ領域のサイズをバイト数で指定します。

DB_RECOVERY_FILE_DEST_SIZEパラメータは、DB_RECOVERY_FILE_DESTパラメータの前に設定する必要があります。

これらのパラメータは、データベースを停止して再起動することなく設定できます。Oracle Real Application Clusters(Oracle RAC)データベースでは、すべてのインスタンスでこれらの初期化パラメータの値が同じである必要があります。この場所は、クラスタ・ファイル・システム、Oracle ASMまたは共有ディレクトリ上である必要があります。

高速リカバリ領域を構成するには、次の手順を実行します。

高速リカバリ領域をディレクトリ/u02/oracle/fraに配置し、そのサイズの上限値を10GBとすると想定します。

  1. RMANを使用したターゲット・データベースへの接続に説明されているとおりに、Oracle Recovery Manager (RMAN)をターゲット・データベースに接続します。
  2. 次のコマンドを使用して、高速リカバリ領域のサイズを指定します。
    ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 10G;
    
  3. 次のコマンドを使用して、高速リカバリ領域の場所を指定します。
    ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/u02/oracle/fra';
    
9.3.4.2 REDOログ・ファイルのアーカイブの有効化

データベースが開いている間にバックアップしたり、完全またはPoint-in-Timeメディア・リカバリを実行できるようにするには、REDOログ・ファイルのアーカイブを有効にする必要があります。これを行うには、データベースをARCHIVELOGモードに設定します。ターゲット・データベースに対してREDOログのアーカイブが有効であるかどうかを確認するには、次の問合せを使用します。

SELECT LOG_MODE FROM V$DATABASE;

データベースによるアーカイブ・ログ・ファイルを書き込む宛先を指定しない場合は、高速リカバリ領域に書き込まれます。異なる宛先を指定したり、各アーカイブ・ログ・ファイルの複数コピーをそれぞれ異なる宛先に書き込むように指定できます。冗長コピーは、宛先のいずれかで障害が発生した場合でもアーカイブ・ログ・ファイルを常に使用可能にする場合に役立ちます。

次のプロシージャでは、アーカイブ・ログ・ファイルをディレクトリ/u02/oracle/logfilesに、アーカイブ・ログ・ファイルの冗長コピーをディレクトリ/u03/oracle/logfilesに配置すると想定しています。冗長コピーはオプションです。

警告:

アーカイブ・ログ・ファイルの宛先に常に十分なディスク領域があることを確認する必要があります。データベースがログ・ファイルをアーカイブする際にディスクが一杯であるというエラーが発生すると、致命的なエラーとなり、データベースが応答しなくなります。アラート・ログでディスクが一杯であるというメッセージを確認できます。

REDOログ・ファイルのアーカイブを有効にするには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続に説明されているとおりに、Oracle Recovery Manager (RMAN)をターゲット・データベースに接続します。
  2. データベースを停止します。
    SHUTDOWN IMMEDIATE;
    
  3. データベースをバックアップします。

    データベースに大幅な変更を加える前に、常にデータベースのバックアップを行うことをお薦めします。

    データベース全体のバックアップの実行を参照してください。

  4. インスタンスを起動し、データベースをマウントします(オープンはしません)。アーカイブを有効にするには、データベースをマウントして、オープンしないようにする必要があります。
    STARTUP MOUNT;
    
  5. 次のコマンドを入力して、アーカイブ・ログ・ファイルの最初の宛先を設定します。
    ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/u02/oracle/logfiles';
    

    注意:

    ディレクトリは存在している必要があります。

  6. (オプション)次のコマンドを入力して、アーカイブ・ログ・ファイルの2番目の宛先を設定します。
    ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = 'LOCATION=/u03/oracle/logfiles';
    
  7. データベースのアーカイブ・モードを変更し、通常の操作を実行するためにデータベースをオープンします。
    ALTER DATABASE ARCHIVELOG;
    ALTER DATABASE OPEN;
    
  8. データベースを停止します。
    SHUTDOWN IMMEDIATE;
    
  9. データベースをバックアップします。

    アーカイブ・モードの変更により制御ファイルが更新される前に、新規バックアップを作成することをお薦めします。

    データベース全体のバックアップの実行を参照してください。

  10. 通常どおりにデータベースを起動します。
    STARTUP;
    

注意:

ARCHIVELOGモードに切り替える前のバックアップを使用して、切替え後の状態にデータベースをリストアおよびリカバリすることはできません。したがって、切替え直後にバックアップを作成しなかった場合は、有効なバックアップなしでデータベースを稼働させることになります。データベースのバックアップを作成する方法は、RMANを使用したバックアップの実行およびスケジュール設定を参照してください。

関連項目:

9.3.4.3 フラッシュバック・データベースの有効化

データベース全体を前の時点に戻すには、バックアップをリストアしてPoint-in-Timeリカバリを実行することによって、データベース全体を前の時点に戻すか、フラッシュバック・データベースを有効にします。フラッシュバック・データベースを有効にすると、データベースによってフラッシュバック・ログが高速リカバリ領域に生成されます。これらのログは、指定した時間にデータベースをフラッシュバックするために使用します。通常稼働時には、データ・ブロックのイメージが不定期にフラッシュバック・ログに記録されます。フラッシュバック・ログの作成、削除およびサイズ変更は自動的に行われます。

フラッシュバック・データベースがターゲット・データベースに対して有効かどうかを確認するには、次のコマンドを使用します。

SELECT FLASHBACK_ON FROM V$DATABASE;

フラッシュバック・データベースを有効にするには、次の手順を実行します。

  1. 高速リカバリ領域が構成され、データベースがARCHIVELOGモードで実行されていることを確認します。
  2. RMANを使用したターゲット・データベースへの接続に説明されているとおりに、Oracle Recovery Manager (RMAN)をターゲット・データベースに接続します。
  3. オプションで、DB_FLASHBACK_RETENTION_TARGET初期化パラメータを設定することによって、必要なフラッシュバック・ウィンドウの長さ(分単位)を指定します。

    このパラメータのデフォルト値は1440分(1日)です。次のコマンドは、フラッシュバック・ウィンドウが3日である必要があることを指定します。

    ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=4320;
    
  4. 次のコマンドを使用して、データベース全体のフラッシュバック・データベース機能を有効にします。
    ALTER DATABASE FLASHBACK ON;
    

また、RMANのかわりにSQL*Plusを使用して、ターゲット・データベースに接続することによって、この項のコマンドを実行することもできます。

9.3.5 バックアップ設定の構成

複数のバックアップ関連の設定およびポリシーを構成できます。たとえば、バックアップをどのように保存するか、どのデータをバックアップするか、バックアップをどの程度の期間保持するかなどを決定できます。また、設定を構成してバックアップのパフォーマンスを最適化できます。

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

9.3.5.1 バックアップ・デバイス設定の構成

ディスクベース・バックアップの場合、バックアップのデフォルトの形式、ディスク上のバックアップの保存場所、バックアップ・タスクが並行して実行されるかどうか、およびバックアップを圧縮するかどうかを構成できます。

テープへのバックアップの場合、テープ・ドライブの数やバックアップを圧縮するかどうかなどの設定を構成できます。ほとんどのプラットフォームでは、Oracle Databaseにメディア・マネージャを統合し、連続したメディアを格納に使用する必要があります。

データベースおよびファイル・システムのテープへのバックアップをサポートするOracle Secure Backupをメディア・マネージャとして使用できます。Oracle Secure Backupは、他のサード・パーティのSBTインタフェースと同じサービスをOracle Recovery Manager (RMAN)に提供します。この項では、ディスク・バックアップのみを作成すると想定しています。

RMANのCONFIGUREコマンドを使用して、デフォルトのバックアップ・タイプ、データベース・ファイルのバックアップ先のディスクの場所、並列性などのバックアップ・デバイスの設定を構成します。RMANのSHOW ALLコマンドを使用して、現在構成されている設定を表示します。

バックアップ・デバイスの設定を構成するには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。
  2. バックアップの保存に使用するデフォルト・デバイスがディスクであることを指定します。次のコマンドは、バックアップをディスクに保存するようにRMANに指示します。
    CONFIGURE DEFAULT DEVICE TYPE TO DISK;
    
  3. バックアップはバックアップ・セットの形式でディスクに保存する必要があることを指定します。また、並列性に1を設定します。
    CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO BACKUPSET PARALLELISM 1;
    

    ディスク上のバックアップは、バックアップ・セットまたはイメージ・コピーの形式で保存できます。イメージ・コピーは、データベース・ファイルが正確にコピーされたものです。これらはRMAN固有の形式で保存されていないため、そのまま使用してリカバリを実行できます。バックアップ・セットはRMAN固有の形式を使用しています。バックアップ・セットの場合、RMANは未使用ブロックの圧縮を使用して、データを含むブロックのみをバックアップすることで領域を節約できます。また、RMANでは、バックアップを暗号化し、増分バックアップを作成することもできます。

関連項目:

9.3.5.2 バックアップ・ポリシー設定の構成

制御ファイルおよびサーバー・パラメータ・ファイルのバックアップ、データベース全体のバックアップから除外する表領域、およびバックアップ保存ポリシーを制御するバックアップ・ポリシーを設定できます。

バックアップ・ポリシー設定を構成するには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続に説明されているとおりに、Oracle Recovery Manager (RMAN)をターゲット・データベースに接続します。
  2. 制御ファイルおよびサーバー・パラメータ・ファイルの自動バックアップの構成で説明されているように、制御ファイルおよびサーバー・パラメータを自動的にバックアップするようにRMANを構成します。
  3. バックアップの最適化を構成して、高速リカバリ領域の領域を節約します。最適化では、バックアップ済の、読取り専用ファイルおよびオフラインのデータファイルなどの未変更ファイルは除外されます。
    CONFIGURE BACKUP OPTIMIZATION ON;
    
  4. 保存ポリシーを構成して、メディア・リカバリ用にバックアップおよびアーカイブREDOログを保持する必要がある期間を指定します。

    次のコマンドは、バックアップおよびアーカイブ・ログは31日間保持する必要があることを指定します。

    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 31 DAYS;
    
  5. 次のコマンドを使用して、アーカイブ・ログがテープにバックアップされたり、保存ポリシーに基づいて不要になった場合のみ、アーカイブ・ログが自動的に削除されるように指定します。
    CONFIGURE ARCHIVELOG DELETION POLICY TO NONE;
    
  6. ブロック・チェンジ・トラッキングの有効化に説明されているとおりに、ブロック・チェンジ・トラッキングを有効にします。
  7. オプションで、バックアップから除外する必要がある表領域を指定します。

    読取り専用の表領域、一時データまたはテスト・データを含む表領域など、特定の表領域をバックアップから除外することによって、領域を節約できます。

    次のコマンドは、表領域exampleをバックアップから除外します。

    CONFIGURE EXCLUDE FOR TABLESPACE example;
    

関連項目:

保存ポリシーの他の構成方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください

9.3.5.3 制御ファイルおよびサーバー・パラメータ・ファイルの自動バックアップの構成
バックアップのたびに制御ファイルおよびサーバー・パラメータ・ファイルを自動的にバックアップするように、Oracle Recovery Manager (RMAN)を構成できます。これを自動バックアップと呼びます。サーバー・パラメータ・ファイルおよび制御ファイルは、データベースおよびRMANに不可欠です。制御ファイルの自動バックアップを作成すると、RMANは、現行の制御ファイルおよびサーバー・パラメータ・ファイルが消失した場合でも、データベースをリカバリできます。制御ファイルおよびサーバー・パラメータ・ファイルは通常のデータファイルに比べて比較的小規模で、頻繁にバックアップしても、記憶域のオーバーヘッドはそれほど大きくありません。

また、データベースがARCHIVELOGモードで実行されている場合も、自動バックアップは、制御ファイル内のデータベース構造メタデータが変更されるたびに実行されます。

注意:

マルチテナント・コンテナ・データベース(CDB)では、制御ファイルおよびサーバー・パラメータ・ファイルの自動バックアップがデフォルトで実行されます。

制御ファイルおよびサーバー・パラメータ・ファイルの自動バックアップを構成するには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。
  2. 次のコマンドを入力します。
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    

RMANでは、デフォルトの形式を使用して、これらのバックアップの名前を割り当てます。

関連項目:

バックアップの形式の構成の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください

9.3.5.4 ブロック・チェンジ・トラッキングの有効化
ブロック・チェンジ・トラッキングを使用すると、変更されたブロックをブロック・チェンジ・トラッキング・ファイルに記録することによって、増分バックアップのパフォーマンスが向上します。増分バックアップ中にすべてのデータ・ブロックをスキャンして変更されたブロックを識別するかわりに、RMANはこのファイルを使用して、バックアップが必要な変更されたブロックを識別します。

ブロック・チェンジ・トラッキングは、データベースがオープンまたはマウントされている場合に有効にできます。この項では、ブロック・チェンジ・トラッキングをOracle Managed Fileとしてデータベース領域に作成することを想定しています(データベース領域とは、データファイル、制御ファイル、オンラインREDOログ・ファイルなどのアクティブなデータベース・ファイルをデータベースが保持する場所です)。

ブロック・チェンジ・トラッキングが有効になっているかどうかを確認するには、SQLまたはRMANプロンプトから次の文を使用して、V$BLOCK_CHANGE_TRACKINGビューのSTATUSおよびFILENAME列を確認します。

SELECT status, filename FROM V$BLOCK_CHANGE_TRACKING;

ブロック・チェンジ・トラッキングを有効にする手順

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。
  2. 次の問合せを送信して、データベースのデータファイルの現在の場所を特定します。
    RMAN> SELECT NAME FROM V$DATAFILE;
     
    NAME
    -----------------------------------------------
    /u01/app/oracle/oradata/orcl/system01.dbf
    /u01/app/oracle/oradata/orcl/example01.dbf
    /u01/app/oracle/oradata/orcl/sysaux01.dbf
    /u01/app/oracle/oradata/orcl/undotbs01.dbf
    /u01/app/oracle/oradata/orcl/users01.dbf
    

    この例の問合せ結果には、データファイルがディレクトリ/u01/app/oracle/oradata/orclのファイル・システムに格納されていることが示されています。データファイルは、Oracle Automatic Storage Managementのディスク・グループにも格納できます。

  3. DB_CREATE_FILE_DEST初期化パラメータを設定して、ブロック・チェンジ・トラッキング・ファイルを含む新しいデータベース・ファイルを格納する必要がある場所を指定します。次の例に示すように、前の手順の問合せ結果と同じディレクトリ(パスの最後の部分のデータベースSIDを削除した状態)を指定するか、新しいディレクトリを指定することができます。指定するディレクトリに対して、Oracleソフトウェアの所有者の書込み権限を持っている必要があります。

    次のコマンドは、新しいデータベース・ファイルはディレクトリ/u01/app/oracle/oradata/に格納される必要があることを指定します。

    ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/u01/app/oracle/oradata';
    
  4. 次のコマンドを使用して、データベースのブロック・チェンジ・トラッキングを有効にします。
    ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
    

関連項目:

9.4 データベースのバックアップ

この項では、Oracle Recovery Manager (RMAN)を使用してデータベースをバックアップする方法について説明します。オラクル社が推奨するディスクのみのバックアップ計画は、データベースの日常的なバックアップを効率化します。この計画により、現在から24時間前までの任意の時点の状態に、データベースを迅速に戻すことができます。より柔軟なバックアップ・オプションの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

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

9.4.1 追加のバックアップの概念

この項には、増分的に更新されたバックアップおよびバックアップ・タグに関するトピックが含まれています。

9.4.1.1 増分的に更新されたバックアップ: データファイルのイメージ・コピーのロールフォワード
Oracle Recovery Manager (RMAN)を使用すると、データファイルの古いイメージ・コピーにレベル1の増分バックアップを適用できます。コピーを最新のレベル1増分バックアップの時点にロールフォワードすることが可能です。イメージ・コピー作成後に変更されたブロックはすべて、最新のレベル1増分バックアップの時点の新しい内容で上書きされます。その結果、ファイルがロールフォワードされ、ファイルの内容は最新のレベル1増分バックアップの時点に作成されたデータファイルのイメージ・コピーと等しくなり、データベースがリカバリされます。

増分的に更新されたバックアップをバックアップ計画に組み込むことで、予想リカバリ時間を短縮できます。これは現時点または最近の過去のある時点までのメディア・リカバリが、最新の全データベース・バックアップ時ではなく最新のレベル1のバックアップが適用された時点から開始できるためです。

9.4.1.2 バックアップ・タグ
タグとは、バックアップを一意に、またはバックアップ・グループの一部として識別するテキスト文字列です。すべてのOracle Recovery Manager (RMAN)バックアップ(増分バックアップを含む)にタグが付いています。たとえば、毎週土曜日にデータベースの全体バックアップを実行した場合、タグFULL_SATを使用してこのバックアップを識別できます。

タグを使用すると、RMANコマンドで特定のバックアップを参照できます。たとえば、最新のFULL_SATバックアップをテープに移動するコマンドを発行できます。タグを指定しない場合は、RMANにより一意のタグが自動的に作成されます。

タグを使用し、バックアップの異なるグループを参照できるため、異なるルーチンを互いに干渉しないバックアップ計画に作成できます。バックアップ・ジョブのスケジュールを設定してジョブ名を指定すると、ジョブ名がタグになります。

9.4.2 RMANを使用したバックアップの実行およびスケジュール設定

Oracle Recovery Manager (RMAN)を使用すると、バックアップ計画に必要な様々なタイプのバックアップを実行できます。この項では、データベース全体のバックアップの作成について説明します。

また、データファイル、制御ファイルおよびアーカイブREDOログ・ファイルを個別にバックアップすることもできます。バックアップの暗号化など、RMANのいくつかの高度な機能を使用できます。これらのトピックの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

関連項目:

マルチテナント・コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)のバックアップの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください

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

9.4.2.1 データベース全体のバックアップの実行

データベース全体のバックアップには、データベースのすべてのデータファイルの完全な内容の他に、制御ファイル、アーカイブREDOログ・ファイルおよびサーバー・パラメータ・ファイルも含まれています。これらのファイルを使用すると、完全リカバリを実行できます。

データベース全体のバックアップは総合的なバックアップ計画の重要な要素ですが、ARCHIVELOGモードを有効化または無効化するとき(リカバリ設定の構成を参照)のように、必須の手順となる場合もあります。この項では、データベース全体のバックアップ(オフラインとオンラインの両方)をディスクに作成する方法について説明します。通常は、データベースの可用性を最大化するためにオンライン・バックアップを実行します。

データベースがオープンしているときにデータベース全体のバックアップを実行するには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。

  2. REDOログ・ファイルのアーカイブの有効化で説明されているように、データベースがARCHIVELOGモードであることを確認します。

    データベースがARCHIVELOGモードで実行されている場合のみ、オンライン・バックアップが可能です。

  3. 次のコマンドを使用して、アーカイブREDOログとともにデータベースをバックアップします。

    BACKUP DATABASE PLUS ARCHIVELOG;
    

このバックアップは、バックアップの格納のために構成したデフォルト・デバイスに作成されます。デフォルト・デバイスを構成していない場合は、バックアップは高速リカバリ領域に作成されます。RMANでは、バックアップを構成するバックアップ・セットに名前を付ける際に、デフォルトの形式を使用します。

データベースがクローズしているときにデータベース全体のバックアップを実行するには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。
  2. 次のコマンドを使用して、データベースを停止してからマウントします。
    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    
  3. 次のコマンドを使用して、データベースをバックアップします。
    BACKUP DATABASE;
    

    クローズしているデータベースをバックアップする場合は、バックアップ時にデータベースの一貫性が保たれているため、アーカイブ・ログ・ファイルをバックアップする必要はありません。したがって、このバックアップからデータベースをリストアする場合、メディア・リカバリは必要ありません。

  4. バックアップが完了したら、データベースを開きます。
    ALTER DATABASE OPEN;
    

関連項目:

9.4.2.2 推奨バックアップ計画の使用

オラクル社が推奨するバックアップ計画は、データを保護し、ユーザー指定のリカバリ期間の任意の時点までの有効なリカバリ可能ポイントを提供する、スケジュールされたディスク・バックアップ計画です。この計画では増分的に更新されたバックアップ機能を使用し、データベース全体のバックアップよりも早いバックアップ、および最後に実行された全体バックアップに複数の増分バックアップを適用する場合よりも早いリカバリ可能性を提供します。

概要に関するトピックオラクル社が推奨するバックアップ計画についてを読んだ後で、オラクル社が推奨するバックアップ計画を遂行するために、この項で説明する次の各タスクを完了して日次バックアップのスケジュールを設定します。

9.4.2.2.1 オラクル社が推奨するバックアップ計画について

オラクル社が推奨するバックアップ計画は増分的に更新されたバックアップに基づいています。この計画では、まず各データファイルのイメージ・コピーを作成し、レベル1の増分バックアップを適用して、イメージ・コピーを毎日ロールフォワードします。

各データファイルについて、バックアップに必要な計画は次のとおりです。

  • 計画(最初にスケジュールを設定したジョブが実際に実行される時間)の1日目のはじめに、Oracle Recovery Manager (RMAN)は増分レベル0のイメージ・コピーを作成します。これには1日目のはじめのデータファイル・コンテンツが含まれます。

    リカバリが必要な場合は、1日目からのアーカイブREDOログ・ファイルを使用して、1日目の任意の時点にリカバリできます。

  • 2日目のはじめに、1日目に変更されたブロックを含む差分増分レベル1のバックアップをRMANが作成します。

    リカバリが必要な場合は、RMANはこの増分レベル1を適用して、レベル0のバックアップを2日目のはじめにロールフォワードできます。RMANでは、アーカイブREDOログ・ファイルを使用して2日目の任意の時点にリカバリできます。

  • 3日目およびそれ以降のn日目のはじめに、RMANはn-1日目のはじめのレベル1のバックアップからレベル0のバックアップを適用します。このアクションによりn-1日目のはじめの状態のデータファイルのコピーができます。次に、RMANはn-1日の間に変更されたブロックを含むレベル1のバックアップを新しく作成します。

    リカバリが必要な場合は、RMANはn-1日から n日のはじめにロールフォワードされたデータファイルに増分レベル1のバックアップを適用できます。RMANでは、アーカイブREDOログ・ファイルを使用してデータベースをn日の任意の時点にリカバリできます。

オラクル社が推奨するこのバックアップ計画では、データファイルのイメージ・コピーとレベル1の増分バックアップで同じタグを共有します。オラクル社が推奨するバックアップ計画を妨げることなく、他のバックアップ計画を安全に実装できます。

オラクル社が推奨するバックアップ計画では、ディスク・バックアップとともにテープ・バックアップを使用しますが、この項では扱いません。

9.4.2.2.2 タスク1 - 推奨バックアップ計画を使用するための準備

推奨バックアップ計画を使用するためには、次のことを確認します。

  • データベースがARCHIVELOGモードであるかどうか。

  • 高速リカバリ領域サイズが構成されている、またはバックアップを格納するためのデフォルト・デバイスが構成されているかどうか。

  • オペレーティング・システム認証のためのOSBACKUPDBAオペレーティング・システム・グループにデータベース・ホスト・ユーザーが追加されているかどうか。

9.4.2.2.3 タスク2 - バックアップ・スクリプトの作成(UNIXおよびLinux)

このバックアップ・スクリプトは、推奨バックアップ計画を実装しており、過去24時間の任意の時点にすばやくリカバリすることが可能です。このスクリプトを使用して、非CDBまたはマルチテナント・コンテナ・データベース(CDB)全体をバックアップできます。

UNIXおよびLinuxのバックアップ・スクリプトを作成するには、次の手順を実行します。

  • テキスト・エディタを起動し、次の内容のファイルを保存します。ファイルは、Oracle Databaseソフトウェアにアクセス可能で、Oracleソフトウェアの所有者が読取り権限を持つディレクトリに保存します。

    注意:

    次のスクリプトでは、ORACLE_HOMEおよびORACLE_SID環境変数にインストール用の適切な値を設定します。

    #!/bin/sh
    export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
    export ORACLE_SID=orcl
    PATH=$ORACLE_HOME/bin:$PATH
    rman <<EOF
    connect target /
    RUN {
     ALLOCATE CHANNEL disk_iub DEVICE TYPE DISK;
     RECOVER COPY OF DATABASE WITH TAG daily_iub;
     BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG daily_iub DATABASE;
    }
    exit
    EOF
9.4.2.2.4 タスク3 - バックアップ・スクリプトのテスト

スケジュール設定する前に、スクリプトを手動で実行してエラーを確認することをお薦めします。手動によるスクリプトの実行は、すべてのデータファイルの増分レベル0のイメージ・コピーを作成する、計画の1日目に開始します。

バックアップ・スクリプトをテストするには、次の手順を実行します。

  1. OSBACKUPDBAオペレーティング・システム・グループ(通常、backupdbaグループ)のメンバーであるユーザーとして、データベース・ホストにログインします。
  2. コマンド・ウィンドウで、次のコマンドを入力します。
    full-script-path
    

    ここで、full-script-pathは、タスク2で作成したスクリプトのフルパスおよびファイル名です。

    たとえば、スクリプトがファイル/u01/app/oracle/rman/daily_backup.shにある場合、次のコマンドを入力します。

    /u01/app/oracle/rman/daily_backup.sh
    

Oracle Recovery Manager (RMAN)が起動され、バックアップが開始されます。RMANからの出力には、次のような警告メッセージが含まれます。

...
no copy of datafile 1 found to recover
no copy of datafile 2 found to recover
...
no parent backup or copy of datafile 1 found
no parent backup or copy of datafile 2 found
...

これらは最初にスクリプトを実行した場合の通常のメッセージです。

注意:

2回目にスクリプトを実行すると、出力には次の警告メッセージのみが含まれます。

no copy of datafile 1 found to recover
no copy of datafile 2 found to recover
...

これらもまた通常のメッセージです。3回目以降のスクリプトの実行では、これ以上の警告メッセージは出力されません。

9.4.2.2.5 タスク4 - 日次バックアップのスケジュール設定(UNIXおよびLinux)

次の手順では、cronユーティリティを使用して、データベースの日次バックアップを2:00 amにスケジュールします。

ディスクの推奨バックアップ計画をスケジュールするには、次の手順を実行します。

  1. OSBACKUPDBAオペレーティング・システム・グループ(通常、backupdbaグループ)のメンバーであるユーザーとして、データベース・ホストにログインしていることを確認します。

    cronジョブはこのホスト・ユーザーとして実行されます。

  2. テキスト・エディタを起動し、次の内容のファイルをホーム・ディレクトリに保存します。ファイル.crontabに名前を付けます。(ファイル名の先頭に期間を記録してください。)
    MAILTO=first.last@example.com
    # MI HH DD MM DAY CMD
      00  2  *  *  *  full-script-path
    

    ここで、full-script-pathは、タスク2で作成したスクリプトのフルパスおよびファイル名です。

    たとえば、スクリプトがファイル/u01/app/oracle/rman/daily_backup.shにある場合、.crontabファイルには次を含める必要があります。

    MAILTO=first.last@example.com
    # MI HH DD MM DAY CMD
      00  2  *  *  *  /u01/app/oracle/rman/daily_backup.sh

    注意:

    MAILTO行に必要な電子メール・アドレスを指定します。この行はオプションです。ジョブの完了時に、cronジョブによってstdoutに書き込まれた内容がこのアドレスに電子メールで送信されます。

  3. コマンド・ウィンドウで、ディレクトリをホーム・ディレクトリに変更し、次のコマンドを入力します。
    crontab .crontab
    

    これにより、.crontabの内容からこのユーザーのcrontabファイルが作成されます。

    警告:

    このユーザーの既存のcrontabファイルは上書きされます。このファイルの内容を保持し、この新しいジョブを追加する場合は、このコマンドを使用すると、既存のファイルを編集できるようになります。

    crontab -e
  4. (オプション)次のコマンドを使用して、このユーザーのcrontabファイルの内容を確認します。
    crontab -l
    
    MAILTO=first.last@example.com
    # MI HH DD MM DAY CMD
      00  2  *  *  *  /u01/app/oracle/rman/daily_backup.sh

関連項目:

crontabコマンドおよびcrontabファイルの説明は、オペレーティング・システムのドキュメントを参照してください。

9.4.2.3 オラクル社が推奨するバックアップ計画および保存について
オラクルで推奨するバックアップ計画を使用する場合、保存は構成されている保存ではなくリカバリによって決定されます。24時間を超えて保存を行う場合には、RECOVER文を次などのように変更する必要があります。
RECOVER COPY OF DATABASE WITH TAG 'ORA_OEM_LEVEL_0' UNTIL TIME "SYSDATE-4";

構成されている保存は、保存または古い設定のいずれにも適用されません。したがって、オラクルで推奨するバックアップ計画を使用する場合、混乱を避けるために次のデフォルトの設定を使用することをお薦めします。

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
9.4.2.4 その他のバックアップ・タスクのスケジュール設定
推奨バックアップ計画の使用で説明されているオラクル社が推奨するバックアップ計画を実装する他に、データベースの特定の部分をバックアップするカスタマイズ・バックアップ計画を使用できます。カスタマイズ計画には、選択した表領域、データファイルおよびアーカイブREDOログのバックアップが含まれます。カスタマイズ・バックアップ・タスクの実装に必要なコマンドを含むスクリプトを作成し、cronユーティリティを使用してこのバックアップ・タスクをスケジュールします。

関連項目:

カスタマイズ・バックアップの実行の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

9.4.3 RMANリポジトリに格納されているバックアップの表示

LISTコマンドを使用して、Oracle Recovery Manager (RMAN)リポジトリに格納されているバックアップに関する情報を表示します。この情報には、データファイル、個々の表領域、アーカイブREDOログ・ファイルおよび制御ファイルのバックアップが含まれます。また、このコマンドを使用すると、期限切れバックアップおよび不要なバックアップに関する情報も表示できます。

関連項目:

LISTコマンドの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください

マルチテナント・コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)のバックアップを表示するために使用する構文(非CDBに使用する構文とは若干の違いがあります)は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

すべてのバックアップを表示するには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。

  2. LISTコマンドを使用して、すべてのバックアップ(バックアップ・セットとイメージ・コピーの両方)のサマリーを表示します。

    LIST BACKUP SUMMARY;
    
    List of Backups
    ===============
    Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
    ------- -- -- - ----------- --------------- ------- ------- ---------- ---
    12      B  F  A DISK        28-MAR-12       1       1       NO         TAG20120328T051810
    13      B  F  A DISK        28-MAR-12       1       1       NO         TAG20120328T051811
    14      B  F  A DISK        28-MAR-12       1       1       NO         TAG20120328T051921
    15      B  F  A DISK        28-MAR-12       1       1       NO         TAG20120328T051936
    16      B  F  A DISK        28-MAR-12       1       1       NO         TAG20120328T052241
    

選択したバックアップを表示するには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。
  2. LIST BACKUPまたはLIST COPYコマンドを使用して、指定したバックアップ(バックアップ・セットとイメージ・コピーの両方)を表示します。
    • たとえば、特定のデータファイルのバックアップをリストする場合:

      LIST BACKUP OF DATAFILE 3;
      LIST COPY OF DATAFILE '/orcl/oradata/trgt/system01.dbf';
      
    • データベース・ファイルのタイプでソートしたバックアップを表示する場合:

      LIST BACKUP BY FILE;
      
      List of Datafile Backups
      ========================
      File Key     TY LV S Ckp SCN    Ckp Time  #Pieces #Copies Compressed Tag
      ---- ------- -  -- - ---------- --------- ------- ------- ---------- ---
      1    14      B  F  A 723546     28-MAR-12 1       1       NO         TAG20120328T051921
      2    14      B  F  A 723546     28-MAR-12 1       1       NO         TAG20120328T051921
      3    14      B  F  A 723546     28-MAR-12 1       1       NO         TAG20120328T051921
      4    14      B  F  A 723546     28-MAR-12 1       1       NO         TAG20120328T051921
      5    14      B  F  A 723546     28-MAR-12 1       1       NO         TAG20120328T051921
      
      List of Control File Backups
      ===========================
      CF Ckp SCN Ckp Time  BS Key  S #Pieces #Copies Compressed Tag
      ---------- --------- ------- - ------- ------- ---------- ---
      723835     28-MAR-12 16      A 1       1       NO         TAG20120328T052241
      723557     28-MAR-12 15      A 1       1       NO         TAG20120328T051936
      723490     28-MAR-12 13      A 1       1       NO         TAG20120328T051811
      

9.4.4 バックアップの検証およびバックアップ計画のテスト

バックアップ計画の一部として、バックアップが正常でありリカバリ可能オブジェクトを満たしているかを定期的にチェックする必要があります。バックアップは次の方法で検証できます。

バックアップは次の方法で検証できます。

  • Oracle Recovery Manager (RMAN)で特定のバックアップ・セットまたはイメージ・コピーを選択し、検証します。この手法では、バックアップが存在し、リストア可能であるかどうかを確認できます。この形式の検証には、選択したバックアップの検証に記載されている手順を使用します。

  • データベース・ファイルを指定し、実際のリストア操作を行う場合のように、そのファイルのリストアに使用するバックアップをRMANで自動的に選択します。この手法では、使用可能なバックアップがデータベースのリストアに十分であることを確認できます。この形式の検証には、リストア操作のためのバックアップの検証に記載されている手順を使用します。

    注意:

    テープに保存されたバックアップの検証は、バックアップ全体がテープから読み取られるため、時間がかかる場合があります。

いずれの検証形式も、RMANを使用して実行できます。検証の形式をバックアップ計画に両方組み込み、使用可能なバックアップが常にリカバリ可能な目的を満たしていることを確認します。

関連項目:

マルチテナント・コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)のバックアップの検証の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください

9.4.4.1 選択したバックアップの検証
特定のバックアップの検証では、バックアップが存在し、リストア可能であるかどうかがチェックされます。使用可能なバックアップ・セットでリカバリが可能かどうかのテストは行われません。たとえば、データベースの複数の表領域におけるデータファイルのイメージ・コピーが存在し、それぞれが検証可能であるとします。ただし、その中に有効なバックアップが存在しない表領域がある場合、データベースをリストアおよびリカバリすることはできません。

選択済のバックアップを検証するには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続に説明されているとおりに、Oracle Recovery Manager (RMAN)をターゲット・データベースに接続します。
  2. 必要なバックアップを検証します。

    次のVALIDATEコマンドは、データファイルusers_02.dbfを検証します。

    VALIDATE DATAFILE '/ora112/oradata/users_02.dbf';
    
    Starting validate at 27-MAR-12
    using channel ORA_DISK_1
    channel ORA_DISK_1: starting validation of datafile
    channel ORA_DISK_1: specifying datafile(s) for validation
    input datafile file number=00020 
    name=/ora112/oradata/users_02.dbf
    channel ORA_DISK_1: validation complete, elapsed time: 00:00:01
    
    List of Datafiles
    =================
    File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
    ---- ------ -------------- ------------ --------------- ----------
    20   OK     0              248          256             618976
    
    File Name: /ora112/oradata/users_02.dbf
    Block Type Blocks Failing Blocks Processed
      ---------- -------------- ----------------
      Data       0              0
      Index      0              0
      Other      0              8
    
    Finished validate at 27-MAR-12
    

バックアップ・セット内の1つ以上のバックアップ・ピースが欠落または破損している可能性がある場合は、VALIDATE BACKUPSETコマンドを使用して、そのバックアップ・セットを検証します。

関連項目:

バックアップの検証の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください

9.4.4.2 リストア操作のためのバックアップの検証
指定したデータベース・ファイルのリストアに使用できる十分なバックアップ・セットが存在するかどうかをテストできます。リストアする表領域、およびどの時点にリストアするか(指定可能な場合)を指定すると、Oracle Recovery Manager (RMAN)により必要なデータを含むバックアップ・セットが選択されます。RMANは、選択したバックアップ全体を読み取り、ファイルが壊れていないことを確認しますが、出力ファイルは生成しません。

ファイルのリストアの検証により、ファイルが使用可能なバックアップとしてリストアされるかどうかをテストできますが、指定したオブジェクトのすべてのバックアップが有効かどうかはテストできません。

指定したデータベース・ファイルがリストアされるかどうか検証するには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。
  2. RESTORE … VALIDATEコマンドを実行して、必要なデータベース・ファイルをリストアできるかどうかを確認します。
    • データベース全体をリストアできるかどうかを確認する場合:

      RESTORE VALIDATE DATABASE;
      
      Starting restore at 29-MAR-12
      using target database control file instead of recovery catalog
      allocated channel: ORA_DISK_1
      channel ORA_DISK_1: SID=129 device type=DISK
      channel ORA_DISK_1: scanning datafile copy /ade/b/191802369/oracle/work/orcva/RDBMS/datafile/o1_mf_tbs_3_7q60nj4y_.dbf
      channel ORA_DISK_1: starting validation of datafile backup set
      channel ORA_DISK_1: reading from backup piece /ade/b/191802369/oracle/work/orcva/RDBMS/backupset/2012_03_28/o1_mf_nnndf_TAG20120328T051921_7q60g9oc_.bkp
      channel ORA_DISK_1: piece handle=/ade/b/191802369/oracle/work/orcva/RDBMS/backupset/2012_03_28/o1_mf_nnndf_TAG20120328T051921_7q60g9oc_.bkp tag=TAG20120328T051921
      channel ORA_DISK_1: restored backup piece 1
      channel ORA_DISK_1: validation complete, elapsed time: 00:00:04
      Finished restore at 29-MAR-12
      
    • 指定した表領域をリストアできるかどうかを確認する場合:

      RESTORE TABLESPACE example VALIDATE;
      
      Starting restore at 29-MAR-12
      using channel ORA_DISK_1
      channel ORA_DISK_1: starting validation of datafile backup set
      channel ORA_DISK_1: reading from backup piece /ade/b/191802369/oracle/work/orcva/RDBMS/backupset/2012_03_28/o1_mf_nnndf_TAG20120328T051921_7q60g9oc_.bkp
      channel ORA_DISK_1: piece handle=/ade/b/191802369/oracle/work/orcva/RDBMS/backupset/2012_03_28/o1_mf_nnndf_TAG20120328T051921_7q60g9oc_.bkp tag=TAG20120328T051921
      channel ORA_DISK_1: restored backup piece 1
      channel ORA_DISK_1: validation complete, elapsed time: 00:00:01
      Finished restore at 29-MAR-12
      
    • データファイルを指定したSCNにリストアできるかどうかを確認する場合:

      RESTORE DATAFILE 1 VALIDATE UNTIL SCN 23456;
      
      Starting restore at 29-MAR-12
      using channel ORA_DISK_1
      channel ORA_DISK_1: starting validation of datafile backup set
      channel ORA_DISK_1: reading from backup piece /ade/b/191802369/oracle/work/orcva/RDBMS/backupset/2012_03_28/o1_mf_nnndf_TAG20120330T044454_7qc75qyd_.bkp
      channel ORA_DISK_1: piece handle=/ade/b/191802369/oracle/work/orcva/RDBMS/backupset/2012_03_28/o1_mf_nnndf_TAG20120330T044454_7qc75qyd_.bkp tag=TAG20120330T044454
      channel ORA_DISK_1: restored backup piece 1
      channel ORA_DISK_1: validation complete, elapsed time: 00:00:03
      Finished restore at 29-MAR-12
      

関連項目:

9.5 バックアップ・レポートの表示

バックアップ・レポートには、Oracle Recovery Manager (RMAN)によって実行された過去のバックアップ・ジョブに関するサマリーおよび詳細情報が含まれます。ビューV$RMAN_BACKUP_JOB_DETAILSには、RMANによって実行されたバックアップ・ジョブに関する情報が含まれています。このビューには、バックアップにかかった時間、ジョブの開始日時と終了日時、実行されたバックアップのタイプ、およびバックアップ・ジョブのステータスなどの情報が含まれます。

バックアップ・レポートを表示するには、次の手順を実行します。

次の問合せを使用して、バックアップ・ジョブの履歴を表示します。

SELECT SESSION_KEY,INPUT_TYPE,STATUS,START_TIME,END_TIME,ELAPSED_SECONDS/3600 hrs
FROM V$RMAN_BACKUP_JOB_DETAILS;

SESSION_KEY INPUT_TYPE    STATUS                  START_TIM END_TIME         HRS
----------- ------------- ----------------------- --------- --------- ----------
          8 DB FULL       FAILED                  27-MAR-12 27-MAR-12 1.64666666
         50 DB FULL       COMPLETED               28-MAR-12 28-MAR-12 .243055555
         69 DB FULL       COMPLETED               30-MAR-12 05-APR-12 147.176388

SESSION_KEYは、バックアップ・ジョブが発生したRMANセッションの一意のキーです。

9.6 バックアップの管理

バックアップ計画の一環として、データベースのバックアップを管理する必要があります。関連タスクの1つに、Oracle Recovery Manager (RMAN)リポジトリのバックアップ・レコードの管理があります。RMANはこれらのタスクを簡略化します。

マルチテナント環境では、マルチテナント・コンテナ・データベース(CDB)全体または1つ以上のプラガブル・データベース(PDB)のバックアップを管理できます。この項の手順は、わずかな変更を加えることで、CDBおよびPDBに適用できます。CDB全体のバックアップを管理するには、ルートに接続し、この項で説明している各手順を使用します。単一のPDBのバックアップを管理するには、対象のPDBに接続し、この項で説明している各手順を使用します。単一のコマンドを使用して複数のPDBのバックアップを管理するには、ルートに接続し、PLUGGABLE DATABASE句の後にPDBのリストを指定して使用します。

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

9.6.1 バックアップ管理について

バックアップおよびリカバリ計画で重要なことは、作成後のバックアップの管理です。バックアップ管理には不要なバックアップの削除、およびバックアップが使用可能であるかを確認する定期的なチェックの実行が含まれます。

Oracle Recovery Manager (RMAN)リポジトリに記録されたバックアップには次のステータス値のいずれかがあります。

  • 使用可能。これは、リポジトリに記録されているバックアップがまだディスクまたはテープに存在することを意味します。

  • 期限切れ。これはバックアップがディスクまたはテープにはすでに存在せず、リポジトリにはまだリストされていることを意味します

  • 使用不可。これは、バックアップがデータ・リカバリ操作に一時的に使用できないことを意味します(たとえば、オフサイトに保管されているテープや現在マウントされていないディスクに保存されているため)

バックアップは不要になることもあります。不要なバックアップは、現在構成されている保存ポリシーに基づいて、データ・リカバリの目的を満たすために必要でなくなったバックアップです。

RMANで実行できるメンテナンス・タスクは次のとおりです。

  • バックアップの詳細の表示

  • リポジトリのクロスチェック(リポジトリにリストされているバックアップが存在するかどうか、使用可能であるかどうか、またクロスチェック時に使用不可のバックアップに期限切れのマークが付いているかどうかのクロスチェック)

  • 期限切れバックアップ・レコードのRMANリポジトリからの削除

  • 不要なバックアップのリポジトリおよびバックアップ・メディアからの削除

  • 特定のバックアップが使用可能で破損していないかを確認するバックアップ検証

注意:

バックアップがすでに存在しない場合は、RMANリポジトリからバックアップ・レコードをただちに削除してください。使用可能なバックアップの正確なレコードがないと、リカバリの実行が必要なときに、データベースの完全なバックアップが存在しないことが判明する可能性があります。

バックアップの定期的なクロスチェックなどのタスクは、バックアップ計画の一環として定期的にスケジュールしてください。

高速リカバリ領域をバックアップ記憶域に使用している場合、多くのメンテナンス・アクティビティが不要になるか、または削減されます。バックアップ・ファイルおよびその他のファイルは、必要に応じて自動記憶領域管理メカニズムにより削除されるため、保存ポリシーに違反することなく、進行中のデータベース操作での記憶領域要求に応えることができます。ただし、高速リカバリ領域の領域使用量を監視して、バックアップおよびその他のリカバリ関連ファイルの格納に十分な大きさがあることを確認する必要があります。

9.6.2 バックアップのクロスチェック

バックアップをクロスチェックすると、バックアップの物理的な状況をOracle Recovery Manager (RMAN)リポジトリ内の論理レコードと同期させることができます。たとえば、ディスク上のバックアップをオペレーティング・システム・コマンドで削除した場合は、クロスチェックでこの状況が検出されます。クロスチェックの後、バックアップの状態がRMANリポジトリに正確に反映されます。

ディスクへのバックアップは、RMANリポジトリに表示された場所のディスクにある場合、およびファイル・ヘッダーに破損がない場合、使用可能としてリストされます。テープへのバックアップは、バックアップがテープ上にある場合に使用可能としてリストされます。テープ上のファイル・ヘッダーの破損はチェックされません。欠落していたり破損しているバックアップは期限切れとしてリストされます。

個別のファイルをクロスチェックするには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。

  2. 既存のバックアップのサマリーを表示して、クロスチェックするバックアップを決定します。

    LIST BACKUP SUMMARY;
    
  3. 前のLISTコマンドの出力から、クロスチェックするバックアップを識別します。

  4. CROSSCHECKコマンドを使用して、識別されたファイルをクロスチェックします。

    • バックアップ・セット1345をクロスチェックする場合:

      CROSSCHECK BACKUPSET 1345;
      
      using channel ORA_DISK_1
      crosschecked backup piece: found to be 'AVAILABLE'
      backup piece handle=/ade/b/191802369/oracle/work/orcva/RDBMS/backupset/2012_04_05/o1_mf_annnn_TAG20120405T075520_7qvdlrsl_.bkp RECID=1345 STAMP=779788520
      Crosschecked 1 objects
      
    • データファイル1と5をクロスチェックする場合:

      CROSSCHECK DATAFILECOPY 1,5;
      

すべてのファイルをクロスチェックするには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。
  2. すべてのバックアップ・セットをクロスチェックする場合は、次のコマンドを使用します。
    CROSSCHECK BACKUP;
    

注意:

RMANリポジトリのすべてのバックアップ、特にテープのバックアップのクロスチェックには時間がかかります。個別のファイルのクロスチェックとは異なり、すべてのファイルのクロスチェックはスケジュールされたジョブとして処理されます。

関連項目:

マルチテナント・コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)のバックアップをクロスチェックするために使用する構文の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください

9.6.3 期限切れバックアップの削除

期限切れバックアップを削除すると、EXPIREDとしてリストされたバックアップがOracle Recovery Manager (RMAN)リポジトリから削除されます。期限切れバックアップとは、クロスチェック中にアクセス不可能であることが判明したバックアップです。バックアップを含むファイルがディスクまたはテープから削除されることはありません。この操作ではRMANリポジトリの更新のみが実行されます。

関連項目:

マルチテナント・コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)の期限切れバックアップを削除するために使用する構文の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください

期限切れのバックアップを削除するには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。
  2. オプションで、次のコマンドを使用して、バックアップ・セットをクロスチェックします。
    CROSSCHECK BACKUPSET;
    

    期限切れのバックアップを削除する前に行うバックアップのクロスチェックにより、RMANにどのバックアップが期限切れになっているかに関する最新の情報を提供します。

  3. 次のコマンドを使用して、期限切れのバックアップを削除します。
    DELETE EXPIRED BACKUP;
    

    期限切れのバックアップ・セットとイメージ・コピーがRMANリポジトリから削除されます。

9.6.4 バックアップ使用可能または使用不可のマーク付け

ディスク・ドライブが一時的にオフラインになっていたり、テープがオフサイトに保管されているなど、一時的な条件のために1つ以上の特定のバックアップを使用できない場合、これらのバックアップを使用不可とマークできます。Oracle Recovery Manager (RMAN)では、使用不可のバックアップはデータのリストアおよびリカバリで使用されません。

注意:

高速リカバリ領域に保存されたバックアップは使用不可とマークを付けることはできません。

RMANリポジトリには、使用不可のバックアップのレコードが保持されていて、期限切れバックアップを削除する場合、使用不可としてリストされたバックアップがRMANに削除されることはありません。使用不可のバックアップが再度アクセス可能になると、使用可能のマークを付けられます。

関連項目:

マルチテナント・コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)に使用する構文の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください

バックアップに使用可能または使用不可のマーク付けをするには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。
  2. オプションで、次のコマンドを使用して、バックアップ・セットをクロスチェックします。
    CROSSCHECK BACKUP;
    

    期限切れのバックアップを削除する前に行うバックアップのクロスチェックにより、RMANにどのバックアップが期限切れになっているかに関する最新の情報を提供します。

  3. 使用可能なバックアップのサマリーを表示します。
    LIST BACKUP SUMMARY;
    
    List of Backups
    ===============
    Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
    ------- -- -- - ----------- --------------- ------- ------- ---------- ---
    1 B A A DISK 24-FEB-07 1 1 NO TAG20070427T115348
    3 B A A DISK 24-MAR-07 1 1 NO TAG20070427T115452
    4 B F A DISK 24-APR-07 1 1 NO TAG20070427T115456
    
  4. LISTコマンドの出力から、使用可能または使用不可にするバックアップを識別します。「キー」列に表示されている値を使用して、バックアップ・セットを識別します。
  5. CHANGEコマンドを使用して、識別されたバックアップのステータスを使用不可に変更します。

    次のコマンドは、バックアップ・セット4に使用不可のマーク付けをします。

    CHANGE BACKUPSET 4 UNAVAILABLE;
    
    changed backup piece available
    backup piece handle=/ade/b/191802369/oracle/work/orcva/RDBMS/backupset/2012_04_05/o1_mf_annnn_TAG20120405T075520_7qvdlrsl_.bkp RECID=23 STAMP=779788520
    Changed 1 objects to AVAILABLE status
    

    バックアップ・セット4に使用可能のマーク付けをするには、次のコマンドを使用します。

    CHANGE BACKUPSET 4 AVAILABLE;
    

9.6.5 不要なバックアップの削除

この項では、構成済の保存ポリシーで必要とされていない不要なバックアップの削除方法について説明します。高速リカバリ領域を唯一のディスクベースのバックアップ先として使用している場合、不要なバックアップをディスクから削除する必要はありません。高速リカバリ領域では、ファイルは保存ポリシーで指定したとおりに保持され、領域が不足した場合にのみ削除されます。

関連項目:

CDBおよびPDBの不要になったバックアップの削除に使用する構文は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください

不要なバックアップを削除するには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。
  2. 次のコマンドを使用して、バックアップ・セットおよびイメージ・コピーを含むすべての不要なバックアップを削除します。
    DELETE OBSOLETE;
    

    RMANは不要なバックアップのリストを表示し、リストされたバックアップを削除するかどうかを確認します。

9.6.6 高速リカバリ領域の領域使用状況の監視

高速リカバリ領域の領域使用量を監視して、バックアップおよびその他のリカバリ関連ファイルの格納に十分な大きさがあることを確認するのは重要です。Oracle Databaseでは、高速リカバリ領域の領域使用状況を監視するために、2つのビューV$RECOVERY_FILE_DESTおよびV$RECOVERY_AREA_USAGEが提供されます。

V$RECOVERY_FILE_DESTビューを使用して、高速リカバリ領域に関する情報(ファイル合計数、現在の位置、ディスク割当て制限、使用領域およびファイル削除による再利用可能な領域)を取得します。領域の詳細はバイト単位で示されます。V$RECOVERY_FILE_DESTを問い合せると、次の出力が生成されます。

SELECT * FROM V$RECOVERY_FILE_DEST;

NAME         SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------- ----------- ---------- ----------------- ---------------
/mydisk/rcva 5368709120  109240320  256000            28

V$RECOVERY_AREA_USAGEビューには、異なるタイプのファイルで使用されるディスクの割当ての割合と、不要なファイル、冗長なファイルまたはテープにバックアップされているファイルを削除することによって再利用できる領域の割合が含まれます。V$RECOVER_AREA_USAGEビューを問い合せると、次の出力が生成されます。

SELECT * FROM V$RECOVERY_AREA_USAGE;

FILE_TYPE    PERCENT_SPACE_USED  PERCENT_SPACE_RECLAIMABLE  NUMBER_OF_FILES
------------ ------------------  -------------------------  ---------------
CONTROLFILE        0                  0                         0
ONLINELOG          2                  0                         22
ARCHIVELOG         4.05              2.01                       31
BACKUPPIECE        3.94              3.86                       8
IMAGECOPY         15.64              10.43                      66
FLASHBACKLOG       .08                0                         1

9.7 オラクル社が推奨するリカバリの実行

オラクル社推奨のリカバリ機能では、データ・リカバリ・アドバイザを利用します。これは、データ障害を自動的に診断して適切な修復オプションを決定、提示し、ユーザーの要求に応じて修正を実行するOracle Database機能です。データ修復を自動化する集中ツールを提供することで、データ・リカバリ・アドバイザはOracle Databaseの管理性および信頼性を高めます。

注意:

データ・リカバリ・アドバイザは、マルチテナント・コンテナ・データベース(CDB)の障害の診断および修復にのみ使用できます。プラガブル・データベース(PDB)に対してはサポートされていません。

RMANはデータ・リカバリ・アドバイザにコマンドライン・インタフェースを提供します。次のRMANコマンドを使用して、Oracle RACデータベースを含むOracle Databaseに対するデータ障害を診断および修復できます。

  • LIST FAILURE

    このコマンドを使用すると、障害に関する問題の説明およびデータベースの操作に対するそれらの障害の影響を表示できます。各障害は、障害番号によって識別されます。

  • ADVISE FAILURE

    このコマンドを使用すると、自動および手動の両方の修復オプションを表示できます。

  • REPAIR FAILURE

    このコマンドを使用すると、最新のADVISE FAILUREコマンドによってリストされた障害を自動的に修復できます。

関連項目:

CHANGE FAILUREコマンドの使用による障害のステータスまたは優先度の変更については、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

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

9.7.1 データ・リカバリ・アドバイザについて

データ・リカバリ・アドバイザにおける状態チェックとは、データベースまたはデータベース・コンポーネントの状態を評価するために状態モニターが実行する診断手順です。状態チェックは、エラーの発生を受けて実行されます。手動で実行することもできます。

障害とは、状態チェックで検出された永続的なデータ破損です。通常、障害は発生後に検出されます。データベース操作によってデータが破損するとエラーになり、データベースで状態チェックが自動的に実行されます。このチェックでは、エラーに関連した障害がないかどうかデータベースが調査されます。診断された障害は、自動診断リポジトリ(ADR)に記録されます。

データベースによって障害が検出され、ADRに格納された後にのみ、データ・リカバリ・アドバイザを使用して、修復アドバイスを生成し、障害を修復できます。データ・リカバリ・アドバイザは、アクセス不可能なファイル、物理および論理ブロック破損、I/O障害などの障害をレポートし、修復します。すべての障害に、CRITICAL、HIGH、LOWのいずれかの障害優先度が設定されます。OPENまたはCLOSEDの障害ステータスも設定されます。

また、データ・リカバリ・アドバイザを使用して修復オプションを表示することもできます。修復とは、1つ以上の障害を修正する処理です。修復の例としては、ブロック・メディア・リカバリ、データファイル・メディア・リカバリ、Oracle Flashback Databaseなどがあげられます。通常、データ・リカバリ・アドバイザは、自動修復オプションと手動修復オプションの両方を提供します。必要に応じて、修復を実行するために、自動修復オプションを選択できます。その場合、データ・リカバリ・アドバイザは修復が正常に行われたことを確認し、該当する修復済の障害をクローズします。

9.7.2 データ・リカバリ・アドバイザの使用

リカバリ・プロセスは、障害が疑われるとき、または障害が検出されたときに起動します。障害は、エラー・メッセージ、アラート、トレース・ファイル、状態チェックなど、多くの方法で検出できます。その後、データ・リカバリ・アドバイザを使用して障害に関する情報およびアドバイスを取得し、障害を自動的に修復することができます。

この項では、データ・リカバリ・アドバイザを使用して破損ブロックを修復する例について説明します。

Oracle推奨リカバリ計画を使用して障害を自動的に修復するには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続に説明されているとおりに、Oracle Recovery Manager (RMAN)をターゲット・データベースに接続します。

    マルチテナント環境では、SYSDBAまたはSYSBACKUP権限を持つ共通ユーザーとしてルートに接続します。

  2. 次のコマンドを実行して、データ・リカバリ・アドバイザで認識されている障害をすべて表示します。
    LIST FAILURE;
    
    List of Database Failures
    =========================
    Failure ID Priority Status Time Detected Summary
    ---------- -------- ------ ------------- --------
    142        HIGH     OPEN   23-APR-07     One or more non-system datafiles are
                                             missing
    101        HIGH     OPEN   23-APR-07     Datafile 1: '/disk1/oradata/prod/
                                             system01.dbf' contains one or more  
                                             corrupt blocks
    

    可能なかぎり、RMANではLIST FAILUREコマンドの結果の表示中に障害を統合します。たとえば、データファイルに複数のブロック障害が含まれている場合、LIST FAILUREコマンドによって修復オプションが統合して表示されます。

    関連項目:

    LIST FAILURE ... DETAILコマンドを使用した障害の個別表示の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください

  3. データベースによって自動的に診断されていない障害の存在が疑われる場合は、次のコマンドを使用して、破損ブロックおよび欠落しているデータファイルを確認します。
    VALIDATE DATABASE;
    

    検証中に問題が検出されると、RMANが障害の評価の実行をトリガーします。

  4. 次のコマンドを使用して、修復オプション(自動および手動の両方)を決定します。
    ADVISE FAILURE;
    
  5. 次のコマンドを使用して、障害を修復します。
    REPAIR FAILURE;
    

    自動修復はデータ・リカバリ・アドバイザによって実行されます。欠落した制御ファイルのバックアップが存在しないなど、特定の場合に使用可能な修復オプションは手動オプションのみです。

9.8 ユーザー指定リカバリの実行

ユーザー主導リカバリでは、フラッシュバック機能を使用してリストア操作およびリカバリ手順を実行できます。たとえば、次の操作を実行できます。
  • 論理的なフラッシュバック機能によるデータベース・オブジェクトへの不要な変更の修復

  • Oracle Flashback Databaseを使用したデータベース全体の巻戻し

  • データベースの完全なリストアおよびリカバリ

  • データベースまたは選択した表領域のPoint-in-Timeリカバリの実行

  • 破損ブロックを含むデータファイルのブロック・メディア・リカバリの実行

データベース操作に影響を与える前に、破損したデータベース・ファイルがあるなどの状況の検出を含め、データベースのどの部分をリストアおよびリカバリする必要があるかを決定できます。

この項には、いくつかの一般的なリカバリの例が含まれているため、Oracle Recovery Manager (RMAN)を使用したデータベース全体またはオブジェクトレベルのリカバリの実行の理解を深めることができます。データベース全体またはオブジェクトレベルのリカバリを実行するには、RESTOREおよびRECOVERコマンドを使用します。

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

9.8.1 Oracle Flashback Tableを使用した表の巻戻し

Oracle Flashback Tableを使用すると、他のデータベース・オブジェクトに影響を与えることなく、1つ以上の表を過去のある時点の内容に戻すことができます。したがって、表の行を誤って追加または削除した場合のような論理的なデータ破損からのリカバリが可能です。Point-in-Timeリカバリとは異なり、データベースはフラッシュバック操作中も使用可能なままです。

この例では、hrスキーマのemployees表にあるフラッシュバック表を使用します。想定として、2005年10月23日15時30分00秒の直後の誤った更新により、すべての従業員のlastname列が空の文字列に変更されたため、元のlastname値を表に戻す必要があります。

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

9.8.1.1 表における行の移動の有効化
フラッシュバック表を使用する前に、フラッシュバックする(以前の状態に戻す)表で行の移動が有効になっていることを確認する必要があります。行の移動とは、フラッシュバック発生後にROWIDが変わることを意味します。このような制約が存在するのは、フラッシュバック前のROWIDをアプリケーションが保存していた場合に、フラッシュバック後もそのROWIDが同じ行に対応する保証はないためです。

表における行の移動を有効にするには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続に説明されているとおりに、Oracle Recovery Manager (RMAN)をターゲット・データベースに接続します。
  2. フラッシュバック表を使用して巻き戻すすべてのオブジェクトに対して、行の移動を有効にします。

    次のコマンドは、hr.employees表の行の移動を有効にします。

    ALTER TABLE hr.employees ENABLE ROW MOVEMENT;
    

    この例では、hr.jobsおよびhr.departmentsの各表で行の移動を有効化する必要があります。

9.8.1.2 フラッシュバック表操作の実行

この例では、hr.employees表およびその依存表を過去のある時点に巻き戻します。

フラッシュバック表の操作を実行するには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続に説明されているとおりに、Oracle Recovery Manager (RMAN)をターゲット・データベースに接続します。
  2. フラッシュバック対象の表に、他の表への依存性があるかどうかを確認します。

    次のSQL問合せを使用すると、hr.employeesの依存性を確認できます。

    SELECT other.owner, other.table_name 
        FROM sys.all_constraints this, sys.all_constraints other
        WHERE this.owner = 'HR'
          AND this.table_name = 'EMPLOYEES'
          AND this.r_owner = other.owner
          AND this.r_constraint_name = other.constraint_name
          AND this.constraint_type='R';
    
    OWNER                          TABLE_NAME
    ------------------------------ ------------------------------
    HR                             EMPLOYEES
    HR                             JOBS
    HR                             DEPARTMENTS
    
  3. フラッシュバック対象の表とその依存表に対して、行の移動が有効になっていることを確認します。

    この例では、表における行の移動の有効化に記載されている手順を使用して、hr.employeeshr.jobsおよびhr.departmentsの各表に対して行の移動を有効化する必要があります。

  4. 表を戻す時刻、SCNまたはリストア・ポイントを識別します。

    この例では、5分前に行を誤って挿入したと想定しています。したがって、現在の時刻より5分前のタイムスタンプにロールバックする必要があります。

    注意:

    不要な変更がどの時点で行われたかが不明な場合、Oracle Flashback Version Queryを使用して、ターゲット表に対して最近行われたすべての変更を確認できます。この機能の使用方法については、このマニュアルでは説明しません。

  5. 指定した目標時点に表を巻戻すための十分なUNDOデータが存在していることを確認します。

    次の問合せを使用すると、UNDOデータが保持される期間を確認できます。

    SELECT NAME, VALUE/60 MINUTES_RETAINED 
        FROM V$PARAMETER
        WHERE NAME = 'undo_retention';
    
    NAME             MINUTES_RETAINED
    ---------------  ----------------
    undo_retention               15
    
  6. FLASHBACK TABLE文を使用して、必要な表に対してフラッシュバック操作を実行します。

    次のSQL文は、表hr.employeeshr.jobsおよびhr.departmentsを指定した時間に戻します。

    FLASHBACK TABLE hr.employees TO TIMESTAMP TO_TIMESTAMP('2012-03-27 09:30:00', 'YYYY-MM-DD HH:MI:SS');
    
    FLASHBACK TABLE hr.jobs TO TIMESTAMP TO_TIMESTAMP('2012-03-27 09:30:00', 'YYYY-MM-DD HH:MI:SS');
    
    FLASHBACK TABLE hr.departments TO TIMESTAMP TO_TIMESTAMP('2012-03-27 09:30:00', 'YYYY-MM-DD HH:MI:SS');
    

9.8.2 Oracle Flashback Dropを使用した削除された表のリカバリ

Oracle Flashback Dropを使用すると、削除した表を索引やトリガーなどの依存オブジェクトとともにデータベースに戻して、表の削除の影響を取り消すことができます。この機能では削除したオブジェクトがごみ箱に格納されますが、ごみ箱の中のオブジェクトは、ユーザーの明示的な指定または領域不足によりごみ箱がパージされるまで取得可能です。

フラッシュバック表と同様に、フラッシュバック・ドロップはデータベースがオープンしているときに使用できます。また、フラッシュバックを行っても、フラッシュバック・ドロップ操作の影響を受けないオブジェクトの変更が取り消されることはありません。フラッシュバック表は、データベースをオフラインにしてバックアップからファイルをリストアする必要のあるメディア・リカバリ形式より便利です。

注意:

フラッシュバック・ドロップの使用によりリカバリ可能な表は、ローカル管理表領域に存在する必要があります。また、SYSTEM表領域では、表領域のタイプにかかわらず、フラッシュバック・ドロップを使用しても表をリカバリできません。

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

9.8.2.1 表の削除
フラッシュバック・ドロップについて学習するため、reg_histという表を新しく作成して、後で削除します。フラッシュバック・ドロップ機能で取得できるように、表はごみ箱に配置されます。

表を作成して削除するには、次の手順を実行します。

  1. SQL*Plusをhrスキーマに接続します。
  2. 次のコマンドを使用して、hrスキーマ内の既存のREGIONS表に基づいて、表reg_histを作成します。
    CREATE TABLE reg_hist as SELECT * FROM REGIONS;
    
  3. 次のコマンドを使用して、reg_hist表を削除します。
    DROP TABLE REG_HIST;
    

    フラッシュバックがデータベースに対して有効になっているため、削除された表はごみ箱に格納されます。

  4. hrスキーマ内の表を表示します。
    SELECT * FROM TAB;
    
    TNAME                          TABTYPE  CLUSTERID
    ------------------------------ ------- ----------
    BIN$ANbliLHaSiu02xI+zbvDvQ==$0  TABLE
    COUNTRIES                       TABLE
    DEPARTMENTS                     TABLE
    EMPLOYEES                       TABLE
    EMP_DETAILS_VIEW                VIEW
    JOBS                            TABLE
    JOB_HISTORY                     TABLE
    LOCATIONS                       TABLE
    REGIONS                         TABLE
    
    9 rows selected.
    

    コマンド出力に表示されるBINで始まる最初の名前が、削除したばかりの表です。フラッシュバック・データベースが有効になっているため、削除された表はまだごみ箱に存在するので、コマンド出力に表示されます。

9.8.2.2 削除された表の取得
次の手順でごみ箱からreg_histを取得します。この項では、「表の削除の説明に従ってreg_hist表を作成して削除したと想定しています。

フラッシュバック・ドロップ操作を実行するには、次の手順を実行します。

  1. SQL*Plusをhrスキーマに接続し、ごみ箱内の削除された表の名前を取得します。
    SHOW RECYCLEBIN;
    
    ORIGINAL NAME  RECYCLEBIN NAME                OBJECT TYPE   DROP TIME
    -------------- ------------------------------ ------------  -----------
    REG_HIST       BIN$ANbliLHaSiu02xI+zbvDvQ==$0  TABLE      2012-03-26:16:51:54
    
  2. FLASHBACK TABLE … TO BEFORE DROPコマンドを使用して、削除された表を取得します。

    次のコマンドは、HR.REG_HIST表のフラッシュバックを実行します。

    FLASHBACK TABLE HR.REG_HIST TO BEFORE DROP;
    

    注意:

    表をごみ箱から取り出すと、ごみ箱に入っているその表の依存オブジェクトもすべて取り出されます。依存オブジェクトを単独で取り出すことはできません。

  3. 取得された表に、ごみ箱に配置される前に参照制約が含まれていた場合は、その参照制約を再作成します。

    ごみ箱では表に対する参照制約が保存されないため、この手順は手動で実行する必要があります。

9.8.3 Oracle Flashback Databaseを使用したデータベースの巻戻し

他のフラッシュバック機能とは異なり、Oracle Flashback Databaseは物理レベルで動作します。フラッシュバック・データベースを使用すると、現在のデータファイルが以前のある時点の内容に戻ります。結果はデータベースのPoint-in-Timeリカバリとほぼ同じですが、データファイルのリストアおよびリカバリの必要がないため、フラッシュバック・データベースの方が高速性に優れています。また、メディア・リカバリに比べてREDOデータ適用の必要性はわずかです。

フラッシュバック・データベースでは、データ・ブロックの旧バージョンへのアクセスにフラッシュバック・ログが使用され、アーカイブREDOログ・ファイルのデータも一部使用されます。フラッシュバック・データベースを使用してデータベースを修復するには、リカバリ設定の構成の説明に従って、フラッシュバック・ログが生成されるようにデータベースを構成する必要があります。

注意:

Oracle Recovery Manager (RMAN)のFLASHBACK DATABASEコマンドを使用して巻き戻すことができるのは、個々のプラガブル・データベース(PDB)ではなくマルチテナント・コンテナ・データベース(CDB)全体です。

フラッシュバック・データベース操作を行う手順

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。
  2. 必要なSCN、リストア・ポイントまたはフラッシュバック・データベースを実行する必要がある時点を識別します。この例では、指定した時点にデータベースを巻き戻します。

    関連項目:

    SCNを判別し、このSCNまでデータベースをフラッシュバックする方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください

  3. データベースを一貫性のある状態で停止し、インスタンスによってオープンされていないことを確認してからデータベースをマウントします。
    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    
  4. データベースを目的の時間にフラッシュバックします。

    この例では、TIME句で指定した時間にデータベース全体をフラッシュバックする必要があります。

    FLASHBACK DATABASE to TIME "TO_DATE('03/20/12','MM/DD/YY')";
    
  5. データベースを読取り専用でオープンし、いくつかの問合せを実行して、データベースの内容を検証します。

    次のコマンドは、データベースを読取り専用モードでオープンします。

    ALTER DATABASE OPEN READ ONLY;
    
  6. データベースの状態が適切であることを確認してから、RESETLOGSオプションを使用してデータベースをオープンすることによって、データベースを更新可能な状態にします。
    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    ALTER DATABASE OPEN RESETLOGS;
    

9.8.4 データベースのリストアおよびリカバリ

この項では、Oracle Recovery Manager (RMAN)を使用してデータベース全体をリストアおよびリカバリする方法を示します。この例では、1つ以上のデータファイルを損失した後、なお使用可能なサーバー・パラメータ・ファイルと制御ファイルがある場合にデータベースをリストアおよびリカバリすることを想定します。RMANを使用して、損失したサーバー・パラメータ・ファイルまたは制御ファイルをリストアすることもできます。

データベース全体をリストアおよびリカバリするには、次の手順を実行します。

  1. RMANを使用したターゲット・データベースへの接続で説明されているとおりに、RMANをターゲット・データベースに接続します。
  2. データベースがマウントされ、オープンしていないことを確認します。
    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    
  3. 次のコマンドを使用して、データベースをリストアします。
    RESTORE DATABASE;
    

    RMANバックアップのデータファイルは、デフォルトの場所にリストアされます。

  4. RECOVERコマンドを使用して、データベースをリカバリします。
    RECOVER DATABASE;
    
  5. 次のコマンドを使用して、データベースをオープンします。
    ALTER DATABASE OPEN;
    

関連項目:

9.9 バックアップおよびリカバリの実行: Oracle By Example Series

Oracle by Example(OBE)には、『Oracle Database 2日でデータベース管理者』に関するシリーズが含まれています。このOBEでは、この項のタスクを段階的に説明し、注釈付きのスクリーンショットを使用します。

バックアップおよびリカバリの実行に関するOBEを参照するには、ご使用のWebブラウザで次のURLを入力してください。

https://apexapps.oracle.com/pls/apex/f?p=44785:24:::NO:24:P24_CONTENT_ID:16832