2013-10-08 54 views
4

我工作的PostgreSQL 8.4和我想要做备份和恢复(从Ubuntu的11.10到Ubuntu 12.4)PostgreSQL的 - 备份和恢复与分区数据库表

我想包括所有分区,集群,角色和东西。

我的命令: 备份:

dumb_all > filename 

压缩:

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的做备份,使用“备份服务器”选项。

backup

+1

你可以在这里发布你真正**使用的命令,因为问题可能存在他们......严重的是,只需复制并粘贴在这里... – MatheusOl

+0

我添加了一些细节,我改变了压缩命令 – Shadin

+1

如何恢复,你是怎么做的?在pgAdmin之后你压缩了结果?怎么样? – MatheusOl

回答

3

如果你没有使用zip压缩输出,那么你应该使用unzip不要解压,不gunzip,他们使用不同的格式/算法。

我建议你只使用gzipgunzip。例如,如果您生成一个名为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_dump自定义格式为每个数据库,因为你已经得到的结果压缩,更容易使用后者。但是pg_dumpall适用于小型数据库。

+0

非常感谢你的帮助! – Shadin

+0

@Shadin @MetheusOl我已经尝试了上面的所有建议,但仍然是一个错误。 'gzip:/users/srv-postgresql/backup/bmipgsqld1-testdb-2016-05-31-23-00-05.psql.gz:权限被拒绝# – kjosh

+0

@kjosh:您的问题是操作系统的权限您正在运行备份的用户。我建议创建一个新的问题,如果你想获得更多的帮助。 – MatheusOl