postgresql 物理备份 tar 命令
pgsql 物理备份主要就是使用tar拷贝打包文件和归档日志。因为tar是单进程操作,所以适用不太大的数据库备份。如果数据库比较大,就需要用pigz工具。
pg_start_backup
select pg_start_backup('20170922');
tar
tar -Pzcvf /var/lib/pgsql/pg96_20170922.tar.gz /var/lib/pgsql/9.6/
pg_stop_backup
select pg_stop_backup();
如果没有开启归档日志()的话,会收到如下提示信息
NOTICE: WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup
关于 tar 有很多选项可以选择,比如
备份成一个文件
tar -Pzcvf /mnt/tar_pg_var_pg_tbs.tar.gz /pg_var/ /pg_tbs/
tar -Pzxvf /mnt/tar_pg_var_pg_tbs.tar.gz
备份成多个文件,用到管道操作及 split命令
tar -Pzcvf - /pg_var/ /pg_tbs/ |split --bytes=20000 - /mnt/tar_pg_var_pg_tbs.tar.gz.
cat /mnt/tar_pg_var_pg_tbs.tar.gz.a* | tar -zxv
备份成多个文件,并排除某些文件
tar --exclude=/var/lib/postgresql/9.1/main/postmaster.pid --exclude=/var/lib/postgresql/9.1/main/pg_xlog -Pzcvf - /pg_var/ /pg_tbs/ |split --bytes=20000 - /mnt/tar_pg_var_pg_tbs.tar.gz.