首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Windows 下 MySQL 批處理腳本自動備份與壓縮實戰

     編輯:MySQL 資料庫相關知識

利用 mysqldump + WinRAR + 計劃任務,實現 Windows 環境下 MySQL 定時備份、壓縮、日志記錄全流程自動化。

備份腳本 backup_mysql.bat

@echo off
rem 需將 WinRAR 目錄加入系統 PATH
rem 切換工作目錄
f:
cd f:\DBBAK

rem 變量:備份文件名(含日期)與日志文件
SET BAK_FILE=MY_DBBAK_%date:~0,4%%date:~5,2%%date:~8,2%.sql
SET LOG_FILE=MY_DBBAK.log

rem 記錄開始時間
echo "%date% %time%" >> %LOG_FILE%

rem 執行備份:UTF8、存儲過程/觸發器、單事務一致性、指定庫
mysqldump --default-character-set=utf8 -h localhost -u root -R --triggers --single-transaction -B mydb > %BAK_FILE%

rem 壓縮並刪除源文件
rar a %BAK_FILE%.rar %BAK_FILE%
del /F %BAK_FILE%

rem 記錄結束
echo "%date% %time%" >> %LOG_FILE%
echo. >> %LOG_FILE%

部署計劃任務

  1. 控制面板 →「管理工具」→「任務計劃程序」→「創建基本任務」。
  2. 觸發器:每日 02:00(低峰期)。
  3. 操作:啟動程序 cmd.exe,參數 /c f:\DBBAK\backup_mysql.bat。
  4. 勾選「無論用戶是否登錄都要運行」,輸入管理員憑證。

關鍵參數解讀

參數作用
--single-transactionInnoDB 熱備份,不鎖表,保證一致性視圖
-R --triggers導出存儲過程、函數、觸發器
-B mydb指定數據庫,輸出包含 CREATE DATABASE
rar a創建/更新壓縮包,預設最佳壓縮率

擴展建議

  • 添加 findstr /V "OK" %LOG_FILE% 檢查異常並發郵件告警。
  • 配合 forfiles /p f:\DBBAK /m *.rar /d -30 /c "cmd /c del @path" 定期清理 30 天前備份。
  • 異地複製:腳本末尾調用 robocopy 同步至 NAS/雲存儲。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved