物理スタンバイデータベースは、ログ転送サービスを通じてプライマリテナントとスタンバイテナント間でRedoログをリアルタイムに同期します。特に、プライマリテナントはスタンバイテナントへのログプッシュを自発的に行わず、スタンバイテナントがプライマリテナントからログをプルすることにのみ依存します。
ログ転送サービスは、ログ位置情報を自動的に特定し、ログの遅延やプライマリテナントが配置されるクラスタノードの障害などの高可用性問題を処理します。スタンバイテナントは、プライマリテナントのログアーカイブからログを取得するか、またはネットワークを介してプライマリテナントが存在するクラスタに直接接続してログを取得することができます。
ログ転送サービスは2種類の異なる使用モードを提供しており、これら2つのモードによって物理スタンバイデータベースの2つの異なるデプロイメント方式が決定されます:ログアーカイブ型の物理スタンバイデータベースとネットワーク型の物理スタンバイデータベースです。
ログアーカイブを利用した物理スタンバイデータベース
ログアーカイブを利用した物理スタンバイデータベースでは、物理スタンバイデータベースのRedoログはプライマリテナントまたは他のスタンバイテナントのログアーカイブから取得します。これはOracleデータベースのFar Syncに類似しており、スタンバイテナントはログアーカイブとのみやり取りを行い、上流のプライマリテナントや他のスタンバイテナントとは他の形式でのやり取りはありません。
このデプロイメントモードでは、スタンバイテナントと上流のテナント間でネットワーク接続は不要ですが、同期性能と可用性はログアーカイブメディアの影響を受けます。
ログアーカイブを利用した物理スタンバイデータベースモードのデプロイメントアーキテクチャ図は以下のとおりです。図中、Log Archive(ログアーカイブ)、Log Archive Dest(ログアーカイブ宛先)、および Log Restore(ログ復元)が共同で、このデプロイメントモードにおけるログ転送サービスを構成しています。

ネットワークベースの物理スタンバイデータベース
ネットワークベースの物理スタンバイデータベースでは、スタンバイテナントはネットワークを介してプライマリテナントまたは他のスタンバイテナントから直接ログを読み取ります。これはMySQLデータベースのレプリケーションに類似しています。
このデプロイメントモードでは、スタンバイテナントとプライマリテナントのネットワークが接続されている必要があります。スタンバイテナントはネットワークを介してRPCリクエストを送信し、プライマリテナントクラスタ内のRedoログを読み取ります。同時に、プライマリテナントノードの障害やログ回収などのシナリオでスタンバイテナントの高可用性をサポートするために、スタンバイテナントにはプライマリテナントのシステムビューに対するクエリ権限も必要です。
特に、このデプロイメントモードでは、スタンバイテナントはプライマリテナントのログ転送サービスに対して継続的にログを要求します。ログ転送サービスが返すログは、プライマリテナントのオンラインログでもアーカイブログでもかまいません(プライマリテナントでログアーカイブモードが有効な場合)。これら2種類のログソースは自動的に切り替え可能であり、スタンバイテナントおよびビジネスユーザーには透過的です。
ネットワークベースの物理スタンバイデータベースモードのデプロイメントアーキテクチャ図は以下のとおりです。図中、Primary Tenant1はログアーカイブを有効にしていないため、Standby Tenant1はログ転送サービスを通じてPrimary Tenant1のオンラインログのみを同期できます。Primary Tenant2はログアーカイブを有効にしているため、Standby Tenant2はログ転送サービスを通じてPrimary Tenant2のオンラインログを同期できます。オンラインログが回収されると、ログ転送サービスは自動的にログソースをアーカイブログに切り替え、スタンバイテナントはログ転送サービスを通じてPrimary Tenant2のアーカイブログの同期を継続できるため、ログ同期が中断しないようにします。

2つのデプロイメントモードの比較
ログアーカイブを利用した物理スタンバイデータベースとネットワークベースの物理スタンバイデータベースでは、機能の使用方法にいくつかの違いがあります。具体的な違いは以下の表のとおりです。
機能項 |
ログアーカイブ型物理スタンバイデータベース |
ネットワーク型物理スタンバイデータベース |
|---|---|---|
| スイッチオーバーのサポート | サポート | サポート |
| フェイルオーバーのサポート | サポート | サポート |
| 1つのプライマリデータベースから複数のスタンバイデータベースへの接続 | サポート | サポート |
| カスケードスタンバイデータベースのサポート | サポート | サポート |
| 非同期または同期かどうか | はい | はい |
| 最大可用モードまたは最大保護モードのサポート | サポートなし | サポートなし |
| スタンバイデータベースのスロットリングのサポート | サポートなし | サポート、クラスタレベルでの制限 |
| スタンバイデータベースのデータソース | アーカイブログ | プライマリデータベースのオンラインログまたはアーカイブログ、自動切り替えをサポート |
| プライマリデータベースでのアーカイブモードの有効化が必要かどうか | 必須 | 必須ではありません
説明ネットワーク型物理スタンバイデータベースの場合、プライマリデータベースでアーカイブモードを有効にすることを推奨します。そうでない場合、スタンバイデータベースでストリームが途絶えるリスクがあります。例えば、以下のシナリオではストリームが途絶える可能性があります:
|
| スタンバイデータベースでのアーカイブモードの有効化が必要かどうか | 必須、そうでない場合はスイッチオーバーできません | 不要です |
| リアルタイム性 | 秒単位~分単位 | 秒単位 |
| ログアーカイブでサポートされるストレージメディア | OSS/NFS | 対象外 |