备份恢复是 OceanBase 数据库高可用特性的核心组件,主要用于保障数据的安全,包括预防存储介质损坏和用户的错误操作等。如果存储介质损坏或者用户误操作而导致了数据丢失,可以通过恢复的方式恢复用户的数据。
概述
备份恢复是 OceanBase 数据库高可用特性的核心组件,主要用于保障数据的安全,包括预防存储介质损坏和用户的错误操作等。如果存储介质损坏或者用户误操作而导致了数据丢失,可以通过恢复的方式恢复用户的数据。
OceanBase 4.0.0 数据库支持 OSS、NFS 两种备份介质,提供了备份、恢复、清理三大功能。
OceanBase 数据库支持租户级别的物理备份。物理备份由数据备份、日志归档两种数据组成,故物理备份由日志归档和数据备份两个功能组合而成:
日志归档是指日志数据的自动归档功能,OBServer 会定期将日志数据归档到指定的备份路径。这个动作是全自动的,不需要外部定期触发。
数据备份指的是备份数据的功能,该功能分为全量备份和增量备份两种:
全量备份是指备份所有的宏块。
增量备份是指备份上一次备份以后新增和修改过的宏块。
OceanBase 数据库支持租户级别的恢复,恢复是基于已有数据的备份重建新租户的过程。用户只需要一个 alter system restore tenant 命令,就可以完成整个恢复过程。恢复过程包括租户系统表和用户表的 Restore 和 Recover 过程。Restore 是将恢复需要的基线数据恢复到目标租户的 OBServer,Recover 是将基线对应的日志恢复到对应的 OBServer。
物理备份
当用户用系统租户登录到备份集群以后,需要先用 SQL 发起日志归档,等日志归档发起完成启动阶段以后,才可以发起数据备份。
日志归档是定期备份到备份目的端的,只需要用户发起一次 alter system archivelog,日志备份就会在后台持续进行。日志归档是由每个日志流的 Leader 负责定期将该日志流的日志归档到备份介质指定的路径,RS(RootService)负责定期统计日志归档的进度,并更新到内部表。
数据备份是需要用户触发的,比较常见的场景是周六触发一次全量备份,周二和周四触发一次增量备份。当用户发起数据备份请求时,该请求会首先被转发到 RS 所在的节点上;RS 会根据当前的租户和租户包含的日志流生成备份数据的任务,然后将备份任务分发到 OBServer 上并行地执行备份任务;OBServer 负责备份日志流的元信息和宏块到指定的备份目录,宏块以日志流为单位进行管理。
物理恢复
对于用户可见的流程主要有以下几步:
在目的集群上通过
CREATE RESOURCE POOL命令建立恢复租户需要的资源池。通过
ALTER SYSTEM RESTORE TENANT命令调度租户恢复任务。对于备份恢复来说,
RESTORE TENANT命令的内部流程如下:创建恢复用的租户。
创建恢复的 Tablets。
恢复系统 Tablets。
并发的恢复 Clog 和用户 Tablets 中的转储数据。
恢复用户用户 Tablets 的基线数据。
恢复扫尾工作。
通过
ALTER SYSTEM ACTIVATE STANDBY TENANT tenant_name命令激活恢复的租户。




