本文主要是介绍k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实...
前言
记录一下在k8s运行的数据库的备份步骤。
我的思路是新建一个数据库的容器作为工具容器,通过工具容器执行mysqldump命令进行备份,最后通过定时任务来执行命令。没有涉及保留时间的问题
一、获取需要备份的数据库的信息
kubectl get svc -A mariadb mariadb ClusterIP 10.233.20.235 <none> 3306/TCP 71d mariadb php mariadb-nodeport NoChina编程dePort 10.233.31.133 <none>android; 3306:30901/TCP
二、备份步骤
1.准备工作(X86)
# 准备备份目录 mkdir -p /data/backup/mysql/ # 获取镜像 docker pull dockerpull.cn/bitnami/mariadb:10.5.11-Debian-10-r0 # 运行备份用数据库容器 docker run --name mariadb-bak-tool -d -e TZ=Asia/Shanghai -e MARIADB_ROOT_PASSWORD=passwd@123456 dockerpull.cn/bitnami/mariadb:10.5.11-debian-10-r0
1.准备工作(arm)
# 准备备份目录 mkdir -p /data/backup/mysql/ # 获取镜像 docker pull dockerpull.cn/arm64v8/mariadb:10.5.11 # 运行备份用数据库容器 docker run --name mariadb-bak-tool -d -e TZ=Asia/Shanghai -e MARIADB_ROOT_PASSWORD=passwd@123456 dockerpull.cn/arm64v8/mariadb:10.5.11
2.手动备份
# 利用pod的容器网络的IP连接 /usr/bin/docker jsexec -it mariadb-bak-tool mysqldump -uroot -ppasswd@123456 --host=10.233.20.235 --port=3306 --all-databases > /data/backup/mysql/all_databases_backup_$(date +"%Y%m%d-%H:%M").sql # 使用nodeport连接 /usr/bin/docker exec -it mariadb-bak-tool mysqldump -uroot -ppasswd@123456 --host=XXX.XX.XX.XX --port=30901 --all-databases > /data/backup/mysql/all_databases_backup_$(dhwBjKSoxdate +"%Y%m%d-%H:%M").sql
3.定时任务自动备份
10 6 * * * /usr/bin/docker exec mariadb-bak-tool mysqldump -uroot -ppasswd@123456 --host=XXX.XX.XX.XX --port=30901 --all-databases > /data/backup/mysql/all_databases_backup_$(date +"\%Y\%m\%d-\%H:\%M").sql 2>&1
注意:
- cron环境中不支持交互式终端,需要去掉-it参数
- crontab中百分号需要转义
总结
记录一下,后续在项目中用。
到此这篇关于k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)的文章就介绍到这了,更多相关k8s数据库备份记录内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!
这篇关于k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!