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;