You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用yb-voyager迁移至YugaByte时导出Postgres schema遇pg_dump错误求助

解决yb-voyager导出schema时的pg_dump错误

1. 检查pg_dump版本兼容性

yb-voyager要求pg_dump版本与源PostgreSQL数据库主版本保持一致(比如源库是13.x,就用13系列的pg_dump)。

  • 查看源库版本:psql -h <SOURCE_DB_HOST> -U <SOURCE_DB_USER> -d <SOURCE_DB_NAME> -c "SELECT version();"
  • 查看当前pg_dump版本:pg_dump --version
  • 版本不匹配时,安装对应版本的pg_dump,或在命令中通过--pg-dump-path指定正确路径:
    yb-voyager export schema --export-dir <EXPORT_DIR> \
            --source-db-type postgres \
            --source-db-host <SOURCE_DB_HOST> \
            --source-db-user <SOURCE_DB_USER> \
            --source-db-password <SOURCE_DB_PASSWORD> \
            --source-db-name <SOURCE_DB_NAME> \
            --source-db-schema <SOURCE_DB_SCHEMA> \
            --pg-dump-path /path/to/correct/pg_dump
    

2. 验证源数据库权限

确保<SOURCE_DB_USER>拥有足够执行导出的权限:

  • 需要CONNECT数据库权限,以及目标schema下所有对象的SELECT权限
  • 执行以下SQL授予权限:
    GRANT CONNECT ON DATABASE <SOURCE_DB_NAME> TO <SOURCE_DB_USER>;
    GRANT USAGE ON SCHEMA <SOURCE_DB_SCHEMA> TO <SOURCE_DB_USER>;
    GRANT SELECT ON ALL TABLES IN SCHEMA <SOURCE_DB_SCHEMA> TO <SOURCE_DB_USER>;
    GRANT SELECT ON ALL SEQUENCES IN SCHEMA <SOURCE_DB_SCHEMA> TO <SOURCE_DB_USER>;
    

3. 确认导出目录权限

保证<EXPORT_DIR>具备读写权限:

mkdir -p <EXPORT_DIR>
chmod -R 755 <EXPORT_DIR>

4. 排查网络连通性

确认源数据库主机可正常访问,端口未被防火墙/安全组拦截:

  • 测试连通性:telnet <SOURCE_DB_HOST> 5432(默认Postgres端口为5432,若修改过则用对应端口)
  • 连通失败时先打通网络再重试。

5. 直接执行pg_dump定位问题

绕过yb-voyager直接执行pg_dump,缩小问题范围:

pg_dump -h <SOURCE_DB_HOST> -U <SOURCE_DB_USER> -d <SOURCE_DB_NAME> -n <SOURCE_DB_SCHEMA> --schema-only -f <EXPORT_DIR>/schema_dump.sql
  • 若此命令报错,根据pg_dump的具体提示(如对象不存在、权限不足)针对性修复;
  • 若命令成功,再重新执行yb-voyager导出命令。

内容的提问来源于stack exchange,提问作者Setu Kumar Basak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:03:21