postgresql 物理备份 tar + pigz

普通的tar命令是单进程执行,备份稍大些目录时就会感觉力不从心。linux 推出了并行版本的tar,那就是 pigz。备份速度非常快,使用一次,你就离不了它了。

安装pigz

yum install pigz

pigz备份

tar --exclude=/var/lib/postgresql/9.1/main/postmaster.pid --exclude=/var/lib/postgresql/9.1/main/pg_xlog -Pcf - /var/lib/postgresql/9.1/main/ /pg_tbs/ |pigz -p 8 > /backup/20180117_base.tgz

解压

tar -Pxvf /backup/20180117_base.tgz
或者
tar -I pigz -Pxvf /backup/20180117_base.tgz -C /tmp
或者
unpigz < /backup/20180117_base.tgz | tar -PxvC /tmp/

pigz -p 8 代表使用8个进程,也可以开16个。
这个命令在短时间内是高cpu、高io的操作。在生产环境中合理调整并发进程。

如果库比较大时,压缩后的文件会比较大,这时需要 split 来分割一下

压缩分割,一次搞定

tar --exclude=/var/lib/postgresql/9.1/main/postmaster.pid --exclude=/var/lib/postgresql/9.1/main/pg_xlog -Pcf - /var/lib/postgresql/9.1/main/ /pg_tbs/ |pigz -p 8  |split --bytes=10G - /backup/20180117_base.tgz.

合并解压,一次搞定

cat /backup/20180117_base.tgz.a* | tar -Pxv -I pigz
posted @ 2018-01-17 16:24  peiybpeiyb  阅读(363)  评论(0编辑  收藏  举报