PostgreSQL:转储和恢复

Dmi*_*try 7 postgresql

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

请为postgres建议好的GUI工具.

Erw*_*ter 17

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

pg_dumpall -p 5432 > /path/to/my/dump_file.sql
Run Code Online (Sandbox Code Playgroud)

转储单个数据库:

pg_dump -p 5432 mydb > /path/to/my/mydb_dump.sql
Run Code Online (Sandbox Code Playgroud)

仅转储架构:

pg_dump -p 5432 mydb -s > /path/to/my/mydb_dump_schema.sql
Run Code Online (Sandbox Code Playgroud)

更多内容在手册中.


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

DROP DATABASE IF EXISTS mydb;
CREATE DATABASE mydb;
Run Code Online (Sandbox Code Playgroud)

--clean为选择pg_dump在这种情况下没有必要的.


Din*_*apa 5

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

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

 sudo su - postgres 
Run Code Online (Sandbox Code Playgroud)

备份单个数据库

pg_dump db_name > db_backup.sql
Run Code Online (Sandbox Code Playgroud)

恢复单个数据库

psql db_name < db_backup.sql
Run Code Online (Sandbox Code Playgroud)

备份整个 postgres 数据库集群

pg_dumpall > cluster_backup.sql
Run Code Online (Sandbox Code Playgroud)

恢复整个 postgres 数据库集群

psql -f cluster_backup.sql postgres
Run Code Online (Sandbox Code Playgroud)

有关更多命令备份命令,请参阅此来源