我使用EMS SQL Manager for PostgreSQL,我需要转储困难的数据库(域,300多个存储过程/函数,触发器,数据等)。这个工具不能做到这一点。请告诉我好的GUI工具的postgres。
s5a0g9ez1#
您可以始终使用命令行实用程序。转储群集:
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;
型在这种情况下,不需要pg_dump的--clean选项。
pg_dump
--clean
tyg4sfes2#
备份您的数据库没有工具需要.我们可以做与终端所有命令都应该以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
mbskvtky3#
pgAdmin3将做的伎俩,它有pg_dump和pg_restore包括在安装程序中。
z5btuh9x4#
如果您使用md5身份验证技术,并希望使用特定用户来获取数据库转储,则可以
$ pg_dump -U username -p 5432 dbname > filename-to-backup-to.sql
字符串要避免还原时的凭据和用户名问题,可以使用--no-owner标志
--no-owner
$ pg_dump --no-owner -U username -p 5432 dbname > filename-to-backup-to.sql
型要恢复备份,请使用以下命令
$ psql -U username -d dbname -f filename-to-backup-to.sql
型
8dtrkrch5#
pg_dump -您可以使用modaltranss_dev > backup.sql
aor9mmx16#
例如,您可以使用pg_dumpall将所有数据库、用户(角色)等导出到backup.sql,如下所示。* 如果backup.sql不存在,则会创建backup.sql,您最好使用任何超级用户(例如,postgres)这样做顺利,没有权限错误和pg_dumpall可以输出SQL在只有纯文本格式,而不是自定义格式或焦油格式和我的答案解释了如何使用pg_dump导出模式和数据,文档解释了如何使用pg_dumpall导出和导入所有内容:
backup.sql
postgres
pg_dumpall
pg_dumpall -U postgres > backup.sql
字符串或者:
pg_dumpall -U postgres -f backup.sql
型或者,您可以将所有数据库中除数据以外的所有数据导出到backup.sql,如下所示:
pg_dumpall -U postgres -s > backup.sql
型或者:
pg_dumpall -U postgres --schema-only > backup.sql
型或者,您可以仅使用INSERT语句将所有数据库的模式以外的所有内容导出到backup.sql,该语句的列名如下所示:
INSERT
pg_dumpall -U postgres -a --column-inserts > backup.sql
pg_dumpall -U postgres --data-only --column-inserts > backup.sql
型然后,您需要在运行上面的命令后输入多个密码:
Password: Password: Password: ...
型然后,您可以将backup.sql(所有内容)导入到PostgreSQL中,如下所示。
psql -U postgres -f backup.sql
型或者,你可以尝试下面这在Windows上不起作用:
psql -U postgres < backup.sql
型或者,您可以在使用用户(角色)postgres登录后使用\i将backup.sql(所有内容)导入到PostgreSQL中,如下所示:
\i
psql -U postgres postgres=# \i backup.sql
型或者,您可以将backup.sql逐个导入多个数据库,如下所示。* 您必须创建每个数据库(以及仅导入数据的架构)之前手,否则有错误,我的答案解释了如何创建一个数据库,你必须使用psql导入SQL在纯文本格式,而不是pg_restore可以导入SQL在自定义格式或焦油格式和我的答案说明如何将backup.sql导入orange数据库:
orange
psql -U postgres -f backup.sql orange psql -U postgres -f backup.sql lemon psql -U postgres -f backup.sql peach ...
型此外,您可以将密码(例如,banana)设置为PGPASSWORD,将所有数据库导出到backup.sql,而无需多次提示密码,如下所示:
banana
PGPASSWORD=banana pg_dumpall -U postgres > backup.sql
型并且,您可以将除orange和*apple*数据库之外的所有数据库导出到backup.sql,如下所示。* 一个命令中可使用多个--exclude-database:
*apple*
--exclude-database
pg_dumpall -U postgres --exclude-database=orange --exclude-database=*apple* > backup.sql
pg_dumpall -U postgres --exclude-database orange --exclude-database *apple* > backup.sql
6条答案
按热度按时间s5a0g9ez1#
您可以始终使用命令行实用程序。
转储群集:
字符串
转储单个数据库:
型
仅转储架构:
型
More in the manual.
如果你想恢复到一个空的数据库,你可能需要在恢复之前运行 *:
型
在这种情况下,不需要
pg_dump
的--clean
选项。tyg4sfes2#
备份您的数据库没有工具需要.我们可以做与终端
所有命令都应该以postgres用户身份运行。
字符串
备份单个数据库
型
恢复单个数据库
型
备份整个postgres数据库集群
型
恢复整个postgres数据库集群
型
参考此源代码以获取更多命令backup commands
mbskvtky3#
pgAdmin3将做的伎俩,它有pg_dump和pg_restore包括在安装程序中。
z5btuh9x4#
如果您使用md5身份验证技术,并希望使用特定用户来获取数据库转储,则可以
字符串
要避免还原时的凭据和用户名问题,可以使用
--no-owner
标志型
要恢复备份,请使用以下命令
型
8dtrkrch5#
pg_dump -您可以使用modaltranss_dev > backup.sql
aor9mmx16#
例如,您可以使用pg_dumpall将所有数据库、用户(角色)等导出到
backup.sql
,如下所示。* 如果backup.sql
不存在,则会创建backup.sql
,您最好使用任何超级用户(例如,postgres
)这样做顺利,没有权限错误和pg_dumpall
可以输出SQL在只有纯文本格式,而不是自定义格式或焦油格式和我的答案解释了如何使用pg_dump导出模式和数据,文档解释了如何使用pg_dumpall
导出和导入所有内容:字符串
或者:
型
或者,您可以将所有数据库中除数据以外的所有数据导出到
backup.sql
,如下所示:型
或者:
型
或者,您可以仅使用
INSERT
语句将所有数据库的模式以外的所有内容导出到backup.sql
,该语句的列名如下所示:型
或者:
型
然后,您需要在运行上面的命令后输入多个密码:
型
然后,您可以将
backup.sql
(所有内容)导入到PostgreSQL中,如下所示。型
或者,你可以尝试下面这在Windows上不起作用:
型
或者,您可以在使用用户(角色)
postgres
登录后使用\i
将backup.sql
(所有内容)导入到PostgreSQL中,如下所示:型
或者,您可以将
backup.sql
逐个导入多个数据库,如下所示。* 您必须创建每个数据库(以及仅导入数据的架构)之前手,否则有错误,我的答案解释了如何创建一个数据库,你必须使用psql导入SQL在纯文本格式,而不是pg_restore可以导入SQL在自定义格式或焦油格式和我的答案说明如何将backup.sql
导入orange
数据库:型
此外,您可以将密码(例如,
banana
)设置为PGPASSWORD,将所有数据库导出到backup.sql
,而无需多次提示密码,如下所示:型
并且,您可以将除
orange
和*apple*
数据库之外的所有数据库导出到backup.sql
,如下所示。* 一个命令中可使用多个--exclude-database
:型
或者: