database - PostgreSQL - 使用分区备份和恢复数据库表

标签 database postgresql backup dump

我正在使用 PostgreSQL 8.4,我想进行备份和恢复(从 Ubuntu 11.10 到 Ubuntu 12.4)

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

我的命令: 备份:

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

最佳答案

如果您确实使用了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 适用于小型数据库。

关于database - PostgreSQL - 使用分区备份和恢复数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19245632/

相关文章:

postgresql - Postgres JSON 数组包含给定的数组元素

iOS 应用程序首选项备份

node.js - 在 node.js 应用程序上保持数据库连接打开是一种好习惯吗?

java - 将 key 保存到 derby 数据库

sql - 如何在单个查询中执行具有不同参数的多个连接

mysql - 使用 taps 从 heroku 导出数据库时出现段错误

postgresql - 为什么 Docker 中的 pg_restore 段错误?

sql - 仅在备份成功时删除数据库

php - 存储大量用户数据的最佳方式

Moodle 上类(class)注册的 SQL 查询