部署mysqlbackup
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysqlbackup
namespace: default
spec:
selector:
matchLabels:
app: mysqlbackup
io.cattle.field/appId: yidayun
template:
metadata:
labels:
app: mysqlbackup
io.cattle.field/appId: yidayun
spec:
containers:
- env:
- name: AFTER_BACKUP_SCRIPT
value: /scripts/after_script.sh
- name: BACKUP_DIR
value: /backup
- name: COMPRESS_THREADS
value: "4"
- name: CRON_SCHEDULE
value: 0 1,12 * * *
- name: DELETE_OLDER_DAYS
value: "90"
- name: DIR_DATE_PATTERN
value: '%Y%m%d_%H%M'
- name: FULL_BACKUP_DATE_FORMAT
value: '%'
- name: FULL_BACKUP_DATE_RESULT
value: '%'
- name: INCREMENTAL
value: "false"
- name: ITEM_NAME
value: zhixun
- name: MYSQL_HOST
value: ""
- name: MYSQL_PASSWORD
value: ""
- name: MYSQL_PORT
value: ""
- name: MYSQL_USER
value: ""
- name: PARALLEL
value: "4"
- name: ROTATION1_DATE_FORMAT
value: '%a'
- name: ROTATION1_DATE_RESULT
value: Sun
- name: ROTATION1_DAYS
value: "6"
- name: ROTATION2_DATE_FORMAT
value: '%d'
- name: ROTATION2_DATE_RESULT
value: <8
- name: ROTATION2_DAYS
value: "30"
- name: ROTATION3_DATE_FORMAT
value: '%m'
- name: ROTATION3_DATE_RESULT
value: "01"
- name: ROTATION3_DAYS
value: "365"
image: renxiaoyun.tencentcloudcr.com/yidayun/mysql-backup-sidecar:0.3.8.7
imagePullPolicy: Always
name: mysqlbackup
ports:
- containerPort: 9012
name: mysqlbackup
protocol: TCP
resources:
limits:
cpu: 700m
memory: 1Gi
requests:
cpu: 50m
memory: 256Mi
volumeMounts:
- mountPath: /backup
name: backup
- mountPath: /var/lib/mysql
name: mysqldata
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: txcloud
nodeSelector:
k3s: master
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- name: backup
persistentVolumeClaim:
claimName: backup
- name: mysqldata
persistentVolumeClaim:
claimName: mysql
备份目录结构
备份持久化
archive:历史数据存储目录(执行备份策略)
current:当前最新数据目录
one:手动执行备份数据目录(应用场景,如发版前备份)
发版前备份
进入mysqlbackup容器,执行命令
bash /scripts/backup_one.sh
恢复数据库
1、停止Mysql数据库
2、执行恢复数据
Tip:期间自动删除源数据库的数据目录的所有数据,自动拷贝最新日期备份的备份数据
进入mysqlbackup容器,执行命令
bash /scripts/recover.sh