【手摸手玩轉 OceanBase 169】如何停止清理備份?

13579NB232發表於2023-01-19

當前版本僅支援自動清理備份任務。對於自動清理場景,為了防止取消清理的任務被再次排程執行,需要先刪除清理策略,再停止正在執行的清理任務。如果僅希望取消正在執行的清理任務,可無需刪除清理策略。

刪除清理策略

注意事項及說明

  • 刪除清理策略時,當將租戶下所有的清理策略都刪除後,相當於關閉了該租戶的自動清理功能。

  • 刪除清理策略並不會影響正在執行的清理任務,僅表示系統下次進行自動清理排程時,被刪除的清理策略將不會再生成清理任務。

使用者租戶下刪除清理策略

  1. 租戶管理員登入到使用者租戶下。

  2. 執行以下語句,刪除清理策略。

    語句如下:

    obclient> ALTER SYSTEM DROP DELETE BACKUP POLICY policy_name;

    其中, POLICY 引數用於指定待刪除的清理策略名,您可以透過檢視檢視  oceanbase.DBA_OB_BACKUP_DELETE_POLICY 或  sys.DBA_OB_BACKUP_DELETE_POLICY 來獲取當前租戶所設定的清理策略。

    刪除當前租戶的清理策略  default 的示例如下:

    obclient> ALTER SYSTEM DROP DELETE BACKUP POLICY 'default';

系統租戶下刪除清理策略

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

  2. 執行以下語句,刪除清理策略。

    obclient> ALTER SYSTEM DROP DELETE BACKUP POLICY policy_name TENANT tenant_name;

    其中:

    • POLICY 引數用於指定待刪除的清理策略名, 可以從檢視  CDB_OB_BACKUP_DELETE_POLICY 中獲取。

    • TENANT 引數用於指定使用者租戶的租戶名,在系統租戶下刪除清理策略必須指定使用者租戶名,且僅支援指定一個使用者租戶名。

    系統租戶取消  MySQL 租戶的清理策略  default 的示例如下:

    obclient> ALTER SYSTEM DROP DELETE BACKUP POLICY 'default' TENANT MySQL;

確認清理策略已被刪除

執行刪除清理策略操作後,您可以透過檢視檢視來確認清理策略是否已被刪除。

  1. 系統租戶或使用者租戶的租戶管理員登入到對應的租戶。

  2. 確認清理策略是否已被刪除。

    • 系統租戶透過  oceanbase.CDB_OB_BACKUP_DELETE_POLICY 檢視確認指定租戶的清理策略是否已刪除。

      示例如下:

      obclient> SELECT * FROM oceanbase.CDB_OB_BACKUP_DELETE_POLICY  WHERE tenant_id = 1002;
      Empty set
    • 使用者租戶透過  oceanbase.DBA_OB_BACKUP_DELETE_POLICY 檢視或  sys.DBA_OB_BACKUP_DELETE_POLICY 檢視確認當前租戶的清理策略是否已刪除。

      • MySQL 租戶

        obclient> SELECT * FROM oceanbase.DBA_OB_BACKUP_DELETE_POLICY;
      • Oracle 租戶

        obclient> SELECT * FROM sys.DBA_OB_BACKUP_DELETE_POLICY;

    根據查詢結果,當檢視中已無對應租戶的記錄時,表示該租戶的清理策略已刪除成功。

取消清理任務

使用者租戶下取消正在執行的清理任務

  1. 租戶管理員登入到使用者租戶下。

  2. 執行以下語句,停止當前租戶正在執行的清理任務。

    obclient> ALTER SYSTEM CANCEL DELETE BACKUP;

系統租戶下取消正在執行的清理任務

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

  2. 執行以下語句,停止指定租戶正在執行的清理任務。

    obclient> ALTER SYSTEM CANCEL DELETE BACKUP TENANT tenant_name_list;

    其中, TENANT 引數用於指定待取消清理任務的使用者租戶名,支援一次指定多個使用者租戶名,表示僅取消指定租戶下正在執行的清理任務。

    系統租戶取消  MySQL 租戶和  Oracle 租戶上正在執行的清理任務。示例如下:

    obclient> ALTER SYSTEM CANCEL DELETE BACKUP TENANT MySQL, Oracle;

    如果不指定  TENANT 引數,則表示同時取消所有使用者租戶下正在執行的清理任務。

    obclient> ALTER SYSTEM CANCEL DELETE BACKUP;

確認清理任務已停止

執行停止清理任務的操作後,系統租戶和使用者租戶均可以透過檢視檢視來確認清理任務是否已停止。

  1. 系統租戶或使用者租戶的租戶管理員登入到對應的租戶。

  2. 確認清理任務是否已停止。

    1. 檢視清理任務是否正在執行。

      系統租戶透過  oceanbase.CDB_OB_BACKUP_DELETE_JOBS 檢視檢視所有租戶清理任務的執行情況;使用者租戶透過  oceanbase.DBA_OB_BACKUP_DELETE_JOBS 檢視或  sys.DBA_OB_BACKUP_DELETE_JOBS 檢視檢視當前所在租戶清理任務的執行情況。

      系統租戶檢視指定租戶清理任務執行情況的示例如下:

      obclient> SELECT * FROM oceanbase.CDB_OB_BACKUP_DELETE_JOBS WHERE tenant_id = 1002\G
      *************************** 1. row ***************************
                      TENANT_ID: 1002
                         JOB_ID: 1
                    INCARNATION: 1
            INITIATOR_TENANT_ID: 1002
               INITIATOR_JOB_ID: 7
             EXECUTOR_TENANT_ID: 1002
                           TYPE: DELETE OBSOLETE BACKUP
                      PARAMETER: 2022-05-31 12:09:40.060284
                      JOB_LEVEL: USER_TENANT
                START_TIMESTAMP: 2022-06-01 12:09:53.389512
                  END_TIMESTAMP: 
                         STATUS: CANCELING
                     TASK_COUNT: 2
             SUCCESS_TASK_COUNT: 1
                         RESULT: 0
                        COMMENT:  
      1 row in set

      根據查詢結果,如果  STATUS 對應的值為  INIT 或  DOING 或  CANCELING,則表示清理任務還未執行結束。

      如果出現如下情況,上述檢視中查詢不到租戶正在執行的清理任務,則可以執行下一步,檢視清理任務的歷史記錄來確認清理任務執行的結果。

      obclient> SELECT * FROM oceanbase.CDB_OB_BACKUP_DELETE_JOBS where tenant_id = 1002;
      Empty set
    2. 檢視清理任務的歷史記錄。

      系統租戶透過  oceanbase.CDB_OB_BACKUP_DELETE_JOB_HISTORY 檢視檢視所有租戶的歷史清理任務;使用者租戶透過  oceanbase.DBA_OB_BACKUP_DELETE_JOB_HISTORY 檢視或  sys.DBA_OB_BACKUP_DELETE_JOB_HISTORY 檢視檢視所在租戶的歷史清理任務。

      系統租戶檢視指定租戶清理任務的歷史記錄的示例如下:

      obclient> SELECT * FROM oceanbase._DELETE_JOB_HISTORY where tenant_id = 1002\G
      *************************** 1. row ***************************
                     TENANT_ID: 1002
                        JOB_ID: 1
                   INCARNATION: 1
           INITIATOR_TENANT_ID: 1002
              INITIATOR_JOB_ID: 7
            EXECUTOR_TENANT_ID: 1002
                          TYPE: DELETE OBSOLETE BACKUP
                     PARAMETER: 2022-05-31 12:09:40.060284
                     JOB_LEVEL: USER_TENANT
               START_TIMESTAMP: 2022-06-01 12:09:53.389512
                 END_TIMESTAMP: 2022-06-01 12:10:36.829576 
                        STATUS: CANCELED
                    TASK_COUNT: 2
            SUCCESS_TASK_COUNT: 2
                        RESULT: 0
                       COMMENT: 
      1 row in set

      如果  STATUS 對應的值為  COMPLETED 或  FAILED 或  CANCELED,則表示清理任務已停止。


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

相關文章