OceanBase-OB备份异地恢复流程
OB备份异地恢复流程
——2023年5月9日
一、【白屏操作】
1、确定当前备份的OB版本:
2、新建备份目录授权(备份到本地目录为例):
mkdir /obbackup/
chown -R admin.admin /obbackup/
保证能解析成功:
3、点击“备份”,查询操作系统的目录结构:
4、拷贝租户层面数据文件和元数据文件:
[root@uatob3 data]# mkdir -p /obbackup/ob3231/**** /obbackup/ob3231
……
将 ob3231 目录下文件都拷贝异地相同目录下
5、在OCP页面上点击“恢复”:
问题1:用户想单个租户备份,单个租户还原,目前端解析不到 “源端的租户”?
解决:
- 除了 “目标端”目录和“源端”目录要保持一致,目录的权限 admin:admin
- 执行:show restore preview; 看执行恢复需要什么文件,拷贝这些文件后,还需要拷贝这两个文件才能识别到:
[root@ob incarnation_1]# pwd
/obbackup/ob3231/1676382015/incarnation_1
[root@ob incarnation_1]# ll
total 0
drwx------ 3 admin admin 18 May 9 11:24 1
drwx------ 4 admin admin 30 May 9 11:28 1001
drwx------ 3 admin admin 18 May 9 13:27 1002
drwx------ 2 admin admin 34 May 9 11:22 clog_info
drwx------ 2 admin admin 25 May 9 11:24 cluster_backup_piece_info_@versionset@
drwx------ 2 admin admin 25 May 9 13:09 cluster_backup_set_file_info_@versionset@
drwx------ 2 admin admin 25 May 9 15:08 cluster_clog_backup_info_@versionset@
drwx------ 2 admin admin 25 May 9 13:09 cluster_data_backup_info_@versionset@
drwx------ 2 admin admin 25 May 9 13:08 tenant_info_@versionset@
drwx------ 2 admin admin 25 May 9 13:54 tenant_name_info_@versionset@
二、【黑屏操作】
1、确定当前备份的OB版本:
2、备份:
2.1、配置备份备份的目的端
参考网址:https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000361447
配置项 backup_backup_dest 的设置方法与配置项 backup_dest 类似。
注意:
设置 backup_backup_dest 前,需确保 backup_dest 已设置。
backup_backup_dest 与 backup_dest 中不能设置为相同的备份地址。
2.2、设置备份目的端的示例如下:
obclient> ALTER SYSTEM SET backup_backup_dest='file:///data/nfs/backup_backup';
2.3、执行数据备份的备份:
obclient> ALTER SYSTEM BACKUP BACKUPSET ALL;
obclient> ALTER SYSTEM BACKUP BACKUPSET N;
3、恢复前准备:
参考网址:https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000361373
3.1、使用 root 用户登录数据库的 sys 租户。
使用sys租户的root用户登录目标恢复集群
mysql -hxx.xx.xx.xx -P2883 -uroot@sys#ob_restore -pxxxx
3.2、创建 Unit(资源单元)。
示例如下:
obclient> CREATE RESOURCE UNIT box_16c96g max_cpu 16, max_memory 103079215104, max_iops 10240, max_disk_size 53687091200, max_session_num 64, MIN_CPU=16, MIN_MEMORY=103079215104, MIN_IOPS=10240;
3.3、创建 Resource Pool(资源池)。
示例如下:
obclient> CREATE RESOURCE POOL restore_pool unit = 'box_16c96g', unit_num = 1, zone_list = ('z1','z2','z3');
如下图:
4、恢复:
4.1、调整系统恢复性能相关参数
ALTER SYSTEM SET restore_concurrency = 50;
ALTER SYSTEM SET _restore_idle_time = '10s';
4.2、发起恢复preview,此操作还未真正开始恢复
参考网址:https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000361375
alter system restore rcv_fnc_e from fnc_e at 'file:///ob_backup' until '2021-07-17 00:00:06.000000' with 'backup_cluster_name=dgbob2&backup_cluster_id=1&pool_list=pool_rcv_fnc_e_zone1_zco&locality=FULL@zone1&primary_zone=zone1' preview;
参数解释:
rcv_fnc_e 目标恢复租户名字
fnc_e 备份的源租户名字
file:///ob_backup 备份NFS路径
2021-07-17 00:00:06.000000 目标恢复时间,即需要恢复到哪个时间点的数据
backup_cluster_name 备份的集群名
backup_cluster_id 备份的集群ID
pool_list 恢复所需的资源池名称
如下图:
输出信息中包含此次恢复需要用的文件路径(backup_dest),下一步需要用到此信息。将需要的文件拷贝到目标端相同路径下,即可进行还原。
4.3、加载此次恢复需要用到的文件信息
alter system add restore source
'file:///ob_backup/dgbob2/1/incarnation_1/1005/data/backup_set_18_full_20210713';
alter system add restore source
'file:///ob_backup/dgbob2/1/incarnation_1/1005/data/backup_set_19_inc_20210715';
alter system add restore source 'file:///ob_backup/dgbob2/1/incarnation_1/1005/clog/3';
4.4、开始执行恢复
alter system restore rcv_fnc_e from fnc_e until '2021-07-17 00:00:06.000000' with 'backup_cluster_name=dgbob2&backup_cluster_id=1&pool_list=pool_rcv_fnc_e_zone1_zco&locality=FULL@zone1&primary_zone=zone1' ;
4.5、查看恢复进度
select * from cdb_ob_restore_progress;
select * from cdb_ob_restore_history;
select * from __all_restore_info;