適切なロギング・モードの有効化

スタンバイ・データベースを作成するためのプライマリ・データベースの準備の一環として、Data Guard構成の使用方法に適したロギング・モードを有効にする必要があります。

Oracle Data Guard構成の一部ではないデータベースのデフォルトのロギング・モードでは、特定のデータ・ロード操作をログに記録されない方法で実行できます。このデフォルト・モードは、ロードされたデータがスタンバイから欠落し、修正に手動操作が必要になるため、スタンバイを含むデータベースには適していません。

デフォルトのロギング・モードに加えて、プライマリ・データベースに適したモードが他に3つあります。

  • FORCE LOGGINGモードでは、ログに記録されない方法でロード操作が実行されることを防止できます。このモードでは、ロードされたデータをREDOログにコピーする必要があるため、ロード・プロセスの速度が低下する可能性があります。FORCE LOGGINGモードを有効化するには、次のコマンドを使用します。
    SQL> ALTER DATABASE FORCE LOGGING;
  • STANDBY NOLOGGING FOR DATA AVAILABILITYモードでロード操作を実行すると、ロードされたデータがスタンバイ固有の接続を介して各スタンバイに送信されます。コミットは、すべてのスタンバイがActive Data Guard環境内の管理リカバリ実行の一部としてデータを適用するまで遅延されます。これは、次のコマンドを使用して有効化されます。
    SQL> ALTER DATABASE SET STANDBY NOLOGGING FOR DATA AVAILABILITY;
  • STANDBY NOLOGGING FOR LOAD PERFORMANCEは、前述のモードに似ていますが、プライマリにデータをロードする際のネットワーク速度を維持できない場合に、ロード・プロセスによるスタンバイへのデータ送信を停止できる点が異なります。このモードでは、スタンバイからデータが欠落する可能性がありますが、各スタンバイはActive Data Guard環境内の管理リカバリ実行の通常の一部として、プライマリ・データベースのデータを自動的にフェッチします。これは、次のコマンドを使用して有効化されます。
    SQL> ALTER DATABASE SET STANDBY NOLOGGING FOR LOAD PERFORMANCE;
    
    

これらの文のいずれかを発行する場合は、プライマリ・データベースを少なくともマウントしておく(また、オープンもできるようにしておく)必要があります。この文は、完了までに非常に時間がかかる場合があります。これは、ログに記録されないダイレクト書込みI/Oがすべて完了するまで待機するためです。

ノート:

プライマリ・データベースでSTANDBY NOLOGGING FOR DATA AVAILABILITYまたはSTANDBY NOLOGGING FOR LOAD PERFORMANCEを有効にすると、複数インスタンスのREDO Apply機能を使用しているすべてのスタンバイはREDOの適用を停止し、エラーORA-10892が発生します。まず、REDO Applyを再開し、影響を受けたスタンバイがNOLOGGING操作期間を超えて進行できるようにしてから、複数インスタンスのREDO Applyを有効化する必要があります。

Data Guardスタンバイ・データベースでのログに記録されないブロックの自動訂正は、次でのみ使用できます:
  • Oracle Database Appliance
  • Exadata
  • Exadata Cloud Service
  • Database Cloud Service Enterprise Edition - Extreme Performance

関連トピック

参照:

FORCE LOGGINGモード指定の影響の詳細は、Oracle Database管理者ガイドを参照してください。