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

相关推荐
Arva .10 分钟前
Redis
数据库·redis·缓存
DemonAvenger11 分钟前
MySQL与应用程序的高效交互模式:从基础到实战的最佳实践
数据库·mysql·性能优化
博一波27 分钟前
Redis 集群:连锁银行的 “多网点智能协作系统”
数据库·redis·缓存
HashData酷克数据33 分钟前
官宣:Apache Cloudberry (Incubating) 2.0.0 发布!
数据库·开源·apache·cloudberry
秋难降34 分钟前
SQL 索引突然 “罢工”?快来看看为什么
数据库·后端·sql
TDengine (老段)1 小时前
TDengine 时间函数 TODAY() 用户手册
大数据·数据库·物联网·oracle·时序数据库·tdengine·涛思数据
码界奇点1 小时前
KingbaseES一体化架构与多层防护体系如何保障企业级数据库的持续稳定与弹性扩展
数据库·架构·可用性测试
悟乙己2 小时前
数据科学家如何更好地展示自己的能力
大数据·数据库·数据科学家
皆过客,揽星河2 小时前
mysql进阶语法(视图)
数据库·sql·mysql·mysql基础语法·mysql进阶语法·视图创建修改删除
Android小码家2 小时前
Vscode + docker + qt 网络监听小工具
vscode·qt·docker