OceanBase-OB備份異地恢復流程

上帝_BayaiM發表於2024-08-26

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:使用者想單個租戶備份,單個租戶還原,目前端解析不到 “源端的租戶”?

解決:

  1. 除了 “目標端”目錄和“源端”目錄要保持一致,目錄的許可權 admin:admin

  1. 執行: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;



相關文章