このトピックでは、ApsaraDB RDS for PostgreSQLの論理レプリケーションスロットフェールオーバー機能について説明します。 データベースシステムのプライマリApsaraDB RDS for PostgreSQLインスタンスに障害が発生した場合、この機能はすべての論理レプリケーションスロットをセカンダリRDSインスタンスに同期できます。
前提条件
RDSインスタンスはPostgreSQL 10以降を実行します。 Logical Replication Slot Failover機能がまだサポートされていない場合は、RDSインスタンスのマイナーエンジンバージョンを更新する必要があります。 詳細については、「マイナーエンジンバージョンの更新」をご参照ください。
背景情報
プライマリRDSインスタンスで作成された論理レプリケーションスロットは、ストリーミングレプリケーションプロトコルに従ってセカンダリRDSインスタンスと同期されません。 一次 /二次切り替えの場合、論理複製スロットが失われ、その結果、論理サブスクリプションが中断される。 Logical Replication Slot Failover機能は、すべての論理レプリケーションスロットをプライマリRDSインスタンスからセカンダリRDSインスタンスに同期できます。
ApsaraDB RDS for PostgreSQLインスタンスでは、デフォルトで論理レプリケーションスロットフェールオーバー機能が有効になっています。 フェイルオーバーは、論理レプリケーションスロットでサポートされます。 ただし、物理レプリケーションスロットではフェイルオーバーはサポートされません。
詳細については、「論理デコードの概念」をご参照ください。
論理レプリケーションスロットのフェールオーバー機能のステータスを表示する
次のSQL文を実行して、Logical Replication Slot Failover機能が有効になっているかどうかを確認できます。
rds_failover_slot_modeを表示します。
次の応答が返されます。
rds_failover_slot_mode
------------------------
async
(1行のレコード)
次のいずれかの結果を返すことができます。
async: 論理レプリケーションスロットフェールオーバー機能が有効になっています。
off: Logical Replication Slot Failover機能はサポートされていますが、無効です。
ERROR: 認識できない設定パラメーター "rds_failover_slot_mode": Logical Replication Slot Failover機能はサポートされていません。 使用するメジャーエンジンのバージョンとマイナーエンジンのバージョンが、前提条件セクションで説明されている要件を満たしていることを確認します。 使用するメジャーエンジンのバージョンまたはマイナーエンジンのバージョンが、「前提条件」セクションに記載されている要件を満たしていない場合は、アップグレードまたは更新を実行する必要があります。 詳細については、「メジャーエンジンのバージョンのアップグレード」および「マイナーエンジンバージョンの更新」をご参照ください。