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

Windows Server 设置MySQL自动备份任务(每日凌晨2点执行)

Windows Server 设置MySQL自动备份任务(每日凌晨2点执行)

1. 保存备份脚本

将脚本保存为mysql_backup.bat文件。

@echo off
setlocal enabledelayedexpansion:: ================================================
:: 自动请求管理员权限
:: ================================================
:: 检查是否已管理员身份运行
net session >nul 2>&1
if %ERRORLEVEL% NEQ 0 (echo 正在请求管理员权限...powershell -Command "Start-Process '%~s0' -Verb RunAs"exit /b
):: ================================================
:: 数据库备份脚本
:: 功能:自动备份MySQL数据库,保留7天历史备份
:: 特点:WinRAR压缩、并行执行、错误日志、权限控制
:: 配置日期:2025-07-22
:: ================================================:: ------------------------------
:: 配置区域(根据实际环境修改)
:: 初始化变量
:: ------------------------------
set "MYSQL_BIN=C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump"
set "DATABASE_USER=root"
set "DATABASE_PASSWORD=123456"
set "BACKUP_ROOT=%~dp0"                            
set "DATABASES=app,client"
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
:: 日志目录
set "LOG_DIR=%BACKUP_ROOT%logs"
:: 备份日志文件
set "LOGFILE=%BACKUP_ROOT%logs/backup_%Ymd%.log"
set ERROR_FLAG=0:: 创建日志目录
if not exist "%LOG_DIR%" (mkdir "%LOG_DIR%"
)echo ====================================================================================================================== >> %LOGFILE%
echo [%date% %time%] === 备份开始 === >> %LOGFILE%:: ------------------------------
:: 目录检查与创建
:: ------------------------------
for /l %%i in (1,1,7) do (if not exist %BACKUP_ROOT%D%%i (mkdir %BACKUP_ROOT%D%%iecho [%date% %time%] 提示:创建目录: D%%i >> %LOGFILE%)
):: ------------------------------
:: 清理旧备份(保留7天)
:: ------------------------------
if exist %BACKUP_ROOT%D1/*.sql (del /Q "%BACKUP_ROOT%\D1\*.sql" >> "%LOGFILE%" 2>&1if !ERRORLEVEL! NEQ 0 (echo [%date% %time%] 错误: 删除D1旧备份失败 >> %LOGFILE%set ERROR_FLAG=1)
)else (echo [%date% %time%] 警告: D1无SQL文件可删除 >> %LOGFILE%
):: ------------------------------
:: 目录轮转
:: ------------------------------
for /l %%i in (2,1,7) do (set /a j=%%i-1if exist "%BACKUP_ROOT%D%%i\*.sql" (move /Y "%BACKUP_ROOT%D%%i\*.sql" "%BACKUP_ROOT%D!j!\" >> %LOGFILE% 2>&1if !ERRORLEVEL! NEQ 0 (echo [%date% %time%] 错误: 移动D%%i到D!j!失败(错误码: !ERRORLEVEL!) >> %LOGFILE%set ERROR_FLAG=1))else (echo [%date% %time%] 警告: D%%i无SQL文件可移动 >> %LOGFILE%)
):: ------------------------------
:: 顺序备份数据库
:: ------------------------------
for %%d in (%DATABASES%) do (echo [%date% %time%] 开始备份数据库: %%d >> %LOGFILE%:: 执行备份"%MYSQL_BIN%" -u%DATABASE_USER% -p%DATABASE_PASSWORD% %%d > "%BACKUP_ROOT%D7\%%d_%Ymd%.sql" :: 错误检查if !ERRORLEVEL! NEQ 0 (echo [%date% %time%] 严重错误: 数据库 %%d 备份失败 >> %LOGFILE%set ERROR_FLAG=1) else (echo [%date% %time%] 数据库成功备份: %%d >> %LOGFILE%)
):: ------------------------------
:: 最终状态检查
:: ------------------------------
if %ERROR_FLAG% NEQ 0 (echo [%date% %time%] === 备份完成(有错误)=== >> %LOGFILE%exit /b 1
) else (echo [%date% %time%] === 备份完成(成功)=== >> %LOGFILE%exit /b 0
)endlocal

2. 创建定时任务

2.1 打开任务计划程序

  • Win+R,输入taskschd.msc回车。
  • 或通过控制面板 > 管理工具 > 任务计划程序。

在这里插入图片描述

2.2 创建基本任务

  • 右侧点击创建任务
  • 名称输入MySQL定时备份
  • 描述可填写MSQL定时备份:每日凌晨两点备份app、plat数据库库,保留最近7天的数据库数据
  • 高级配置(可选):勾选不管用户是否登录都要运行
  • 高级配置(可选):勾选使用最高权限运行

在这里插入图片描述

2.3 设置触发器

  • 选择每天
  • 开始时间设置为02:00:00
  • 重复间隔保持1天

在这里插入图片描述

2.4 设置操作

  • 选择启动程序
  • 程序或脚本浏览选择mysql_backup.bat
  • 起始位置填写脚本所在目录(如C:\scripts\)。

在这里插入图片描述

2.5 完成设置

  • 点击完成创建任务。

在这里插入图片描述

2.6 验证任务(可选)

  • 右键新建的任务选择运行测试。
  • 检查日志文件确认备份是否成功。
http://www.lryc.cn/news/596091.html

相关文章:

  • 二叉树的题目,咕咕咕
  • VirtualBox安装提示security安全问题
  • 控制器(Controller)模块的架构与工作流程 -OpenExo
  • Agent架构与工作原理:理解智能体的核心机制
  • Nacos 注册中心高频面试题及解析
  • 从感知到决策:虚拟仿真系统与视觉算法融合下的多路RTSP视频接入技术探究
  • 将生产库的数据连同表结构一起复制到测试库中
  • 如何安装没有install.exe的mysql数据库文件
  • ZLMediaKit 入门
  • 20250722在Ubuntu 24.04.2下配置编译RD-RK3588开发板的Android13的编译环境
  • wps dispimg python 解析实现参考
  • 二分查找-852.山峰数组的峰顶索引-力扣(LeetCode)
  • 函数——C语言的重要部分
  • React Three Fiber 实现昼夜循环:从光照过渡到日月联动的技术拆解
  • 金山办公WPS项目产品总监陈智新受邀为第十四届中国PMO大会演讲嘉宾
  • 两个android,一个客户端一个服务器端
  • 深入解析 Spark:关键问题与答案汇总
  • 在easyui中如何自定义表格里面的内容
  • Python爬虫实战:研究pymorphy2库相关技术
  • Python爬虫实战:研究PyPLN库相关技术
  • 【文献笔记】ARS: Automatic Routing Solver with Large Language Models
  • PHP获取淘宝拍立淘(以图搜图)API接口操作详解
  • 如何迁移jenkins至另一台服务器
  • 一个基于现代C++智能指针的优雅内存管理解决方案
  • 探索飞算JavaAI:AI赋能Java开发的新范式
  • docker 设置镜像仓库代理
  • 碰一碰发视频源码搭建:支持OEM
  • 初识opencv01——基本api操作
  • 分布式高可用ELK平台搭建及使用保姆级教程指南
  • 大数据之Hive:Hive中week相关的几个函数