Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database PostgreSQL-使用分区备份和还原数据库表_Database_Postgresql_Backup_Dump - Fatal编程技术网

Database PostgreSQL-使用分区备份和还原数据库表

Database PostgreSQL-使用分区备份和还原数据库表,database,postgresql,backup,dump,Database,Postgresql,Backup,Dump,我正在研究PostgreSQL 8.4,我想做备份和恢复(从Ubuntu11.10到Ubuntu12.4) 我想包括所有的分区、集群、角色等等 我的命令: 备份: 压缩: zip -f mybackup 解压缩和还原: sudo gunzip -c /home/ubuntu/Desktop/backupFile.zip | psql -U postgres 问题是在恢复过程中,我遇到了一个错误 invalid command \. ERROR: syntax error at or nea

我正在研究PostgreSQL 8.4,我想做备份和恢复(从Ubuntu11.10到Ubuntu12.4)

我想包括所有的分区、集群、角色等等

我的命令: 备份:

压缩:

zip -f mybackup
解压缩和还原:

sudo gunzip -c /home/ubuntu/Desktop/backupFile.zip | psql -U postgres
问题是在恢复过程中,我遇到了一个错误

invalid command \.
ERROR:  syntax error at or near "2"
LINE 1: 2 2 1
        ^
invalid command \.
ERROR:  syntax error at or near "1"
LINE 1: ...
        ^
out of memory
另外,带有分区的表没有恢复。还有一些表在没有任何数据的情况下还原

请帮忙

编辑

我使用pgAdmin做备份,使用“备份服务器”选项


如果您确实使用了
zip
压缩输出,那么您应该使用
unzip
进行解压缩,而不是
gunzip
,它们使用不同的格式/算法

我建议您只使用
gzip
gunzip
。例如,如果您生成了一个名为
mybackup.sql
的备份,那么您可以使用以下命令将其gzip:

gzip mybackup.sql
它将生成一个名为
mybackup.sql.gz
的文件。然后,要恢复,您可以使用:

gunzip -c mybackup.sql.gz | psql -U postgres
另外,我建议您避免使用pgAdmin进行转储。并不是说它做不到,只是你不能将其自动化,你可以用同样的方法轻松地使用
pg_dumpall

pg_dumpall -U postgres -f mybackup.sql
您可以使用管道在不使用中间文件的情况下转储和压缩:

pg_dumpall -U postgres | gzip -c > mybackup.sql.gz

顺便说一句,我真的建议您避免使用
pg_dumpall
,并为每个数据库使用带有自定义格式的
pg_dumpall
,因为您已经得到了压缩的结果,而且后者更易于使用。但是对于小型数据库来说,
pg_dumpall
是可以的。

您可以在这里发布您真正使用的命令,因为问题可能出在这些命令上。。。说真的,只是在这里复制和粘贴…我添加了一些细节,并更改了压缩命令。恢复怎么样,你是怎么做的?pgAdmin之后,您是否压缩了结果?怎么做?问题中的相同命令。我使用
dump_all
进行备份,然后使用
zip-f mybackup
压缩结果,然后使用一个命令
sudo gunzip-c/home/ubuntu/Desktop/backupFile.zip | psql-U postgres
将其解压缩并还原到另一个数据库中。你有更好的方法吗?不,你没有!!!
zip-f mybackup
将如何生成名为
backupFile.zip的文件?无论如何,我想我猜到了你的问题,看看我的答案…非常感谢你的帮助@Shadin@MetheusOl我尝试了上面的所有建议,但仍然是一个错误
gzip:/users/srv postgresql/backup/bmipgsqld1-testdb-2016-05-31-23-00-05.psql.gz:权限被拒绝
@kjosh:您的问题是运行备份的用户在操作系统上的权限。如果你想在这方面得到更多帮助,我建议你提出一个新问题。
pg_dumpall -U postgres | gzip -c > mybackup.sql.gz