使用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

欢迎关注我的其它发布渠道