暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式数据库学习Note140:OceanBase社区版中,如何停止清理备份?

欢迎访问OceanBase官网获取更多信息:https://www.oceanbase.com/


当前版本仅支持自动清理备份任务。对于自动清理场景,为了防止取消清理的任务被再次调度执行,需要先删除清理策略,再停止正在执行的清理任务。如果仅希望取消正在执行的清理任务,可无需删除清理策略。

删除清理策略

注意事项及说明

  • 删除清理策略时,当将租户下所有的清理策略都删除后,相当于关闭了该租户的自动清理功能。

  • 删除清理策略并不会影响正在执行的清理任务,仅表示系统下次进行自动清理调度时,被删除的清理策略将不会再生成清理任务。

用户租户下删除清理策略

  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;
        

    根据查询结果,当视图中已无对应租户的记录时,表示该租户的清理策略已删除成功。

取消清理任务

用户租户下取消正在执行的清理任务

  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,则表示清理任务已停止。

欢迎访问OceanBase官网获取更多信息:https://www.oceanbase.com/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论