Todos os produtos
Search
Central de documentação

PolarDB:decoderbufs (decodificação para ProtoBuf)

Última atualização: Aug 26, 2026

O decoderbufs é um plugin de saída para o decodificador lógico do PostgreSQL que converte dados no formato Protocol Buffers para replicação lógica.

Aplicabilidade

  • As seguintes versões do PolarDB for PostgreSQL são compatíveis:

    • PostgreSQL 17 (versão secundária do mecanismo 2.0.17.6.4.0 ou posterior)

    • PostgreSQL 16 (versão secundária do mecanismo 2.0.16.9.9.0 ou posterior)

    • PostgreSQL 15 (versão secundária do mecanismo 2.0.15.14.6.0 ou posterior)

    • PostgreSQL 14 (versão secundária do mecanismo 2.0.14.5.1.0 ou posterior)

    • PostgreSQL 11 (versão secundária do mecanismo 2.0.11.9.28.0 ou posterior)

    Nota

    Visualize a versão secundária do mecanismo no console ou execute a instrução SHOW polardb_version;. Se a versão não atender aos requisitos, upgrade the minor engine version.

  • A extensão decoderbufs depende das seguintes bibliotecas:

    • PostgreSQL: versão do mecanismo 9,6 ou posterior.

    • Protobuf-c: versão 1,2 ou posterior, para serialização de dados.

    • PostGIS: versão 2,1 ou posterior, para oferecer suporte a tipos geoespaciais do PostgreSQL.

Instruções de uso

Por padrão, o sistema carrega a extensão decoderbufs automaticamente, eliminando a necessidade de carregamento manual. Defina o parâmetro wal_level como logical. Essa configuração adiciona ao write-ahead logging (WAL) as informações necessárias para a decodificação lógica.

Nota

Defina o parâmetro wal_level no console. Para mais informações, consulte Set cluster parameters. A alteração desse parâmetro reinicia o cluster; portanto, proceda com cautela e planeje adequadamente suas operações comerciais.

O exemplo a seguir demonstra como realizar a replicação lógica:

  1. Crie um slot de replicação lógica e configure o plugin de decodificação como decoderbufs.

    SELECT * FROM pg_create_logical_replication_slot('decoderbufs_demo', 'decoderbufs');
  2. Na instância publicadora, modifique a tabela alvo da replicação.

  3. Use o modo de depuração do decoderbufs para visualizar o log WAL.

    SELECT data FROM pg_logical_slot_peek_changes('decoderbufs_demo', NULL, NULL, 'debug-mode', '1');
  4. Use o decoderbufs para recuperar alterações do WAL e atualizar a posição do WAL.

    SELECT data FROM pg_logical_slot_get_changes('decoderbufs_demo', NULL, NULL, 'debug-mode', '1');
  5. Verifique a posição WAL da replicação lógica.

    SELECT * FROM pg_replication_slots WHERE slot_type = 'logical';

Mapeamento de tipos

A tabela a seguir descreve o mapeamento entre os tipos do PostgreSQL e os campos do decoderbufs.

Tipo PostgreSQL

Campo 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