10.基础备份与时间点恢复

目录

基础备份

时间点恢复

时间线


基础备份与时间线都是为了时间点恢复。

  1. 基础备份

基础备份的目的是备份当前的数据库集簇的快照,结合归档日志一起可以恢复至任意的时间点。

  1. 基础备份通过pg_start_backup命令开始为基础备份做准备,它会:
    1. 强制进行整页写入模式、
    2. 切换到当前的WAL段文件、
    3. 执行检查点,以便在制作基础备份的开始时刻显式创建一个重做点(那么后面就可以从该重做点开始,重放WAL归档日志,以恢复到该重做点之后的任意时间),该检查点的位置保存在非pg_control文件中。
    4. 新建backup_label文件,保存检查点位置、WAL开始位置(流复制用)、备份方法(如pg_start_backup)、备份来源(主/备库)、时间戳、开始时间线等。

在恢复时,从backup_label文件中,获取检查点位置,在归档日志中读取检查点,从检查点中获取重做点,并从重做点开始重放日志。

  1. 使用任意归档命令获取数据库集簇的快照,可以备份到远程机器上。
  2. 执行pg_stop_backup命令完成备份,该命令执行以下步骤:
    1. 关闭整页写入模式
    2. 写入一条备份结束的XLOG记录
    3. 切换WAL段文件
    4. 创建一个备份历史记录文件,将backup_label的内容复制进来,并加上当前的时间戳,删除原来的backup_label文件。
  3. 时间点恢复

当pg启动时,如果数据库集簇中存在recovery.conf文件和backup_label文件时,进入恢复模式,与常规恢复模式的区别是:1.时间点恢复从archive_command中设置的归档目录中获取归档日志进行恢复;2.检查点位置从backup_label中获取。

当重放的xlog日志中的时间戳超过目标时间戳时,则时间点恢复完成。并在pg_wal目录与归档目录下生成时间线历史文件。

  1. 时间线

pg使用不同的时间线来区分原始数据库与恢复生成的数据库(就像word异常关闭,会生成多个版本的word让你选)。

第九章中的WAL段文件名的前8位就是该WAL所属的时间线标识。

时间线历史文件至少包含一行,该行包括:原时间线标识(本时间线标识体现在文件名上)、发生WAL段切换的LSN、恢复目标等。对于多次恢复,会生成多个时间线历史文件,尽管后面的文件包含了前面文件中的数据。

在跨时间线进行恢复时,系统会依据不同的时间线历史文件,读取各条时间线上发生WAL段切换的LSN到恢复目标之间的合适的归档日志中读取XLOG并重放。如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值