返回首页
published
healthy
语言简体中文繁体中文(粤语)English

PostgreSQL 多实例同步工具

面向 PostgreSQL 16 的多实例数据库结构与逻辑复制同步工具,含命令行与 Web 控制台。

https://github.com/bbmy85552/pg-merge

访问 Bob
PostgreSQL
数据同步
工具

-

项目说明

项目概述

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 可选长驻运行