PostgreSQL:转储和恢复

PostgreSQL:转储和恢复,postgresql,Postgresql,我使用EMS SQL Manager for PostgreSQL,我需要转储困难的数据库(域、300+存储过程/函数、触发器、数据等)。 这个工具做不到这一点 请告诉我postgres的好GUI工具。可以做到这一点,它在安装程序中包含pg_转储和pg_还原。您可以始终使用命令行工具。 转储群集: pg_dumpall -p 5432 > /path/to/my/dump_file.sql 转储单个数据库: pg_dump -p 5432 mydb > /path/to/my/my

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


请告诉我postgres的好GUI工具。

可以做到这一点,它在安装程序中包含pg_转储和pg_还原。

您可以始终使用命令行工具。
转储群集:

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

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

DROP DATABASE IF EXISTS mydb;
CREATE DATABASE mydb;

在这种情况下,不需要
pg_dump
--clean
选项。

备份数据库,无需任何工具。我们可以使用终端

所有命令都应作为postgres用户运行

 sudo su - postgres 
备份单个数据库

pg_dump db_name > db_backup.sql
psql db_name < db_backup.sql
恢复单个数据库

pg_dump db_name > db_backup.sql
psql db_name < db_backup.sql
恢复整个postgres数据库群集

pg_dumpall > cluster_backup.sql
psql -f cluster_backup.sql postgres

有关更多命令,请参阅此源文件

pg_dump-U uguryilmaz modaltrans_dev>backup.sql

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

$ pg_dump -U username -p 5432 dbname > filename-to-backup-to.sql
要避免恢复时出现凭据和用户名问题,可以使用
--无所有者
标志

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

谢谢我不喜欢这个工具的苦行界面。顺便说一句,pg_dump没有像“删除…”这样的转储选项。。。如果。。。“存在”,它只有“-c”选项,这取决于味道。为什么pg_dump必须删除某些内容?是的,pg_dump是从数据库中进行正确转储的唯一方法,据我所知,所有GUI工具都在后台使用此软件。另外,
--clean
选项有什么问题?如果要删除的对象在还原时不存在,则不会中断任何操作。如果要删除的对象不存在,脚本将停止运行,并出现错误“错误:关系“public.t_payment”不存在“on line”仅更改表public.t_payment DROP CONSTRAINT fk_user_payer;”根据您的需要,有许多方法可以转储PostgreSQL数据库。我们主要使用PITR样式的备份。