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

OceanBase备份恢复

  1. OcenBase备份恢复简介

1.1 简介

OceanBase备份恢复功能有助于防止数据库因各种故障而造成数据丢失,降低灾难性数据丢失的风险,从而达到灾难恢复的目的。目前OceanBase备份恢复功能已经应用于内部业务包括支付,交易,会员等上百个集群,以及外部业务南京银行。
OceanBase内部数据按照存储方式,可以划分为基于MemTable格式的增量数据和基于SSTable格式的基线数据。基线数据是当前已合并落盘的数据之和,被切分为多个分片并复制多个副本,均匀的分散存储在各个结点的数据文件中;而增量数据是当前合并时间点以后的所有更新数据,一般会存储在MemTable 的内存表中,同时也会实例化为 Commit Log 文件的形式存放在硬盘上。因此,OceanBase 的数据备份分为基线数据备份和增量数据备份,具体而言是把某次合并的基线数据,以及该次合并后的增量数据均备份到到存储介质中(OSS 或者基于NFS的文件系统),其中OSS(Open Storage Service) 本身是阿里云提供的云存储服务。OceanBase数据恢复是选取某次合并作为恢复的起始点,从存储介质中获取待恢复数据,首先完成基线数据的恢复,然后将该次合并后的增量数据进行恢复。

1.2 特点

OceanBase 的备份恢复支持数据库上的任何操作,支持的数据包括用户权限、表定义、系统变量、用户信息、视图信息等逻辑数据以及所有的物理数据。
OceanBase 的备份恢复目前支持的最小粒度是租户,也就是说,可以按需只备份恢复某个租户而不是整个集群,从而增加了备份恢复的灵活性,节省了空间。支持集群、租户级别的恢复,支持在正常运行的集群上恢复指定租户数据。同时OceanBase 的备份恢复也可以恢复到任意时间点。
OceanBase 的备份恢复功能本身也是高可用,高容灾,高性能。这是因为不仅仅控制备份的元数据存储在第三方数据库,控制备份的进程AgentServer 也是主备进程同时开启以抢占的方式进行服务。如果主AgentServer 挂起,备AgentServer 会立马取代进行服务。得益于底层的全异步架构模型,多个AgentServer 能同时执行备份任务。

  1. 备份架构

图片
模块如下:

  1. OceanBase集群:待备份的源数据库。

  2. MetaDB:元数据库,用于备份恢复任务的控制和调度。同时为了元数据库的高可用,一般集成到OCP(OceanBase Cloud Platform)或者单独部署OceanBase集群。

  3. AgentServer:备份工具,是一个常驻进程,周期性查询元数据库MetaDB中的任务元信息,控制整个基线、增量数据备份的发起、取消、暂停、恢复。同时也会随着任务的推进更新备份任务的状态。

  4. 存储介质:可以为OSS或者基于NFS的文件系统,AgentServer从源数据库备份数据后写入到存储介质,存储介质中含有恢复数据库到某一个时间点的所有数据。

  5. 恢复架构

图片
模块如下:

  1. OceanBase集群:待恢复的目的数据库。

  2. MetaDB:元数据库。

  3. AgentRestore:恢复工具,是一个常驻进程,周期性查询元数据库MetaDB中的任务元信息,控制整个基线、增量数据恢复任务的发起、取消、暂停、恢复。同时也会随着任务的推进更新恢复任务的状态。

  4. 存储介质:含有恢复集群所需要的所有数据。

  5. 增量数据实时备份

下面重点介绍增量数据的实时备份。增量数据实时备份支持集群和租户级别,同时增量数据按照租户组织,每个租户包含一个数据流。

4.1 总体设计方案

主要分为两个模块:任务控制模块和增量数据备份模块。
任务控制模块:主要是控制增量备份任务的启动、暂停、恢复、删除、停止等,从而实现备份任务管控的目的;
增量数据备份:通过MetaDB获取增量任务的元信息,定位开始备份的起点,进而开始实时备份源端数据到存储介质。

图片

  1. OceanBase数据同步工具:负责从OceanBase集群抓取增量日志,然后进行日志解析、分布式事务解依赖,分布式事务组装、格式化等操作,进而生成有序的分布式事务数据。
  2. 数据获取: 获取有序的事务数据,同时管理各个租户的备份进度信息。
  3. 数据序列化: 序列化备份数据,同时基于租户分发备份数据, 保证每个租户一个数据流。
  4. 租户流管理:完成基于租户数据流的管理和备份。
  5. 压缩: 构造存储格式,进而压缩备份数据,提高存储介质的空间利用率。
  6. 异步上传: 数据的异步上传和回调。

4.2 增量数据组织方式

增量数据按照租户组织,每个租户包含一个数据流。每个租户的增量数据都有以下四种形式:

  1. 位点文件:每个备份租户会产生一个位点文件,记录该租户备份的初始时间戳以及备份进度等信息。

  2. 数据文件:记录具体的事务数据,由很多压缩块组成。每个压缩块经过解压以及解析后,可以得到具体的事务数据,包含insert, update, delete等数据。同时数据文件包括schema数据,schema备份采用逻辑备份方案,即只备份DDL操作。

  3. 数据元信息文件:每个数据文件都有一个数据元信息文件,记录该数据文件的元信息,包括事务时间戳范围,数据文件有效长度等。

  4. 索引文件:记录数据文件的索引信息,方便数据恢复快速定位需要恢复的数据文件,加快数据恢复速度。

  5. 总结

OceanBase备份恢复功能本身具有如下优势:

  1. 操作完备。OceanBase的备份恢复支持数据库上的任何操作,支持的数据包括用户权限、表定义、系统变量、用户信息、视图信息等逻辑数据以及所有的物理数据。
  2. 高度的灵活性。OceanBase的备份恢复目前支持的最小粒度是租户,可以按需只备份恢复某个租户而不是整个集群。
  3. 高可用性和高容灾。任务控制和调度的元数据本身具有高可用性,同时控制备份的进程AgentServer也是主备进程同时开启以抢占的方式进行服务。
  4. 高性能。底层的全异步架构模型,多个AgentServer 能同时执行备份任务,保证了OceanBase 的备份恢复功能的高性能。
  5. 高空间利用率:备份数据都进行了压缩,恢复的时候才进行实时解压和解析,有效的提高了空间利用率。
  6. 增量数据备份低延时,做到实时同步。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论