开发者

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

目录
  • 前言
  • 一、获取需要备份的数据库的信息
  • 二、备份步骤
    • 1.准备工作(X86)
    • 1.准备工作(arm)
    • 2.手动备份
    • 3.定时任务自动备份
  • 总结

    前言

    记录一下在k8s运行的数据库的备份步骤。

    我的思路是新建一个数据库的容器作为工具容器,通过工具容器执行mysqldump命令进行备份,最后通过定时任务来执行命令。没有涉及保留时间的问题

    一、获取需要备份的数据库的信息

    kubectl get svc -A 
    mariadb                    mariadb                                   ClusterIP   10.233.20.235   <none>        3306/TCP                                         71d
    mariadb            php        mariadb-nodeport                          No编程客栈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数据库备份记录内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新数据库

    数据库排行榜