ヘッダーをスキップ
Oracle® Databaseバックアップおよびリカバリ・リファレンス
11gリリース2(11.2)
B56270-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

RESYNC CATALOG

用途

RESYNC CATALOGコマンドを使用すると、リカバリ・カタログ・スキーマとターゲット・データベース制御ファイルとのメタデータの完全再同期化を実行できます。また、FROM CONTROLFILECOPY句を使用して、現行の制御ファイルを制御ファイルのコピー内のRMANメタデータと再同期化することもできます。

通常、次の場合にRESYNC CATALOGを実行します。

  • 再同期化を自動的に実行するRMANコマンドを実行したときに、リカバリ・カタログが使用不可能な場合。

  • ターゲット・データベースがARCHIVELOGモードで実行されている場合。これは、オンラインREDOログ・スイッチが発生するときや、REDOログをアーカイブするときにリカバリ・カタログが自動的に更新されないためです。

  • ターゲット・データベースの物理構造に、表領域の追加または削除などの変更を行った場合。ログのアーカイブの場合と同様に、物理スキーマを変更した場合も、リカバリ・カタログは自動的には更新されません

  • RMANが、スタンバイ・データベースにTARGETとして接続されている場合。このデータベースで実行されたRMAN操作に関するメタデータを使用してリカバリ・カタログを更新する場合。

  • RMANが、スタンバイ・データベースにTARGETとして接続されている場合。プライマリ・データベースでの物理的な変更に関するメタデータを使用してリカバリ・カタログを更新する場合(例3-29を参照)。

前提条件

RMANがマウント済またはオープン状態のデータベースにTARGETとして接続され、またリカバリ・カタログ・データベースにCATALOGとして接続されている必要があります。複数のデータベースでRESYNC CATALOGを実行する場合、各ターゲット・データベースにネットワーク接続が必要です。

使用上の注意

完全同期化と部分同期化のどちらでも実行できます。完全再同期化を実行するときに、ターゲット・データベースにマウントされた現行の制御ファイルがある場合(ただし、新しく作成された制御ファイルおよび以前に使用された制御ファイルより古い制御ファイルを除く)、RMANは物理スキーマについて変更があったすべてのレコード(データファイル、表領域、REDOスレッドおよびオンラインREDOログ)を更新します。データベースがオープン状態の場合、RMANはロールバック・セグメントについてのデータも取得します。部分再同期化では、RMANは物理スキーマおよびロールバック・セグメントに関するメタデータの再同期化は行いません。

RMANコマンドの実行時にターゲット制御ファイルがマウントされており、カタログ・データベースが使用可能である場合、RMANは必要に応じてコマンドの実行時にリカバリ・カタログを自動的に再同期化します。データベース構造の変更(データベース・ファイルの追加または削除、新規のインカネーションの作成など)後、またはRMANの永続構成の変更後に完全再同期化を実行します。

Oracle Database 11g以上では、Data Guard環境で単一のリカバリ・カタログ・スキーマがすべてのデータベースのデータベース・ファイル名を追跡できます。また、このカタログ・スキーマは、すべてのデータベースのオンラインREDOログ、スタンバイREDOログ、一時ファイル、アーカイブREDOログ・ファイル、バックアップ・セットおよびイメージ・コピーが作成される場所も追跡します。RMANは、TARGETとしてスタンバイ・データベースに接続されているときに、プライマリ・データベースのスタンバイ制御ファイルに物理スキーマの変更に関する情報が格納されていると、暗黙的に完全再同期化を実行します。


関連項目:

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

構文

resync::=

resync.gifの説明が続きます
resync.gifの説明

セマンティクス

構文要素 説明
RESYNC CATALOG ターゲット・データベースの現行の制御ファイル(デフォルト)内のRMANメタデータで、リカバリ・カタログを更新します。

RMANによって、制御ファイルの読取り一貫性ビューを取得するために、スナップショット制御ファイルが作成され、次に、スナップショットからの新しい情報でリカバリ・カタログが更新されます。RESYNC CATALOGコマンドでは、次のクラスまたはレコードが更新されます。

  • ログ・スイッチの発生時に作成されたログ履歴レコード。ログ履歴レコードはオンライン・ログ・スイッチを表し、ログ・アーカイブは表しません。

  • オンラインREDOログのアーカイブ、既存のアーカイブ・ログのコピー、またはアーカイブREDOログ・ファイルのバックアップのリストアによって作成されたアーカイブREDOログ・ファイルに対応付けられているアーカイブREDOログ・レコード。

  • バックアップ・セット、バックアップ・ピース、プロキシ・コピーおよびイメージ・コピーのレコードである、バックアップ・レコード。

  • データファイルと表領域に対応付けられた物理スキーマ・レコード。ターゲット・データベースがオープン状態の場合は、ロールバック・セグメントの情報も更新されます。


   FROM CONTROLFILECOPY
   'filename'
制御ファイルのコピーからのRMANメタデータで、現行の制御ファイルおよびリカバリ・カタログを更新します(例3-28を参照)。filenameを使用して、再同期化に使用する制御ファイルのコピーの名前を指定します。

主に、FROM CONTROLFILECOPYは制御ファイルの再作成に使用しますが、これによって制御ファイルに格納されているRMANのレコードが失われます。新しく作成した制御ファイルは、古いコピーと再同期化できます。このオプションを使用する際には、物理スキーマ情報は更新されません。

注意: 制御ファイルのコピーは、現行のデータベース・インカネーション内に存在しているか、または以前のインカネーション(最新のOPEN RESETLOGSの前)で作成されています。


FROM DB_UNIQUE_NAME
{ALL |
db_unique_name}
リカバリ・カタログを、指定した1つ以上のデータベースの制御ファイルのメタデータで再同期化します(例3-30を参照)。

FROM DB_UNIQUE_NAME ALLオプションを使用して再同期化を実行する場合、パスワード・ファイル認証を使用してターゲット・データベースに接続する必要があります。

リカバリ・カタログ内のデータベースは、db_unique_nameを使用して1つのみ指定することも、ターゲット・データベースのDBIDを共有するすべてのデータベースをALLで指定することもできます。ALLを指定した場合は、RMANがData Guard環境でリカバリ・カタログに認識されているすべてのデータベースを再同期化します。

注意: CONFIGURE DB_UNIQUE_NAME ... CONNECT IDENTIFIERを使用して、FROM DB_UNIQUE_NAMEで指定されたデータベースへのOracle Net接続に使用するネット・サービス名を指定している必要があります。

指定されたデータベースに対してRESYNC FROM DB_UNIQUE_NAMEを実行すると、RMANは、通常の再同期化と逆方向の再同期化を両方とも実行します。通常の再同期化では、RMANが制御ファイルのメタデータを使用してリカバリ・カタログを更新します。逆方向の再同期化では、制御ファイルの永続構成が、指定されたデータベースのリカバリ・カタログの情報と一致しない場合に、RMANがこの構成を更新します。

例として、最近、RMANをTARGETとしてプライマリ・データベースに接続し、CONFIGUREを実行してスタンバイ・データベースstandby_newのRMAN構成を作成したとします。ただし、RMANはTARGETとしてstandby_newに接続されていません。このような場合に、RESYNC CATALOG FROM DB_UNIQUE_NAME standby_newを実行できます。後でRMANをTARGETとしてstandby_newに接続すると、RMANによってリカバリ・カタログからstandby_newのマウント済の制御ファイルに構成が送信されます。

注意: この機能が正しく動作するには、パスワード・ファイルがすべてのリモート・データベースで同じである必要があります。パスワード・ファイルを構成内のすべてのリモート・データベースに手動でコピーする必要があります。


例3-27 ARCHIVELOGモードでのリカバリ・カタログの再同期化

この例では、アーカイブされていないREDOログ・ファイルをすべてアーカイブしてから、ターゲット・データベースの完全再同期化を実行します。

RMAN> CONNECT TARGET /
RMAN> CONNECT CATALOG rman@catdb

recovery catalog database Password: password
connected to recovery catalog database

RMAN> SQL "ALTER SYSTEM ARCHIVE LOG CURRENT";
RMAN> RESYNC CATALOG;

例3-28 制御ファイル・コピーからのリカバリ・カタログの再同期化

バックアップ情報を制御ファイル・コピーから取得するとします。

RMANクライアントを起動し、ターゲット・データベースとリカバリ・カタログに接続するとします。次のコマンドでは、ターゲット・データベースを停止してマウントし、バックアップ制御ファイルからのメタデータを使用して現行の制御ファイルのRMANリポジトリを更新した後、データベースをオープンします。

STARTUP FORCE MOUNT
RESYNC CATALOG FROM CONTROLFILECOPY '/disk1/cfile.dbf';
ALTER DATABASE OPEN;

例3-29 構造を変更後のリカバリ・カタログの再同期化

次の条件を満たしているとします。

  • Data Guard環境にプライマリ・データベースprodおよびスタンバイ・データベースstandby3が含まれる。

  • プライマリおよびスタンバイ・データベースの両方をカタログに登録している。

  • データベースおよびアーカイブ・ログをバックアップしている。

  • 次のように、SQL*Plusを起動し、データベースprodに接続して、データファイルを表領域usersに追加します。

SQL> ALTER TABLESPACE users ADD DATAFILE ''?/oradata/prod/users03.dbf'' 
  2  SIZE 1M AUTOEXTEND ON 
  3  NEXT 10K MAXSIZE 10M";

目標は、この変更に関するメタデータを使用してリカバリ・カタログを更新することです。変更内容がstandby3に伝播された後、RMANクライアントを起動してTARGETとしてstandby3に接続し、リカバリ・カタログに接続します。

次に、CONFIGUREコマンドのCONNECT IDENTIFIER句を使用して、Data Guard環境のスタンバイ・データベースの接続識別子を定義します。

CONFIGURE DB_UNIQUE_NAME standby3 CONNECT IDENTIFIER 'inst2';

ここで、RESYNC CATALOG ... ALLコマンドを使用して、Data Guard環境内のすべてのデータベースの変更とリカバリ・カタログを再同期します。特定のスタンバイ・サイトの情報にカタログを再同期することもできますが、ALLオプションを使用し、Data Guard環境で発生したすべてのデータベース変更を反映し、リカバリ・カタログ・スキーマを最新の状態に保つことをお薦めします。

RMAN> RESYNC CATALOG FROM DB_UNIQUE_NAME ALL;

リカバリ・カタログは、データベースprodusers表領域に追加されたデータファイルに関するメタデータを使用して更新されます。

例3-30 リカバリ・カタログとスタンバイ・データベースの再同期化

Data Guard環境に、プライマリ・データベースprodおよびスタンバイ・データベースdgprod3が存在するとします。目標は、dgprod3のRMAN構成を作成することです。

RMANをTARGETとしてデータベースprodに接続してから、リカバリ・カタログに接続します。次のように、CONFIGUREを使用して、リカバリ・カタログでdgprod3のRMANの永続構成を更新します。

CONFIGURE DEFAULT DEVICE TYPE TO sbt FOR DB_UNIQUE_NAME dgprod3;
CONFIGURE DB_UNIQUE_NAME dgprod3 CONNECT IDENTIFIER 'inst3';

dgprod3ではまだバックアップ操作やその他のRMAN操作を実行していないため、dgprod3の制御ファイルおよびdgprod3のリカバリ・カタログ・メタデータは同期化されていません。次のように、同じRMANセッションで、dgprod3の制御ファイルをリカバリ・カタログと同期させます。

RESYNC CATALOG FROM DB_UNIQUE_NAME dgprod3;

RMANは、dgprod3でデフォルトのデバイス・タイプをSBTに更新し、dgprod3制御ファイルの名前を使用してリカバリ・カタログを更新します。