適切なロギング・モードの有効化
スタンバイ・データベースを作成するためのプライマリ・データベースの準備の一環として、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管理者ガイドを参照してください。