恢复会先根据用户输入的命令,从备份的目的地将全量备份恢复回来。之后,再将增量备份恢复到全量备份上面。最后,应用备份出去的事务日志。
说明
本节中的操作需要使用 root 用户在 sys 租户上执行。
执行以下语句,停止日志备份。
说明
由于当前版本暂不支持日志备份在集群上发起恢复,如果发起恢复,则会导致日志备份断流,故建议在执行恢复前先停止日志备份。
创建 Unit(资源单元)。
示例如下:
创建 Resource Pool(资源池)。
示例如下:
obclient> CREATE RESOURCE POOL restore_pool unit = 'box_16c96g', unit_num = 1, zone_list = ('z1','z2','z3');
执行以下语句,设置加密信息。
说明
如果未加密或恢复时可以访问原来的 KMS,则跳过本步骤。
obclient> SET @kms_encrypt_info = '<加密string>';
其中,
<加密string>
为EXTERNAL_KMS_INFO
的值,EXTERNAL_KMS_INFO
为租户级配置项。打开恢复配置。
检查
restore_concurrency
是否为0
,如果为0
,则需要执行以下语句:obclient> ALTER SYSTEM SET restore_concurrency = 50;
(可选)修改恢复的等待时间。
默认恢复等待时间
_restore_idle_time
为 1 分钟,整个恢复期间会有 3 次等待,即 3 分钟的等待时间。对于测试恢复性能的场景,为了减少恢复的空闲时间,您可以执行以下语句将等待时间调整为10s
。obclient> ALTER SYSTEM SET _restore_idle_time = '10s';
根据现场需要,设置恢复的密码。
只有在备份时添加了密码的场景下才需要设置恢复的密码。同时如果全量备份+增量备份设置的密码不一样,则需要输入多个密码,密码之间使用逗号分隔。示例如下:
obclient> SET DECRYPTION IDENTIFIED BY 'password1','password2';
执行以下语句,开始执行恢复任务。
部分参数说明如下表所示。
恢复示例:
NFS
obclient> ALTER SYSTEM RESTORE restored_trade FROM trade at 'file:///data/nfs/backup' until '2020-05-21 09:39:54.071670' with 'backup_cluster_name=ob20daily.backup&backup_cluster_id=1&pool_list=restore_pool;
OSS
obclient> ALTER SYSTEM RESTORE restored_trade FROM trade at 'oss://antsys-oceanbasebackup/backup_rd/?host=cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com&access_id=xxx&access_key=xxx' until ' 2020-03-23 08:59:45' with 'backup_cluster_name=ob20daily.backup&backup_cluster_id=1&pool_list=restore_pool';
腾讯云 COS
obclient> ALTER SYSTEM RESTORE restored_trade from trade at 'cos://backup-1304745170/backup_rd/20210127?host=cos.ap-nanjing.myqcloud.com&access_id=xxx&access_key=xxx&appid=xxx' until ' 2020-03-23 08:59:45' with 'backup_cluster_name=ob20daily.backup&backup_cluster_id=1&pool_list=restore_pool';
执行以下语句,查看恢复进度。
查看系统表 Root Table:
其中,
is_restore
的取值含义如下:0:表示正常副本
1:表示逻辑恢复的副本
2:表示物理恢复需要恢复基线的副本
3:表示物理恢复需要恢复转储的副本
4:物理恢复需要恢复 clog 的副本
5:物理恢复需要转储的副本
6:物理恢复等待所有副本转储完成的副本
7:物理恢复设置 member list 的副本
role
的取值含义如下:2:表示 Follower
查看用户表 Meta Table:
obclient> SELECT svr_ip,role, is_restore, COUNT(*) FROM __all_virtual_meta_table AS a, (SELECT value FROM __all_restore_info WHERE name='tenant_id') AS b WHERE a.tenant_id=b.value GROUP BY role, is_restore, svr_ip ORDER BY svr_ip, is_restore;
或者
obclient> SELECT svr_ip ,is_restore, COUNT(*) FROM __all_virtual_partition_store_info WHERE tenant_id>1002 group by svr_ip,is_restore order by svr_ip, is_restore;
执行以下语句,查看恢复结果。
obclient> SELECT * FROM __all_restore_info;
obclient> SELECT * FROM __all_restore_history;
通过 OCP 进行恢复
您也可以在 OCP 上对已备份的集群发起恢复操作。
说明
不同 OCP 版本的操作界面可能不同,本节以 OCP V2.5.0 版本为例提供操作指导,OCP 其他版本的操作请参考对应版本的《OCP 用户指南》文档。
登录 OCP。
在左侧导航栏上,单击 备份恢复 > 恢复。
在页面右上角单击 发起恢复。
设置存储配置。
存储配置相关说明如下表所示。
配置
描述
存储类型
支持 OSS 和 File 两种类型
存储目录
存储目录:
存储类型 为 OSS 时,示例如下:
存储类型 为 File 时,示例如下:
访问域名、访问用户、访问秘钥
如果选择的 存储类型 为 OSS ,则需要输入访问域名、访问用户和访问密钥后,然后单击 测试,确认可访问。
如果已经有可用的配置,可以直接在 存储配置 区域的右上角单击 选择已有配置,并选择对应的配置后,系统会自动解析存储配置。
选择 恢复源与时间。
在列表中选择 源集群**、**源租户 和 恢复的时间点。
选择恢复的目标租户。
在列表中选择运行状态的集群,并在 租户名称 文本框中输入新的租户名称。