备份恢复是 OceanBase 数据库高可用特性的核心组件,主要用于保障数据的安全,包括预防存储介质损坏和用户的错误操作等。如果存储介质损坏或者用户误操作而导致了数据丢失,可以通过恢复的方式恢复用户的数据。
备份组件架构
OCP 支持备份配置,配置完成后您可以查看基线备份历史、增量备份历史等功能,同时也支持支持租户备份状态查询。
备份服务的组件架构如下图所示。其中:
OceanBase 集群是需要被备份的源数据库。
MetaDB 为第三方元数据库,含有备份恢复的参数表配置以及控制备份任务表。
Agent 作为备份工具,是一个常驻进程,它通过每隔一段时间查询元数据库 MetaDB 中有无备份任务来控制整个基线数据和增量数据备份的发起或取消,也会随着任务的推进更新状态。
OSS 或基于NFS 的文件系统是备份的存储介质。
Agent 从源数据库拉取数据后会写入存储介质,故存储介质中含有恢复数据库到某一个时间点的所有数据。
恢复组件架构
恢复是备份的逆过程,当故障发生后您可以通过 OCP 将当前数据恢复至指定版本。
恢复服务的组件架构如下图所示。其中:
Oceanbase 集群是待恢复的集群。
MetaDB 为第三方元数据库,备份和恢复所使用的元数据库可以部署在同一个 MetaDB。
Agent 作为恢复工具,是一个常驻进程,每隔一段时间查询元数据库 MetaDB 中的控制表。它负责调度整个恢复任务的发起,也会随着任务的推进更新任务状态。
OSS 或基于 NFS 的文件系统是备份的存储介质,上面含有恢复集群所需要的所有数据,包括基线数据和增量数据。
使用限制
备份恢复功能的使用限制如下:
不支持 OUTLINE 恢复。
不支持系统租户或内部表恢复。
不支持 Unit、Resource Pool、Tenant 等语句的备份恢复。
未进回收站的删除操作无法备份。
恢复的时候无法恢复 liboblog 备份落后时间内的数据。
增量逻辑备份只保证最终一致性。
恢复时 DataBase、Table 的 Locality 不生效。
增量备份不支持比较大的事务,如果事务过大可能导致备份内存爆。
删除租户需要合并一次才能备份基线。
一次合并只允许一次基线备份。