すべてのプロダクト
Search
ドキュメントセンター

PolarDB:decoderbufs (ProtoBuf へのデコード)

最終更新日:Dec 18, 2025

decoderbufs は、PostgreSQL の論理デコーダー用の出力プラグインであり、論理レプリケーションのためにデータを Protocol Buffers フォーマットにデコードします。

適用範囲

  • PolarDB for PostgreSQL の以下のバージョンがサポートされています:

    • PostgreSQL 17 (マイナーエンジンバージョン 2.0.17.6.4.0 以降)

    • PostgreSQL 16 (マイナーエンジンバージョン 2.0.16.9.9.0 以降)

    • PostgreSQL 15 (マイナーエンジンバージョン 2.0.15.14.6.0 以降)

    • PostgreSQL 14 (マイナーエンジンバージョン 2.0.14.5.1.0 以降)

    • PostgreSQL 11 (マイナーエンジンバージョン 2.0.11.9.28.0 以降)

    説明

    マイナーエンジンバージョンは、コンソールで表示するか、SHOW polardb_version; 文を実行して確認できます。ご利用のバージョンが要件を満たしていない場合は、マイナーエンジンバージョンをアップグレードしてください。

  • decoderbufs 拡張機能は、以下のライブラリに依存します:

    • PostgreSQL:エンジンバージョン 9.6 以降。

    • Protobuf-c:バージョン 1.2 以降、データシリアライゼーション用。

    • PostGIS:バージョン 2.1 以降、PostgreSQL の空間地理データ型をサポートするため。

使用方法

decoderbufs 拡張機能はデフォルトで自動的にロードされるため、手動でロードする必要はありません。`wal_level` パラメーターを `logical` に設定する必要があります。この設定により、論理デコーディングに必要な情報が先行書き込みログ (WAL) に追加されます。

説明

`wal_level` パラメーターはコンソールで設定できます。詳細については、「クラスターパラメーターの設定」をご参照ください。このパラメーターを変更するとクラスターが再起動するため、業務への影響を考慮した上で、慎重に操作を行ってください。

以下の例は、論理レプリケーションを実行する方法を示しています:

  1. 論理レプリケーションスロットを作成し、デコーダープラグインを decoderbufs に設定します。

    SELECT * FROM pg_create_logical_replication_slot('decoderbufs_demo', 'decoderbufs');
  2. パブリッシャーインスタンスで、レプリケーションするテーブルを変更します。

  3. decoderbufs のデバッグモードを使用して WAL ログを表示します。

    SELECT data FROM pg_logical_slot_peek_changes('decoderbufs_demo', NULL, NULL, 'debug-mode', '1');
  4. decoderbufs を使用して WAL の変更を取得し、WAL の位置を更新します。

    SELECT data FROM pg_logical_slot_get_changes('decoderbufs_demo', NULL, NULL, 'debug-mode', '1');
  5. 論理レプリケーションの WAL の位置を表示します。

    SELECT * FROM pg_replication_slots WHERE slot_type = 'logical';

型のマッピング

次の表に、PostgreSQL の型と decoderbufs のフィールドのマッピングを示します。

PostgreSQL の型

Decoderbuf のフィールド

BOOLOID

datum_boolean

INT2OID

datum_int32

INT4OID

datum_int32

INT8OID

datum_int64

OIDOID

datum_int64

FLOAT4OID

datum_float

FLOAT8OID

datum_double

NUMERICOID

datum_double

CHAROID

datum_string

VARCHAROID

datum_string

BPCHAROID

datum_string

TEXTOID

datum_string

JSONOID

datum_string

XMLOID

datum_string

UUIDOID

datum_string

TIMESTAMPOID

datum_string

TIMESTAMPTZOID

datum_string

BYTEAOID

datum_bytes

POINTOID

datum_point

PostGIS ジオメトリ

datum_point

PostGIS ジオグラフィ

datum_point