目录
基础备份与时间线都是为了时间点恢复。
基础备份的目的是备份当前的数据库集簇的快照,结合归档日志一起可以恢复至任意的时间点。
在恢复时,从backup_label文件中,获取检查点位置,在归档日志中读取检查点,从检查点中获取重做点,并从重做点开始重放日志。
当pg启动时,如果数据库集簇中存在recovery.conf文件和backup_label文件时,进入恢复模式,与常规恢复模式的区别是:1.时间点恢复从archive_command中设置的归档目录中获取归档日志进行恢复;2.检查点位置从backup_label中获取。
当重放的xlog日志中的时间戳超过目标时间戳时,则时间点恢复完成。并在pg_wal目录与归档目录下生成时间线历史文件。
pg使用不同的时间线来区分原始数据库与恢复生成的数据库(就像word异常关闭,会生成多个版本的word让你选)。
第九章中的WAL段文件名的前8位就是该WAL所属的时间线标识。
时间线历史文件至少包含一行,该行包括:原时间线标识(本时间线标识体现在文件名上)、发生WAL段切换的LSN、恢复目标等。对于多次恢复,会生成多个时间线历史文件,尽管后面的文件包含了前面文件中的数据。
在跨时间线进行恢复时,系统会依据不同的时间线历史文件,读取各条时间线上发生WAL段切换的LSN到恢复目标之间的合适的归档日志中读取XLOG并重放。如下: