当前位置: 首页 > web >正文

Docker 下备份 Mariadb 数据库文件

描述

正常来说我们备份脚本,一般都是执行数据库目录下的 …dump 文件的,但是在镜像中并且运行的容器如何备份?

就是使用容器中的 Mariadb 自带的备份脚本

操作

1、查看我们所有正在运行的容器信息

docker ps -a

在这里插入图片描述
找到容器的ID

2、然后我们进入到容器

docker exec -it 镜像运行的id bash

进来之后,找到 Mariadb 安装的所在目录

find -name mariadb

在这里插入图片描述
找到目录后,就能看到所对应的备份文件,注意后面的mariadb不是目录!

cd /usr/bin/ls mariadb

在这里插入图片描述

mariadb-dump这个就是备份脚本

验证一下脚本是否可用

mariadb-dump -uroot -p123456 你的数据库名字 > backup.sql

在这里插入图片描述

是有大小的,那么就可以了,记住当前dump脚本的路径。

退出去容器,用docker 的 exec 命令备份试一下

docker exec mariadb /usr/bin/mariadb-dump -uroot -p123456 你的数据库名称 > backup.sql

在这里插入图片描述
ok,执行成功了,大小的话,数据库数据我有变更,所以大一些。

配合外部的cron定时任务就可以进行定时了

完整的备份脚本

#!/bin/bash# 定义变量
BACKUP_DIR="./data_file"  # 备份存储目录
CONTAINER_NAME="mariadb"           # MariaDB容器名
MYSQL_USER="root"                  # 数据库用户名
MYSQL_PASSWORD="123456"      # 数据库密码
DATABASE_NAME="你数据的名字"      # 要备份的数据库名
DATE=$(date +%Y%m%d_%H%M%S)        # 当前时间格式# 创建备份目录
mkdir -p $BACKUP_DIR# 使用 `docker exec` 执行 `mysqldump` 备份
docker exec $CONTAINER_NAME /usr/bin/mariadb-dump -u$MYSQL_USER -p$MYSQL_PASSWORD $DATABASE_NAME > $BACKUP_DIR/${DATABASE_NAME}_${DATE}.sql# 压缩备份文件(可选)
gzip $BACKUP_DIR/${DATABASE_NAME}_${DATE}.sql# 删除7天前的旧备份
find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +7 -delete

定时cron命令设置凌晨12点执行一次

运行以下命令编辑当前用户的 cron 任务

crontab -e

在打开的文件末尾添加以下行

0 0 * * * 你的备份脚本路径/backup-hpc-cloud.sh

检查任务是否添加成功

crontab -l

正常会显示

0 0 * * * /opt/mariadb_backup.sh
http://www.xdnf.cn/news/14003.html

相关文章:

  • [技术积累]成熟的前端和后端开发框架
  • 全新RA2L2 MCU超低功耗、支持CAN及USB-C、拓展工业及便携式应用
  • 洛谷 数楼梯 高精度
  • 【SystemVerilog 2023 Std】第5章 词法约定 Lexical conventions (2)
  • opencv 之 视频类 VideoCapture、VideoWriter详细介绍
  • RAD:通过基于大规模 3DGS 的强化学习训练端-到-端驾驶策略
  • 深度解析Linux用户生态:账户架构设计与系统运维实战技巧》
  • 服务器代码知识点补充
  • 【MV】上下文感知选择算法:基于关键词映射简单实现
  • 论文阅读:arxiv 2025 Chain of Draft: Thinking Faster by Writing Less
  • 4步使用 vue3 路由
  • Unity编辑器-获取Projectwindow中拖拽内容的路径
  • 【JVM】- 类加载与字节码结构2
  • Agent 处理流程
  • “在同一事务中“ 的含义
  • 【工具教程】批量PDF识别提取区域的内容重命名,将PDF指定区域位置的内容提取出来改名的具体操作步骤
  • 蘑菇街商品详情接口技术解析
  • Tlias-web 管理系统项目知识点复盘总结
  • 东土科技参与国家重点研发计划 ,共同研发工业智控创新技术
  • Vue里面的映射方法
  • 弹性梁:绘图、分析与可视化-AI云计算数值分析和代码验证
  • linux命令-用户与用户组
  • 什么是redis
  • 【k8s】阿里云ACK服务中GPU实例部署问题
  • QMainWindow、QDialog 和 QWidget区别
  • ubuntu 无法访问位置 error mounting 解决办法 双系统
  • 腐烂之息-(Breath of Decay VR ) 硬核VR游戏
  • OpenBayes 一周速览丨对标GPT-4o! BAGEL统一处理多模态数据理解和生成任务; 专为软件工程任务设计, Devstral自主处理复杂工程问题
  • 印度客机坠毁致波音美股盘前直线下跌​
  • Linux内核网络协议注册与初始化:从proto_register到tcp_v4_init_sock的深度解析