ITPub博客

首页 > 数据库 > 国内数据库 > 【手摸手玩转 OceanBase 168】如何自动清理过期备份?

【手摸手玩转 OceanBase 168】如何自动清理过期备份?

原创 国内数据库 作者:13579NB232 时间:2023-01-19 17:17:29 0 删除 编辑

备份成功后,可以根据业务需要,为租户设置清理策略,设置了清理策略的租户将会每小时触发一次自动清理,以便过期的备份能够及时得到清理。

注意事项

  • 由于日志归档数据的清理依赖数据的备份,在清理日志归档数据前,请确认已存在数据备份文件,如果没有数据备份文件,则无法清理日志归档数据。

  • 自动清理仅支持清理配置项  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博客 ” ,链接:https://blog.itpub.net/70026124/viewspace-2932885/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2023-01-18

  • 博文量
    184
  • 访问量
    93197