PgSQL备份

        SQL转储。

        这里我们用到的工具是pg_dump和pg_dumpall。

        这种方式可以在数据库正在使用的时候进行完整一致的备份,并不阻塞其它用户对数据库的访问。它会产生一个脚本文件,里面包含备份开始时,已创建的各种数据库对象的SQL语句和每个表中的数据。可以使用数据库提供的工具pg_dumpall和pg_dump来进行备份。pg_dump只备份数据库集群中的某个数据库的数据,它不会导出角色和表空间相关的信息,因为这些信息是整个数据库集群共用的,不属于某个单独的数据库。pg_dumpall,对集簇中的每个数据库调用pg_dump来完成该工作,还会还转储对所有数据库公用的全局对象(pg_dump不保存这些对象)。 目前这包括适数据库用户和组、表空间以及适合所有数据库的访问权限等属性。

        例如,在我的计算机上,可使用如下命令对名为dbname的数据库进行备份:

        pg_dump  –h 127.0.0.1  -p  5432  -U  postgres -c  –f  dbname.sql  dbname

        使用如下命令可对全部pg数据库进行备份。

        pg_dumpall –h 127.0.0.1 –p 5432 -U postgres –c –f db_bak.sql

        恢复方式很简单。执行恢复命令即可:

        psql –h 127.0.0.1 -p 5432 -U postgres –f db_bak.sql

       压缩备份的差别很大。不压缩备份出来后有1.1Gb,压缩后大约100Mb

 
       备份成压缩文件:-Fc
       pg_dump -h localhost -p 6543 -Usa -d db_sqlfx -Fc -f /opt/thun/20180319.bak
 
      自定义回复文件:pg_restore
     pg_restore -h localhost -p 6543 -Usa -d db_sqlfx -f /opt/thun/20180319.bak1
 
     多线程还原: -j
     PostgreSQL支持以下两种数据恢复方法:
    1、使用psql恢复pg_dump或pg_dumpall工具生成的SQL文本格式的数据备份。
    2、使用pg_restore工具来恢复由pg_dump工具生成的自定义压缩格式、TAR包格式或者目录格式备份。



参考:https://blog.csdn.net/international24/article/details/82689136

原文地址:https://www.cnblogs.com/kcxg/p/10906220.html