【手摸手玩轉 OceanBase 175】如何執行執行全量恢復

13579NB232發表於2023-01-19

本節主要介紹如何透過命令的方式進行租戶級物理恢復,目前 OceanBase 資料庫支援租戶級別的基於時間點的全量恢復。

恢復會先根據使用者輸入的命令,從備份目的端將需要的宏塊資料從對應的全量備份和增量備份中恢復到目標租戶,並同步拉取和回放事務日誌。

前提條件

執行全量恢復前,請確認已完成恢復前準備,具體操作請參見  恢復前準備

執行全量恢復

  1. 使用  root 使用者登入資料庫的  sys 租戶。

  2. (可選)執行以下語句,設定備份的恢復密碼。

    僅在資料備份時新增了密碼的場景下才需要設定備份的恢復密碼。

    obclient> SET DECRYPTION IDENTIFIED BY 'password';

    其中, password 需要替換為備份時新增的密碼。如果全量備份和增量備份設定的密碼不一樣,則需要輸入多個密碼,密碼之間使用英文逗號分隔(全量備份密碼放在前面,增量備份密碼放在後面)。

    示例:

    obclient> SET DECRYPTION IDENTIFIED BY '******';
    obclient> SET DECRYPTION IDENTIFIED BY '******','******';
  3. 執行以下語句,開始執行恢復任務。

    語句如下:

    • 恢復到指定時間戳

      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_listlocalityprimary_zonekms_encrypt, 其中  pool_list 為必選項, 其餘為可選項。

    語句中各引數的詳細說明請參見  恢復引數

    恢復示例如下:

    • NFS

      • 從資料備份路徑  file:///data/nfs/backup/data 與日誌歸檔路徑  file:///data/nfs/backup/archive 恢復租戶  mysql 到指定時間戳  2022-06-1 00:00:00, 指定資源池為  restore_pool

        obclient> ALTER SYSTEM RESTORE mysql FROM 'file:///data/nfs/backup/data,file:///data/nfs/backup/archive' UNTIL TIME='2022-06-1 00:00:00' WITH 'pool_list=restore_pool';
      • 從資料備份路徑  file:///data/nfs/backup/data 與日誌歸檔路徑  file:///data/nfs/backup/archive 恢復租戶  mysql 恢復到當前最新的歸檔位點, 指定資源池為  restore_pool

        obclient> 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 到指定 scn  1658285759724047000, 指定資源池為  restore_pool

        obclient> 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 到指定時間戳  2022-06-1 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='2022-06-1 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 到指定時間戳  2022-06-1 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='2022-06-1 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 到指定時間戳  2022-06-1 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='2022-06-1 00:00:00' WITH 'pool_list=restore_pool';

    發起恢復任務後,您可以透過檢視檢視恢復的進度和結果,具體操作請參見  檢視恢復進度


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026124/viewspace-2932892/,如需轉載,請註明出處,否則將追究法律責任。

相關文章