百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
P

pgcopydb

> 编程语言
开源

将 Postgres 数据库复制到目标 Postgres 服务器 (pg_dump | pg_restore 升级版)

1.5K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

将 Postgres 数据库复制到目标 Postgres 服务器 (pg_dump | pg_restore 升级版)

pgcopydb ## 简介

理想的做法是使用 pg_dump --jobs=N --format=directory postgres://user@source/dbname | pg_restore --jobs=N --format=directory -d postgres://user@target/dbname。不幸的是,这个命令行无法正常运行,因为 pg_dump --format=directory 先写入本地文件和目录,然后 pg_restore --format=directory 才能从这些文件中读取数据。考虑到这一点,pgcopydb 使用 pg_dump 和 pg_restore 处理方案的架构部分,并实现了自己的数据复制多进程流式处理部分。此外,pgcopydb 绕过 pg_restore 索引构建,并内部执行索引构建,以便同时构建所有索引。

pgcopydb 实现了数据库的基础复制以及更改数据捕获,以便从源数据库到目标数据库重放更改。更改数据捕获功能使用 Postgres 逻辑解码基础架构实现。默认插件为 pgoutput,它已内置于 PostgreSQL 核心中(自版本 10 起),不需要安装扩展。此外,还支持 test_decoding 和 wal2json 插件。

WAL 变更存储在 pgcopydb 工作目录中的结构化 SQLite 数据库 (output.db 和 replay.db) 中,这使得在进程重启、基于大小的文件轮转以及 stream prune 命令中可靠地处理数据,从而回收磁盘空间。 pgcopydb follow 命令实现了逻辑复制客户端,用于 pgoutput 逻辑解码插件(内置于 PostgreSQL 核心中),以及 test_decoding 和 wal2json。 pgcopydb clone --follow 命令实现了全面的在线迁移解决方案。请注意,与离线迁移相比,在线迁移涉及更多的复杂性。始终建议先实现离线迁移。逗号

Issues· 38 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言