Joe*_*ton 71 postgresql backup performance restore
当我开始时,我使用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
Run Code Online (Sandbox Code Playgroud)
我觉得自己没有启发:恢复需要12个小时来创建数据库,这只是它的一小部分:
# select pg_size_pretty(pg_database_size('dbname'));
47 GB
Run Code Online (Sandbox Code Playgroud)
因为有预测这个数据库将是几TB,我现在需要考虑提高性能.
拜托,赐教.
Ant*_*sma 52
首先检查您是否从磁盘设置中获得了合理的IO性能.然后检查你是否适当调整了PostgreSQL的安装.特别是shared_buffers应该正确设置,maintenance_work_mem应该在恢复期间增加,full_page_writes应该在恢复期间关闭,恢复期间wal_buffers应该增加到16MB,在恢复期间checkpoint_segments应该增加到16个,你不应该有任何不合理的登录(如记录每个执行的语句)auto_vacuum应该在恢复期间禁用.
如果你在8.4上也尝试并行恢复,pg_restore的--jobs选项.
Yan*_*saf 15
PG_DUMP | 始终使用带-j选项的格式目录
time pg_dump -j 8 -Fd -f /tmp/newout.dir fsdcm_external
Run Code Online (Sandbox Code Playgroud)
PG_RESTORE | 始终使用带格式目录的postgres.conf调优使用-j选项
work_mem = 32MB
shared_buffers = 4GB
maintenance_work_mem = 2GB
full_page_writes = off
autovacuum = off
wal_buffers = -1
time pg_restore -j 8 --format=d -C -d postgres /tmp/newout.dir/`
Run Code Online (Sandbox Code Playgroud)
有关更多信息
https://github.com/YanarAssaf/PostgreSQL/wiki/Improve-pg-dump%7Crestore
Mat*_*ood 14
两个问题/想法:
通过指定-Fc,pg_dump输出已经被压缩.压缩不是最大的,所以你可以通过使用"gzip -9"找到一些空间节省,但我打赌它不足以保证额外的时间(和I/O)使用压缩和解压缩-Fc版本的备份.
如果您使用的是PostgreSQL 8.4.x,则可以使用新的pg_restore命令行选项"-j n"来加速从-Fc备份的还原,其中n =用于还原的并行连接数.这将允许pg_restore加载多个表的数据或同时生成多个索引.
Tom*_*zky 10
我假设您需要备份,而不是数据库的主要升级.
对于大型数据库的备份,您应该设置连续存档而不是pg_dump.
例如,每天使用
psql template1 -c "select pg_start_backup('`date +%F-%T``')进行基本备份"
rsync -a --delete/var/lib/pgsql/data// var/backups/pgsql/base/
psql template1 - c"选择pg_stop_backup()"`
恢复就像恢复数据库和WAL日志一样简单,这些日志的pg_start_backup时间不早于备份位置和启动Postgres的时间.它会快得多.
zcat dumpfile.gz | pg_restore -d db_name
Run Code Online (Sandbox Code Playgroud)
删除未压缩数据到磁盘的完整写入,这是当前的瓶颈.
| 归档时间: |
|
| 查看次数: |
50133 次 |
| 最近记录: |