首页 > 解决方案 > Postgres:将一个远程数据库复制到另一个

问题描述

我正在尝试将数据库从一台远程服务器复制到另一台。我从终端(macOS)尝试了几个不同的命令:

但没有任何效果。我收到类似“pg_dump:错误:与数据库 [DB] 的连接失败:致命:数据库 [DB] 不存在”之类的错误。

任何想法如何解决这个问题?我尝试编辑 pg_hba.conf,但效果不佳..

标签: postgresql

解决方案


使这项工作的程序是:

  1. 下面的第一个子选项输出纯文本文件,第二个自定义格式(二进制)文件

    一个)pg_dump -C -h host_name -U user_name -d database_name -f database.sql

    -C告诉 pg_dump 提供在恢复时创建数据库的命令。

    b)pg_dump -Fc -h host_name -U user_name -d database_name-f database.out

  2. 要恢复您需要不同的程序

    a) 对于纯文本选项 1a,请执行以下操作:

    psql -d postgres -h host_name -U user_name -f database.sql

    您需要连接到现有数据库,在这种情况下为 postgres,然后-C上面的命令将创建数据库(数据库名称),然后连接到它以进行其余操作。

    b) 对于自定义格式选项 1b:

    pg_restore -C -d postgres -h host_name -U user_name database.out

    注意:只指定转储文件(database.out)不要使用-f

可以找到更多选项和详细信息:

pg_dump

pg_restore

查看链接底部的注释部分以获取示例。


推荐阅读