PostgreSQL:如何使用名称A备份数据库并将其加载到名为B的数据库?

时间:2013-04-03 07:02:43

标签: postgresql database-backups pgadmin

我在同一台服务器上有两个数据库。一个名为A和一个名为B. Booth的数据库具有相同的结构。我想清空数据库B并使用数据库A中的数据加载它。这是最好的方法吗?

我试图以普通格式备份数据库A.然后打开生成的sql文件,用'B'替换每个出现的'A',然后运行sql-script。这有效,但我认为将数据从一个数据库移动到另一个数据库应该是一种更简单的方法。是吗?

我使用'pgAdmin III'作为我的工具,但这不是必需的。

这是我在这里发表的第一篇文章,希望这个问题具有相关性和结构性。我先尝试谷歌但发现很难找到有同样问题的人。

提前致谢! /大卫

解决方案:在Craig的帮助下,我就是这样做的

pg_dump -Fc -a -f a.dbbackup A

psql -c 'TRUNCATE table1, table2, ..., tableX CASCADE'

pg_restore dblive.backup -d B -c (not sure if -c was necessary)

1 个答案:

答案 0 :(得分:1)

备份:

pg_dump -Fc -f a.dbbackup

还原:

psql -c 'CREATE DATABASE b;'
pg_restore --dbname b a.dbbackup

根据需要使用-U-h等选项以正确的用户身份连接到正确的主机,并具有转储,创建和恢复数据库的权限。有关详细信息,请参阅psqlpg_dumppg_restore的文档(它们都采用相同的连接控制选项)。