# pglogrepl **Repository Path**: bigbase/pglogrepl ## Basic Information - **Project Name**: pglogrepl - **Description**: 适配tbase wal订阅以及协议解码优化 - **Primary Language**: Go - **License**: MIT - **Default Branch**: postgres - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-29 - **Last Updated**: 2025-05-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![](https://godoc.org/github.com/jackc/pglogrepl?status.svg)](https://godoc.org/github.com/jackc/pglogrepl) [![CI](https://github.com/jackc/pglogrepl/actions/workflows/ci.yml/badge.svg)](https://github.com/jackc/pglogrepl/actions/workflows/ci.yml) ``` postgres分支: pglogrepl是解析postgres pgoutput编码的解析包 优化: 1.优化解码效率; 2.升级github.com/jackc/pgx/v5到v5.6.0版本 3.支持tencent postgres for slot failover; ``` # pglogrepl pglogrepl is a Go package for PostgreSQL logical replication. pglogrepl uses package github.com/jackc/pgx/v5/pgconn as its underlying PostgreSQL connection. Proper use of this package requires understanding the underlying PostgreSQL concepts. See https://www.postgresql.org/docs/current/protocol-replication.html. ## Example In `example/pglogrepl_demo`, there is an example demo program that connects to a database and logs all messages sent over logical replication. In `example/pgphysrepl_demo`, there is an example demo program that connects to a database and logs all messages sent over physical replication. ## Testing Testing requires a user with replication permission, a database to replicate, access allowed in `pg_hba.conf`, and logical replication enabled in `postgresql.conf`. Create a database: ``` create database pglogrepl; ``` Create a user: ``` create user pglogrepl with replication password 'secret'; ``` If you're using PostgreSQL 15 or newer grant access to the public schema, just for these tests: ``` grant all on schema public to pglogrepl; ``` Add a replication line to your pg_hba.conf: ``` host replication pglogrepl 127.0.0.1/32 md5 ``` Change the following settings in your postgresql.conf: ``` wal_level=logical max_wal_senders=5 max_replication_slots=5 ``` To run the tests set `PGLOGREPL_TEST_CONN_STRING` environment variable with a replication connection string (URL or DSN). Since the base backup would request postgres to create a backup tar and stream it, this test cn be disabled with ``` PGLOGREPL_SKIP_BASE_BACKUP=true ``` Example: ``` PGLOGREPL_TEST_CONN_STRING=postgres://pglogrepl:secret@127.0.0.1/pglogrepl?replication=database go test ```