postgresql数据库备份恢复

网上已经有很多文章了,但是自己操作发现了“呵呵”。

这里只是在Windows上面使用数据库自带备份工具。

postgresql备份恢复

1.运维方式备份

  (1)停止数据库,可以拷贝数据库文件。

  2.逻辑备份

   (1)pg_basebackup.exe

             这是需要启动归档的方式备份,会及时增量备份很及时,恢复也快。

            缺点:需要提前修改数据库位归档模式。备份时还得手工操作,将备份的文件拷贝到合适位置,还得修改数据库配置。

     也就是你必须是专门的数据库人员或者运维人员,负责维护数据。

  具体操作就不写了,按照官方文档来吧。

(2)pg_dumpall pg_dump

   这2个是可以远程备份的。具体参数就不介绍了,官方文档有的。

  2个区别是pg_dumpall 备份所有数据库,和你连接哪个数据库没有关系;pg_dump是备份单个数据库,要么设置参数,要么就是连接的数据库。

其实pg_dumpall就是启动的pg_dump,pg_dumpall发现有多少个数据库就调用多少次。

由于2个工具看单独使用,也就是可以通过编程控制备份,后面再说。

缺点:(1)慢。

            (2)不能增量,每次都是全部备份,因此很慢

应用开发

根据上面说的,我们有专门维护人员还好,如果没有,只是一般小项目,要求我们应用程序中做备份恢复功能怎么办呢?

只要第二种了。

这里的问题就一个,没有增量备份,每次全部备份,会有数据备份不全,丢失数据。

就目前看,一般没有运维的小项目,可以适当损失数据。这种才可以在应用上开发备份。

基于目前的情况和了解的东西。可以选择pg_dumpall备份数据库结构,不备份数据。pg_dump针对数据库备份数据。

定期备份或者根据需要立即备份。

另外,这几个程序都可以从安装路径下拷贝出来单独使用。

他们依赖的几个库也都在路径下。

pg_dumpall备份,用psql恢复。pg_dump备份,用pg_restore恢复。

我整理了一个测试样例。采用的是二进制目录备份,不是文本(SQL)备份。大家需要调整自己查阅文档参数。

优势是自动压缩并且并行备份。劣势是看不懂不是SQL.

需要注意的是,备份恢复时,会删除所有数据库内容,包括数据库,全部重新生成。

官网文档说不能备份用户,没有测试。

为了测试,我全部拷贝了,并且写了bat文件,全部打包了。

地址:链接: https://pan.baidu.com/s/1L_3UUcotRgtEla-PDYgXyA 提取码: a635

 

 

 

posted @ 2020-08-08 22:06  IT苦行僧  阅读(952)  评论(0编辑  收藏  举报