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

PolarDB:decoderbufs

最終更新日:Nov 11, 2024

Decoderbufsは、プロトコルバッファ形式の論理レプリケーション用のPostgreSQL論理デコーダ出力プラグインです。

前提条件

  • Decoderbufsは、次のPolarDB for PostgreSQLクラスターでサポートされています。

    • PostgreSQL 14 (バージョン14.5.1.0以降)

    • PostgreSQL 11 (バージョン1.1.28以降)

    説明

    次のステートメントを実行して、PolarDB for PostgreSQLで使用されるマイナーバージョンを表示できます。

    • PostgreSQL 14

      SELECT version();
    • PostgreSQL 11

      SHOW polar_version;
  • Decoderbufsは、次のライブラリに依存します。

    • PostgreSQL 9.6以降

    • Protobuf-c: データのシリアル化の1.2以降

    • PostGIS: PostgreSQL Geo型をサポートする2.1以降。

設定と使用

Decoderbufsはデフォルトで自動的に読み込まれます。 wal_levelパラメーターをlogicalに変更する必要があります。

説明

このパラメーターはコンソールで変更できます。 詳細については、「手順」「」をご参照ください。 パラメーターを変更すると、クラスターが再起動します。 作業は慎重に行ってください。

論理レプリケーションの例:

  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型OIDがdecoderbufフィールドにマップされる方法を示しています。

PostgreSQLタイプOID

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 geometry

datum_point

PostGIS geography

datum_point