PostgreSQL 多实例同步工具
面向 PostgreSQL 16 的多实例数据库结构与逻辑复制同步工具,含命令行与 Web 控制台。
https://github.com/bbmy85552/pg-merge
前往 BobPostgreSQL
数据同步
工具
-
項目說明
项目概述
pg-meger 是一个面向多台 PostgreSQL 16 实例的数据库同步与备份工具。项目同时提供命令行同步器和 FastAPI Web 控制台,可按配置完成目标库创建、表结构同步、逻辑复制订阅创建、远程数据库备份上传以及定时备份。
核心功能
- 多服务器同步:一份配置可维护多组 source / target PostgreSQL 实例。
- 多数据库同步:每条 pipeline 支持多个
source_db -> target_db映射。 - 自动建库与结构同步:目标库不存在时自动
CREATE DATABASE,使用pg_dump --schema-only | psql同步表结构。 - 逻辑复制订阅:基于 PostgreSQL 16 logical replication 自动创建 publication / subscription,实现增量同步。
- Web 控制台:浏览器中维护 pgURL、选择同步方向、执行任务并查看日志。
- 远程备份上传:将远程 DB 或指定表备份为
.dump后上传到 COS。 - 定时备份:支持每日固定时间或每隔 N 小时自动备份。
- 任务记录:同步、备份、定时任务和日志持久化到本地 SQLite。
- 断连重试:对 psql 查询、schema 同步、控制台探测等瞬时错误采用指数退避重试。
技术栈
- Python 3.11+
- FastAPI / Uvicorn — Web 控制台
- PyYAML — CLI 同步配置
- SQLite — 控制台状态库
- PostgreSQL CLI(
psql/pg_dump) - PostgreSQL 16 Logical Replication
- uv 依赖管理,PM2 可选长驻运行