docker 通过定时任务恢复MySQL数据库

1.编写恢复命令脚本 nm_jxxt_new.sh ,并记录开始及结束 时间
格式
gunzip -c 备份文件路径 | docker exec -i 容器id(xxx) mysql -u数据库连接用户名(xx) -p密码(xx) 恢复到数据名称(xx)
参考命令如果是压缩文件

复制代码
gunzip -c /u01/db/mysql_8.0.26/backup/my_db_nameb_20250428_000011.sql.gz | docker exec -i 5cb4w344d mysql -uroot -proot my_db_namee

如果是sql文件

复制代码
docker exec -i 5cb4da3d589c mysql -uroot -proot my_db_name < /u01/db/mysql_8.0.26/backup/my_db_name_20250428_000011.sql

参考脚本

复制代码
#! /bin/sh

# 定义日志文件路径
LOG_FILE="/u01/db/MY_DBNAME_backup.log"

# 获取当前时间
START_TIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "-----------------数据库恢复日志-----------------" >> $LOG_FILE
echo "恢复开始时间: $START_TIME" >> $LOG_FILE
echo "数据库名称: MY_DBNAM" >> $LOG_FILE
echo "-------------------------------------------------" >> $LOG_FILE

 

echo "-----------------恢复mysql8数据库---------------";
echo "--数据库恢复开始 -------------------------------";

# 执行数据库恢复
START_RESTORE_TIME=$(date +%s)
gunzip -c /usr/db/mysql_8/backup/MY_DBNAM_20250428_000011.sql.gz | docker exec -i 5cb4da34534 mysql -uroot -pjysa MY_DBNAM

# 记录数据库恢复结束时间和用时
END_RESTORE_TIME=$(date +%s)
RESTORE_TIME=$((END_RESTORE_TIME - START_RESTORE_TIME))

END_TIME=$(date "+%Y-%m-%d %H:%M:%S")

echo "恢复结束时间: $END_TIME" >> $LOG_FILE
echo "恢复用时: $RESTORE_TIME 秒" >> $LOG_FILE
echo "-------------------------------------------------" >> $LOG_FILE
echo "--数据库恢复结束 -------------------------------" >> $LOG_FILE
 

# 输出日志到终端
cat $LOG_FILE
  1. 添加定时任务

  2. 打开 crontab 编辑器
    crontab -e

  3. 添加以下行:

    10 0 29 4 * /u01/db/MY_DBNAM.sh

  4. 加载定时任务

    systemctl reload crond.service

4.查看任务列表
crontab -l

相关推荐
.柒宇.13 分钟前
使用 cri-docker 搭建 Kubernetes 集群完整教程(v1.36.3)
docker·容器·kubernetes·k8s集群安装
辻弋20135 分钟前
一键优化电源计划、游戏模式、独显强制、禁用后台录制——DeltaForceBooster专治三角洲行动卡顿掉帧,所有改动可一键还原
服务器·数据库·windows·游戏·电脑·php
Wang's Blog1 小时前
PostgreSQL笔记51: 基于 pgvector 构建企业级智能问答系统
数据库·笔记·postgresql
我星期八休息2 小时前
Linux—五种IO模型与非阻塞IO
linux·运维·服务器·网络·数据库·网络协议
SQL-First布道者2 小时前
全面解构传统持久层框架,拥抱真正的 SQL-First
java·数据库·spring boot·sql·spring·mybatis·spring jdbc
AIMath~2 小时前
MVCC 与乐观锁,RR的本质
mysql
翼龙云_cloud2 小时前
阿里云国际版代理商:OSS自定义域名绑定与HTTPS配置排障教程
数据库·阿里云·https·云计算
日常筹谋记2 小时前
ATS选不对运维两行泪:数据中心市电与柴发切换场景的双电源自动转换开关选型笔记
运维·数据库·笔记
程序员夏洛2 小时前
MySQL 中的 MVCC 是什么?
数据库·mysql
艾伦_耶格宇2 小时前
【DOCKER容器实战】-3 ElasticSearch + Kibana
elasticsearch·docker·jenkins