
pgcopydb是一款用于自动化在两个运行中的PostgreSQL服务器之间执行pg_dump | pg_restore操作的工具。它旨在解决原生pg_dump和pg_restore在并行处理时的限制(如目录格式需先写入本地文件),通过优化流程实现数据库的快速复制,支持并行数据传输和索引创建,显著提升复制效率。
--table-jobs)和创建索引(--index-jobs),大幅缩短复制时间pre-data和post-data转储部分(Postgres自定义格式)pre-data部分,在目标库创建所有对象pg_class.reltuples)排序,优先复制大数据量表VACUUM ANALYZE优化post-data部分,自动过滤已创建的索引和主键约束post-data项的转储ID,主进程通过pg_restore --use-list过滤已创建对象,避免重复操作| 环境变量 | 描述 | 示例 |
|---|---|---|
PGCOPYDB_SOURCE_PGURI | 源数据库连接URI | postgres://user@source.host/dbname |
PGCOPYDB_TARGET_PGURI | 目标数据库连接URI | postgres://role@target.host/dbname |
PGCOPYDB_TARGET_TABLE_JOBS | 表数据复制并行任务数 | 8 |
PGCOPYDB_TARGET_INDEX_JOBS | 索引创建并行任务数 | 2 |
bash# 配置源和目标数据库连接 export PGCOPYDB_SOURCE_PGURI="postgres://user@source.host/dbname" export PGCOPYDB_TARGET_PGURI="postgres://role@target.host/dbname" # 执行数据库复制(8个表并行,2个索引并行) pgcopydb copy-db --table-jobs 8 --index-jobs 2
dockerfileFROM pgcopydb USER root RUN apt-get update \ && apt-get install -y --no-install-recommends \ ca-certificates \ curl \ git \ && rm -rf /var/lib/apt/lists/* WORKDIR /usr/src/ RUN git clone --depth 1 https://github.com/devrimgunduz/pagila.git WORKDIR /usr/src/pgcopydb COPY ./copydb.sh copydb.sh USER docker CMD /usr/src/pgcopydb/copydb.sh
yamlversion: "3.9" services: source: image: postgres:13-bullseye expose: - 5432 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: h4ckm3 POSTGRES_HOST_AUTH_METHOD: trust target: image: postgres:13-bullseye expose: - 5432 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: h4ckm3 POSTGRES_HOST_AUTH_METHOD: trust pgcopydb: build: . environment: PGCOPYDB_SOURCE_PGURI: postgres://postgres:h4ckm3@source/postgres PGCOPYDB_TARGET_PGURI: postgres://postgres:h4ckm3@target/postgres PGCOPYDB_TARGET_TABLE_JOBS: 4 PGCOPYDB_TARGET_INDEX_JOBS: 2
版权所有 (c) PostgreSQL全球开发组。
本项目基于PostgreSQL许可证授权,详情见LICENSE文件。
本项目包含第三方依赖,详情见NOTICE文件。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务