七叶笔记 » 数据库 » Postgresql备份和增量恢复方案

Postgresql备份和增量恢复方案

backups目录则可以用来存放基础备份

archive_wals目录自然用来存放归档了

接下来我们修改我们的postgresql.conf文件的相关设置

archive_command 参数的默认值是个空字符串,它的值可以是一条shell命令或者一个复杂的shell脚本。

在archive_command的shell命令或脚本中可以用 %p 表示将要归档的WAL文件的包含完整路径信息的文件名,用 %f 代表不包含路径信息的WAL文件的文件名。

修改wal_level和archive_mode参数都需要重新启动数据库才可以生效,修改archive_command不需要重启,只需要reload即可,例如:

创建基础备份

我们使用之前介绍过的pg_basebackup命令进行基础备份的创建, 基础备份很重要,我们的数据恢复不能没有它,建议我们根据相关业务策略,周期性生成我们的基础备份。

这样,我们就成功生成我们的基础数据备份了

设置还原点

一般我们需要根据重要事件发生时创建一个还原点,通过基础备份和归档恢复到事件发生之前的状态。

创建还原点的系统函数为:pg_create_restore_point,它的定义如下:

恢复到指定还原点

接下来,我们通过一个示例,让我们的数据还原到我们设置的还原点上

首先,我们创建一张测试表:

初始化一些测试数据作为基础数据,如下所示:

并且按照上文的方法创建一个基础备份。如果是测试,有一点需要注意,由于WAL文件是写满16MB才会进行归档,测试阶段可能写入会非常少,可以在执行完 基础备份之后,手动进行一次WAL切换。例如:

或者通过设置archive_timeout参数,在达到timeout阈值时强行切换到新的WAL段。

接下来,创建一个还原点,如下所示:

接下来我们对数据做一些变更, 我们删除test_restore的所有数据:

下面进行恢复到名称为“domac-1014”还原点的实验,如下所示:

停止数据库

移除旧的数据目录

修改 recovery.conf, 修改以下配置信息:

然后启动数据库进入恢复状态,观察日志,如下所示:

重启后,我们对test_restore表进行查询,看数据是否正常恢复:

可以看到数据已经恢复到指定的还原点:domac-1014。

这时,recovery.conf可以移除,避免下次数据重启,数据再次恢复到该还原点

总结

备份和恢复是数据库管理中非常重要的工作,日常运维中,我们需要根据需要进行相关策略的备份,并且周期性地进行恢复测试,保证数据的安全。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对七叶笔记的支持。

相关文章