暂无图片
暂无图片
13
暂无图片
暂无图片
暂无图片

OceannBase恢复架构

OceanBase 2022-11-09
422

恢复概述

OceanBase 数据库提供租户级别的恢复能力,支持微秒级别的恢复精度。

租户恢复保证了跨表、跨分区的全局一致性。

OceanBase 数据库的恢复主要包含下面几步:

  1. 恢复系统表的数据。

  2. 恢复系统表的日志。

  3. 修正系统表的数据。

  4. 恢复用户表的数据。

  5. 恢复用户表的日志。

对于单个分区来说,备份+恢复的流程和重启的流程比较类似,主要就是加载数据和应用日志。

恢复系统表的数据

RootService 根据数据备份的系统表的列表创建对应的分区,然后依次调度分区的 Leader 从备份的介质上拷贝分区的元信息、宏块数据。

恢复系统表的日志

日志恢复和重启后回放日志的流程比较类似,恢复的分区的 Leader 在完成数据恢复后,会主动从备份介质上拉取备份的分区级别的日志并保存到本地的 Clog 目录。Leader 将恢复的日志保存到本地的同时,Clog 回放的线程会同时开始回放数据到 MEMStore。等所有的 Clog 都恢复完成以后,一个分区的恢复就完成了。

修正系统表的数据

系统表恢复完成后,RootService 会进行系统表数据的修复:

  1. 清理未建完的索引表。

  2. 老版本的备份被恢复到新版本的集群上的兼容补偿:

    1. 补建新加的系统表

    2. 补偿跨版本的升级任务

恢复用户表

用户表的数据、日志的恢复流程和系统表类似,唯一的区别是创建分区的列表依赖的数据源不同。恢复用户表的时候,RootService 是从已经恢复的系统表中读取相关列表的。

恢复事务的一致性

OceanBase 数据库的物理备份恢复强依赖租户的 GTS 功能,GTS 保证了备份和恢复的数据是全局一致的。

逻辑恢复

V2.2.7 版本以后 OceanBase 数据库不再提供集群级别的逻辑备份恢复功能,提供了数据的逻辑备份的 OBDUMPER 工具和逻辑恢复的 OBLOADER 工具。该工具是 java 开发的客户端导入工具,提供了支持 SQL 或者 CSV 格式的数据导入,也支持导入的限流、断点恢复的能力。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论