【手摸手玩轉 OceanBase 168】如何自動清理過期備份?

13579NB232發表於2023-01-19

備份成功後,可以根據業務需要,為租戶設定清理策略,設定了清理策略的租戶將會每小時觸發一次自動清理,以便過期的備份能夠及時得到清理。

注意事項

  • 由於日誌歸檔資料的清理依賴資料的備份,在清理日誌歸檔資料前,請確認已存在資料備份檔案,如果沒有資料備份檔案,則無法清理日誌歸檔資料。

  • 自動清理僅支援清理配置項  data_backup_dest 以及  log_archive_dest 中設定的備份目的端的資料,對於已被更換備份目的端的場景,將無法透過 OceanBase 資料庫進行清理。

  • 自動清理會保留至少一份有效的備份資料,如果僅有一份有效的備份資料,則這份有效資料將一直不會被清理。

  • 對於備份目的端為 NFS 的場景,在進行備份資料的清理時,系統會直接刪除滿足要求的備份檔案;對於備份目的端為 OSS 的場景,其備份檔案的清理方式取決於  data_backup_dest 以及  log_archive_dest 中  delete_mode 引數的值,詳細資訊請參見  備份前準備

設定清理策略

使用者租戶下設定清理策略

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

  2. 設定清理策略,相當於開啟租戶的自動清理功能。

    語句如下:

    obclient> ALTER SYSTEM ADD DELETE BACKUP POLICY policy_name RECOVERY_WINDOW recovery_window;

    其中:

    • POLICY 引數用於指定清理策略名,當前僅支援設定為  default,表示自動清理的範圍僅為當前配置項  data_backup_dest 以及  log_archive_dest 中的備份。

    • RECOVERY_WINDOW 引數用於控制備份資料可恢復的時間視窗。更多該引數的詳細說明請參見  recovery_window 引數介紹

    示例如下:

    obclient> ALTER SYSTEM ADD DELETE BACKUP POLICY 'default' RECOVERY_WINDOW '7d';

系統租戶下設定清理策略

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

  2. 設定清理策略,相當於開啟租戶的自動清理功能。

    語句如下:

    obclient> ALTER SYSTEM ADD DELETE BACKUP POLICY policy_name RECOVERY_WINDOW recovery_window TENANT tenant_name;

    其中:

    • POLICY 引數用於指定清理策略名,當前僅支援設定為  default,表示自動清理的範圍僅為當前配置項  data_backup_dest 以及  log_archive_dest 中的備份。

    • RECOVERY_WINDOW 引數用於控制備份資料可恢復的時間視窗。更多該引數的詳細說明請參見  recovery_window 引數介紹

    • TENANT 引數用以指定清理策略生效的租戶,需指定使用者租戶的租戶名,且當前僅支援指定一個租戶名。

    注意

    當前僅支援設定租戶級清理策略,不支援設定叢集級清理策略,每條命令只能為一個租戶設定一個清理策略。

    系統租戶為  MySQL 租戶指定清理策略的示例如下:

    obclient> ALTER SYSTEM ADD DELETE BACKUP POLICY 'default' RECOVERY_WINDOW '7d' TENANT MySQL;

檢視已設定的清理策略

系統租戶和使用者租戶均可以透過查詢檢視來獲取當前已設定的所有清理策略。

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

  2. 檢視租戶已設定的清理策略。

    • 系統租戶透過  oceanbase.CDB_OB_BACKUP_DELETE_POLICY 檢視檢視所有租戶清理策略。

      示例如下:

      obclient> SELECT * FROM oceanbase.CDB_OB_BACKUP_DELETE_POLICY;
      +-----------+-------------+-----------------+
      | TENANT_ID | POLICY_NAME | RECOVERY_WINDOW |
      +-----------+-------------+-----------------+
      |      1002 | default     | 7d              |
      +-----------+-------------+-----------------+
      1 row in set
    • 使用者租戶透過  oceanbase.DBA_OB_BACKUP_DELETE_POLICY 檢視或  sys.DBA_OB_BACKUP_DELETE_POLICY 檢視檢視當前租戶的清理策略。

      • MySQL 租戶

        obclient> SELECT * FROM oceanbase.DBA_OB_BACKUP_DELETE_POLICY;
        +-------------+-----------------+
        | POLICY_NAME | RECOVERY_WINDOW |
        +-------------+-----------------+
        | default     | 7d              |
        +-------------+-----------------+
        1 row in set
      • Oracle 租戶

        obclient> SELECT * FROM sys.DBA_OB_BACKUP_DELETE_POLICY;
        +-------------+-----------------+
        | POLICY_NAME | RECOVERY_WINDOW |
        +-------------+-----------------+
        | default     | 7d              |
        +-------------+-----------------+
        1 row in set


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

相關文章