将 PostgreSQL 数据从一台 PC 复制到另一台

Ash*_*win 4 postgresql backup restore

我正在将我的服务器应用程序从现有系统迁移到另一个系统。不幸的是,现有系统也是数据库服务器。它存储了数据。是否可以将此数据复制到其他系统?我有所有表模式的副本。
我不知道如何继续。我正在使用 PostgreSQL。

swa*_*eck 14

您可以使用转储数据库pg_dump,然后使用 psql 在新服务器上恢复它。这是上面链接中的几个命令:

创建备份:

pg_dump mydb > db.sql

复制db.sql到新服务器(具体命令取决于操作系统)

转到新服务器

createdb mydb -E UTF8 (您不必指定 UTF8 编码,但我总是这样做)

然后:

psql -d mydb -f db.sql

在我回答时,JohnP 只是回答了一个很好的答案,但假设pg_hba.conf已编辑为允许远程连接并postgres.conf已编辑为在网络上收听。


Joh*_*hnP 13

也许最简单的方法是从旧服务器进行完全转储并将结果直接通过管道传送到新服务器。像这样:

pg_dump -h old_server_ip -p 5432 -U username dbname | psql -h localhost -p 5432 -U username dbname
Run Code Online (Sandbox Code Playgroud)

以超级用户身份执行此操作。默认情况下,postgres用户是超级用户,但您可能已经创建了其他用户。

更新:如果您在不同服务器版本之间移动数据,请使用最新版本的 pg_dump,最有可能是新服务器上的 pg_dump。

  • 如果它确实存在,则此方法不会创建数据库。 (3认同)