PostgreSQL:转储和恢复

时间:2012-04-26 16:00:19

标签: postgresql

我使用EMS SQL Manager for PostgreSQL,我需要转储困难的数据库(域,300多个存储过程/函数,触发器,数据等)。 这个工具不能这样做。

请为postgres建议好的GUI工具。

5 个答案:

答案 0 :(得分:13)

您始终可以使用命令行实用程序 转储群集:

pg_dumpall -p 5432 > /path/to/my/dump_file.sql

转储单个数据库:

pg_dump -p 5432 mydb > /path/to/my/mydb_dump.sql

仅转储架构:

pg_dump -p 5432 mydb -s > /path/to/my/mydb_dump_schema.sql

More in the manual.


如果要还原到空数据库,可能需要在还原之前运行

DROP DATABASE IF EXISTS mydb;
CREATE DATABASE mydb;

在这种情况下,不需要--clean的{​​{1}}选项。

答案 1 :(得分:3)

pgAdmin3可以解决问题,安装程序中包含pg_dump和pg_restore。

答案 2 :(得分:2)

备份您的数据库无需工具。我们可以使用终端

所有命令都应该以postgres用户身份运行。

 sudo su - postgres 

备份单个数据库

pg_dump db_name > db_backup.sql

恢复单个数据库

psql db_name < db_backup.sql

备份整个postgres数据库集群

pg_dumpall > cluster_backup.sql

恢复整个postgres数据库群集

psql -f cluster_backup.sql postgres

请参阅此来源以获取更多命令backup commands

答案 3 :(得分:1)

pg_dump -U uguryilmaz modaltrans_dev> backup.sql

答案 4 :(得分:1)

如果您使用md5身份验证技术并希望使用特定用户来获取数据库转储,则可以

$ pg_dump -U username -p 5432 dbname > filename-to-backup-to.sql

为避免在还原时出现凭据和用户名问题,可以使用--no-owner标志

$ pg_dump --no-owner -U username -p 5432 dbname > filename-to-backup-to.sql