首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Windows 下 MySQL 自動備份實作:批次檔 + 排程器完整教學

     編輯:MySQL 綜合教學

自動備份架構概覽

在 Windows 環境下,結合 mysqldump 與工作排程器,可輕鬆實現 MySQL 定時備份。適用於中小型資料庫,大型資料庫建議考慮實體備份或複制方案。

批次檔腳本範例

@echo off
echo -------------------------
echo MySQL 自動備份
echo %date%
echo -------------------------

:: 解析日期變數 (格式 YYYYMMDD)
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%

:: 設定備份檔名
set db1_backup=db1_%year%%month%%day%.sql
set db2_backup=db2_%year%%month%%day%.sql

:: 切換至 MySQL bin 目錄
cd /d "D:\Program Files\phpStudy\MySQL\bin"

:: 執行備份 (請依實際帳密、資料庫名稱修改)
mysqldump -uroot -proot db1 > "d:\backup\%db1_backup%"
mysqldump -uroot -proot db2 > "d:\backup\%db2_backup%"

:: 可選:壓縮備份檔 (需安裝 7-Zip 或類似工具)
:: "C:\Program Files\7-Zip\7z.exe" a "d:\backup\%db1_backup%.7z" "d:\backup\%db1_backup%"

echo 備份完成!
:: pause  <-- 測試時可取消註解查看結果

關鍵參數說明

  • -u / -p:帳號密碼(生產環境建議使用 --defaults-extra-file 避免明文)
  • --single-transaction:InnoDB 熱備份必加,保證一致性不鎖表
  • --flush-logs:備份前切換 binlog,利於增量備份
  • --master-data=2:在輸出檔記錄 binlog 位置,便於時間點恢復

設定 Windows 工作排程器

  1. 開啟「工作排程器」→「建立基本工作」
  2. 觸發條件選「每天」,設定低峰時段(如凌晨 02:00)
  3. 動作選「啟動程式」,程式填 cmd.exe,引數填 /c "D:\scripts\mysql_backup.bat"
  4. 完成後右鍵工作 → 「屬性」→「條件」/「設定」微調(如僅網路可用時執行)

進階建議

  • 異地備份:搭配 robocopy 或雲端同步工具將備份檔推送至遠端
  • 保留策略:在批次檔結尾加入 forfiles /p "d:\backup" /m *.sql /d -7 /c "cmd /c del @path" 自動刪除 7 天前檔案
  • 驗證機制:定期腳本驗證 mysqldump 輸出檔大小、CRC32 或嘗試還原測試
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved