网上已经有很多文章了,但是自己操作发现了“呵呵”。
这里只是在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