使用cronjob备份mysql

简介

越来越觉得Kubernetes的cronjob无敌好吧,用来做定时任务管理的话,这次要解决的是使用cronjob去备份我们的mysql,这里的备份使用的是mysqldump,因为数据量不大,如果大数据量的话推荐使用xtrabacup

操作

思路就是往mysql容器里面挂载备份的volume,然后执行备份脚本这样

首先编写备份脚本

1
2
3
4
#!/bin/bash
date=`date +%Y%m%d-%s`
mysqldump -uroot -p'你的密码' -h mysql.bboysoul.cn --all-databases >/backup/$date.sql
echo "备份完成"

之后编写yaml文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: mariadb-backup
  namespace: cronjob
spec:
  schedule: "0 3 * * *"
  successfulJobsHistoryLimit: 5
  failedJobsHistoryLimit: 5
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: mariadb-backup
            image: registry.bboysoul.cn/mariadb:10.3.27
            imagePullPolicy: IfNotPresent
            command: ['bash','/backup/backup.sh']
            volumeMounts:
            - name:  mariadb-backup
              mountPath:  "/backup"
          restartPolicy: Never
          volumes:
            - name: mariadb-backup
              nfs:
                server: 10.10.100.244
                path: /data/backup/mariadb

其他的貌似也没啥可以说的

欢迎关注我的博客 www.bboy.app

Have Fun