PolarDB是基于共享存储的存算分离架构,因此PolarDB的备份恢复和PostgreSQL存在部分差异。本文将指导您如何对PolarDB做备份恢复,搭建只读节点,搭建Standby实例等:
• PolarDB备份恢复原理
• PolarDB的目录结构
• polar_basebackup备份工具
• PolarDB搭建RO
• PolarDB搭建Standby
• PolarDB按时间点恢复
备份恢复原理
PolarDB的备份恢复原理整体上和PostgreSQL几乎一致,总结为以下几步:
• 执行pg_start_backup命令
• 使用各种方式对数据库进行复制
• 执行pg_stop_backup命令
进行备份的更简单方法是使用polar_basebackup,但它其实是在内部发出这些低级命令,并且支持使用网络将文件发送到远端。
• pg_start_backup:准备进行基本备份。恢复过程从REDO点开始,因此pg_start_backup必须执行检查点以在开始进行基本备份时显式创建REDO点。此外,其检查点的检查点位置必须保存在pg_control以外的文件中,因为在备份期间可能会多次执行常规检查点。因此pg_start_backup执行以下四个操作:
。 强制进入整页写模式。
。 切换到当前的WAL段文件。
。 做检查点。
。 创建一个backup_label文件——该文件在基础目录的顶层创建,包含关于基础备份本身的基本信息,例如该检查点的检查点位置。第三和第四个操作是这个命令的核心;执行第一和第二操作以更可靠地恢复数据库集群。
• pg_stop_backup:执行以下五个操作来完成备份。
。 如果已被pg_start_backup强制更改,则重置为非整页写入模式。
。 写一条备份端的XLOG记录。
。 切换WAL段文件。
。 创建备份历史文件——该文件包含backup_label文件的内容和pg_stop_backup已执行的时间戳。
。 删除backup_label文件–从基本备份恢复需要backup_label文件,一旦复制,在原始数据库集群中就不需要了。
目录结构
如上所述,PolarDB备份过程总体可以概括为三步,其中第二步是使用各种方式对数据库进行复制:
•手动copy
•使用网络工具传输
•基于存储进行打快照。
因此,这里介绍一下PolarDB数据目录结构,以便于进一步理解备份恢复。
如上图,PolarDB是基于共享存储的,所以PolarDB在物理上有两个重要的数据目录,分别是本地存储目录和共享存储目录。
接下篇:https://developer.aliyun.com/article/1223084?groupCode=polardbforpg