刚开始的时候,我使用了默认的纯文本格式pg_dump
。可我还不够明智。
通过研究,我发现使用pg_dump -Fc | gzip -9 -c > dumpfile.gz
可以节省时间和文件大小。我恍然大悟。
当需要重新创建数据库时,
# create tablespace dbname location '/SAN/dbname';
# create database dbname tablespace dbname;
# alter database dbname set temp_tablespaces = dbname;
% gunzip dumpfile.gz # to evaluate restore time without a piped uncompression
% pg_restore -d dbname dumpfile # into a new, empty database defined above
我感觉不得要领:恢复过程花了12个小时来创建数据库,而这只是它将来的一小部分。
# select pg_size_pretty(pg_database_size('dbname'));
47 GB
因为预计这个数据库将会有几个 TB 的数据量,所以我现在需要考虑提高性能。
请给我一点启示。
shared_buffers
的文档,可能会有所帮助。 - Darragh Enright