2015-05-21 48 views
0

我用pg_dump来备份一个数据库,结果sql文件小于2MB。 我查了原始数据库的大小,它超过30 MB,我认为出了问题,所以我执行sql来恢复其他地方的数据库,结果证明备份实际上是OK的。当生成备份SQL文件时,大量的额外文本如'INSERT INTO ...'应使SQL文件大于原始数据。与原始数据库大小相比,为什么SQL转储文件大小如此之小?

我在这里错过了什么?

+3

指标不包括在转储,我会想象 – ErikEJ

+1

索引,元数据,能够更新会导致旧版本留到他们真空... –

回答

2

这非常依赖于您的数据库模式。当你做一些严肃的索引时,这些索引将占据最多的空间。他们没有备份。当然,您的主键列已经自动编入索引。

1

有几种postgres备份格式。一种是纯文本格式(文本文件中的CREATECOPY语句)。其他格式使用紧凑的二进制数据表示与可配置的压缩。

检查您的数据库转储格式。二进制转储格式的转储大小很小是正常的。

您可以找到有关细节这里所有转储格式:http://www.postgresql.org/docs/current/static/app-pgdump.html

相关问题