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可以移除,避免下次数据重启,数据再次恢复到该还原点
总结
备份和恢复是数据库管理中非常重要的工作,日常运维中,我们需要根据需要进行相关策略的备份,并且周期性地进行恢复测试,保证数据的安全。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对七叶笔记的支持。