容器化 | 在 S3 实现定时备份
《在 S3 备份恢复 RadonDB MySQL 集群数据》一文中我们展示了在 S3 存储中对集群数据备份恢复的具体操作过程,但只是手动备份。RadonDB MySQL Kubernetes 2.2.0 新增支持 S3 的定时备份功能(NFS 的支持也在路上)。
下面让我们来看一下该功能是如何使用的吧!
如何开启?
可用 Cron 表达式(与 Linux 的 crontab 定时器类似)来指定备份的时间策略。您只需要在集群的 YAML 文件的  spec 下设置  backupSchedule 字段即可。格式如下:
... 
spec:
  replicas: 3
  mysqlVersion: "5.7"
  backupSchedule: "0 0 0 * * *"  # daily
  ...
删除字段即可取消定时备份任务。
Cron 表达式格式
Cron 表达式格式为:秒 分 时 日 月 星期,即由 6 个使用空格分隔的字段组成的时间组合。
| 字段名 | 必配 | 允许值 | 允许的特殊符号 | 
|---|---|---|---|
| 秒 | 是 | 0-59 | * / , - | 
| 分 | 是 | 0-59 | * / , - | 
| 时 | 是 | 0-23 | * / , - | 
| 日 | 是 | 1-31 | * / , - ? | 
| 月 | 是 | 1-12 或 JAN-DEC | * / , - | 
| 星期 | 是 | 0-6 或 SUN-SAT | * / , - ? | 
注意:【月】和【星期】字段大小写不敏感,即 SUN,Sun 和 sun 均接受。
特殊字符说明
| 符号 | 说明 | 
|---|---|
| * | 星号,可用在所有字段中,表示对应时间域的每一个时刻。例如,第 5 个字段(月)值为星号,表示每个月。 | 
| / | 反斜线,表示范围增量。 例如,第 2 个字段(分钟)中的 3-59/15 表示从该小时的第 3 分钟开始,此后以 15 分钟为时间间隔执行备份。*/y 等同于 min-max/y。n/y 等同于 n-max/y,即从 n 开始使用增量, 直到特定范围结束。 | 
| , | 逗号,用来隔离列表中的项目。例如,在第 5 个字段 (星期) 中使用 MON,WED,FRI 将表示周一、周三和周五。 | 
| - | 连字号,用来指定范围。例如,在第 3 个字段 (小时) 中使用 9-17 表示从 9 点到 17 点间的每一个小时。 | 
| ? | 问号,不指定值。仅日期和星期域支持该字符。当日期或星期域其中之一被指定了值以后,为了避免冲突,需要将另一个域的值设为问号。 | 
预定义时间表
你可以用如下的预定义时间来代替 Cron 表达式,使得设置更加人性化。
... 
spec:
  replicas: 3
  mysqlVersion: "5.7"
  backupSchedule: "@daily" # 0 0 0 * * *  每日执行一次
  ...
| 值 | 描述 | 等同于 | 
|---|---|---|
| @yearly(或 @annually) | 每年执行一次,在 1 月 1 日夜晚 12 点执行 | 0 0 0 1 1 * | 
| @monthly | 每月执行一次,在每月第 1 天 夜晚 12 点执行 | 0 0 0 1 * * | 
| @weekly | 每周执行一次,在周六和周日之间的夜晚 12 点执行 | 0 0 0 * * 0 | 
| @daily(或 @midnight) | 每日执行一次,在夜晚 12 点执行 | 0 0 0 * * * | 
| @hourly | 每小时执行一次,在第 1 分钟执行 | 0 0 * * * * | 
学会了就来体验一下吧!
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号