3.2. PostgreSQL の設定

このリリースの Debezium は、ネイティブの pgoutput 論理レプリケーションストリームのみをサポートします。pgoutput を使用して PostgreSQL を設定するには、レプリケーションスロットを有効にし、レプリケーションを実行するのに十分な権限を持つユーザーを設定する必要があります。

3.2.1. レプリケーションスロットの設定

PostgreSQL の論理デコードはレプリケーションスロットを使用します。

まず、レプリケーションスロットを設定します。

postgresql.conf

wal_level=logical
max_wal_senders=1
max_replication_slots=1

  • wal_level write-ahead ログで論理デコードを使用するようにサーバーへ指示します。
  • max_wal_senders WAL 変更の処理に最大 1 つのプロセスを使用するように、サーバーに指示します。
  • max_replication_slots WAL 変更をストリーミングするために最大 1 つのレプリケーションスロットを作成できるように、サーバーに指示します。

レプリケーションスロットは、Debezium の停止中であっても Debezium に必要なすべての WAL を維持することが保証されます。このため、レプリケーションスロットを強制的に監視し、ディスク消費量やレプリケーションスロットが長時間未使用のままの場合など発生する可能性のある他の状況を避けることが重要になります。詳細は Postgres のドキュメントを参照してください

注記

PostgreSQL の write-ahead ログの 設定に関する WAL 設定ドキュメント を読み、理解することを推奨します。