首批通过分布式安全可靠测评,为关键业务系统打造
执行全量恢复
更新时间:2026-06-16 14:01:24
本节主要介绍如何通过命令的方式进行租户级物理恢复,目前 OceanBase 数据库支持租户级别的基于时间点的全量恢复。
OceanBase 数据库的恢复支持在同集群内恢复,也支持在不同的集群内恢复。
恢复会先根据用户输入的命令,从备份目的端将需要的宏块数据从对应的全量备份和增量备份中恢复到目标租户,并同步拉取和回放事务日志。
前提条件
执行全量恢复前,请确认已完成恢复前准备,具体操作请参见 恢复前准备。
执行全量恢复
使用
root用户登录数据库的sys租户。(可选)执行以下语句,设置备份的恢复密码。
仅在数据备份时添加了密码的场景下才需要设置备份的恢复密码。
obclient> SET DECRYPTION IDENTIFIED BY 'password';其中,
password需要替换为备份时添加的密码。如果全量备份和增量备份设置的密码不一样,则需要输入多个密码,密码之间使用英文逗号分隔(全量备份密码放在前面,增量备份密码放在后面)。示例:
obclient> SET DECRYPTION IDENTIFIED BY '******'; obclient> SET DECRYPTION IDENTIFIED BY '******','******';设置配置项
restore_concurrency。集群级配置项
restore_concurrency用于控制恢复是否允许进行。默认值为0,取值范围为 [0, 512],值设置为大于0即可,该配置项将在 V4.1 版本后废弃不再使用。有关配置项restore_concurrency的更多介绍,请参见 restore_concurrency。obclient [(none)]> ALTER SYSTEM SET restore_concurrency = 10;执行以下语句,开始执行恢复任务。
语句如下:
恢复到指定时间戳
obclient> ALTER SYSTEM RESTORE dest_tenant_name FROM uri UNTIL TIME=timestamp WITH restore_option [DESCRIPTION description];恢复到指定 SCN
obclient> ALTER SYSTEM RESTORE dest_tenant_name FROM uri UNTIL SCN=scn WITH restore_option [DESCRIPTION description];恢复到最新位点
obclient> ALTER SYSTEM RESTORE dest_tenant_name FROM uri WITH restore_option [DESCRIPTION description];
语句中:
uri需要分别指定数据备份路径和日志归档路径;UNTIL [TIME|SCN]指用户指定的恢复终点,恢复到该位点为止,且包括该位点。当指定恢复到
TIME或SCN时, 必须以=来连接指定的值。restore_option支持指定pool_list、locality、primary_zone、kms_encrypt, 其中pool_list为必选项, 其余为可选项。
语句中各参数的详细说明请参见 恢复参数。
恢复示例如下:
NFS
从数据备份路径
file:///data/nfs/backup/data与日志归档路径file:///data/nfs/backup/archive恢复租户mysql到指定时间戳2020-06-01 00:00:00, 指定资源池为restore_poolobclient> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' UNTIL TIME='2020-06-01 00:00:00' WITH 'pool_list=restore_pool';从数据备份路径
file:///data/nfs/backup/data与日志归档路径file:///data/nfs/backup/archive恢复租户mysql恢复到当前最新的归档位点, 指定资源池为restore_poolobclient> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' WITH 'pool_list=restore_pool';从数据备份路径
file:///data/nfs/backup/data与日志归档路径file:///data/nfs/backup/archive恢复租户mysql到指定 scn1658285759724047000, 指定资源池为restore_poolobclient> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' UNTIL SCN=1658285759724047000 WITH 'pool_list=restore_pool';从数据备份路径
file:///data/nfs/backup/data与日志归档路径file:///data/nfs/backup/archive恢复租户mysql到指定时间戳2020-06-01 00:00:00, 指定资源池为restore_pool, 副本 Locality 为F@z1,F@z2,F@z3。obclient> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' UNTIL TIME='2020-06-01 00:00:00' WITH 'pool_list=restore_pool&locality=F@z1,F@z2,F@z3';从数据备份路径
file:///data/nfs/backup/data与日志归档路径file:///data/nfs/backup/archive恢复租户mysql到指定时间戳2020-06-01 00:00:00, 指定资源池为restore_pool, 副本 Locality 为F@z1,F@z2,F@z3, 并指定primary_zone为z1。obclient> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' UNTIL TIME='2020-06-01 00:00:00' WITH 'pool_list=restore_pool&locality=F@z1,F@z2,F@z3&primary_zone=z1';
OSS
除
url参数有所变更外, 其余参数使用与NFS一致。从 OSS 备份路径
oss://oceanbase-test-bucket/backup/data/?host=xxx.aliyun-inc.com&access_id=xxx&access_key=xxx与 OSS 日志归档路径oss://oceanbase-test-bucket/backup/archive/?host=xxx.aliyun-inc.com&access_id=xxx&access_key=xxx恢复租户mysql到指定时间戳2020-06-01 00:00:00, 指定资源池为restore_pool。obclient> ALTER SYSTEM RESTORE mysql FROM 'oss://oceanbase-test-bucket/backup/data/?host=xxx.aliyun-inc.com&access_id=xxx&access_key=xxx,oss://oceanbase-test-bucket/backup/archive/?host=xxx.aliyun-inc.com&access_id=xxx&access_key=xxx' UNTIL TIME='2020-06-01 00:00:00' WITH 'pool_list=restore_pool';
(可选)在待恢复租户对应的 Meta 租户创建成功后,如果需要加速恢复,可以通过配置项
ha_low_thread_score配置恢复任务的后台调度权重。通过
oceanbase.DBA_OB_TENANTS视图查看待恢复租户对应的 Meta 租户是否创建成功。obclient [(none)]> SELECT * FROM oceanbase.DBA_OB_TENANTS;查询结果中,
TENANT_NAME列中以META$开头的租户即为 Meta 租户,当 Meta 租户的状态为TENANT_STATUS_NORMAL时,则表示 Meta 租户创建成功。更多视图
oceanbase.DBA_OB_TENANTS的字段说明信息请参见 oceanbase.DBA_OB_TENANTS。设置配置项
ha_low_thread_score。租户级配置项
ha_low_thread_score用于设置高可用低优先级线程的当前工作线程数。默认值为0,取值范围为 [0, 100],建议修改为10。有关配置项ha_low_thread_score的更多介绍,请参见 ha_low_thread_score。obclient [(none)]> ALTER SYSTEM SET ha_low_thread_score =10 TENANT = mysql;
后续操作
发起恢复任务后,您可以通过视图查看恢复的进度和结果,具体操作请参见 查看恢复进度。