postgresql - Postgres:将一个远程数据库复制到另一个
问题描述
我正在尝试将数据库从一台远程服务器复制到另一台。我从终端(macOS)尝试了几个不同的命令:
- “pg_dump -U postgres -d [DB] -f [DB].sql”
- “pg_dump -U postgres -d [DB] -h [主机] -f [DB].sql”
但没有任何效果。我收到类似“pg_dump:错误:与数据库 [DB] 的连接失败:致命:数据库 [DB] 不存在”之类的错误。
任何想法如何解决这个问题?我尝试编辑 pg_hba.conf,但效果不佳..
解决方案
使这项工作的程序是:
下面的第一个子选项输出纯文本文件,第二个自定义格式(二进制)文件
一个)
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
要恢复您需要不同的程序
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
。
可以找到更多选项和详细信息:
和
查看链接底部的注释部分以获取示例。
推荐阅读
- sql - SQL Server Management Studio 需要完整的表路径
- django - DjangoForm 类元覆盖
- excel - 如何明智地使用高级过滤行
- excel - 想要一个包含非连续单元格的命名列表
- javascript - '[nodemon] 应用程序崩溃 - 在开始之前等待文件更改......'
- java - RESTful 重定向到基于单选按钮选择的路径
- android - 第二个动画从屏幕顶部开始,而不是前一个动画的位置
- android - 在 adb shell 中选择选项卡式数据而不使用 awk,因为使用 awk 会出现“awk not found error”
- html - 如何将文本从输入保存到角度变量?
- css - 如何在引导程序 4 中删除选择选项背景?