首页 > 解决方案 > 如何将 complet.BD.postgres 从 SERVER1 直接复制/传输到 SERVER2?

问题描述

许多网站(如 StackOverFlow:将 PostgreSQL 数据库复制到另一台服务器)都谈到了这一点,但我的命令可能有问题。

pg_dump -C -h localhost -U postgres BD.to.move | psql -h server.destiny -U postgres BD.to.move

我在 S1 上有密码 root + 密码 postgres

我在 S2 上有密码 root + 密码 postgres

但是在运行我的命令之后over server1,在 server2 中不存在BD.to.move.

我的命令错了吗?

我如何复制/转移 {BD.to.move + ROLES + SCHEMAS + users, + password, etc...} ?

(换句话说,BD 完成直接在 server.destiny 的生产中使用)

标签: postgresql

解决方案


不要为 指定参数BD.to.movepsql因为该数据库在目的地不存在。使用postgres, 存在。

如果您使用 创建转储-C,它将包含一个CREATE DATABASE语句。为了恢复这样的转储,您必须连接到您要恢复的数据库以外的现有数据库,然后psql将首先创建数据库,然后连接到它并恢复数据。


推荐阅读