Windows 環境下 MySQL 自動備份兩大主流方案:直接備份 data 目錄 (冷備份) 與 mysqldump 邏輯備份 (熱備份),配合 Windows 排程任務實現無人值守。
net stop mysql
del d:\mysql_backup\data /q
"c:\Program Files\WinRAR\WinRAR.exe" a -ag -k -r -s d:\mysql_backup\mysql.rar d:\mysql\data
net start mysql
-ag:檔名附加日期時間-k:建立鎖定存檔防修改-r:遞迴子目錄-s:建立固態存檔 (無資訊區塊)另存為 backup_db.cmd,排程任務設定每日凌晨 3 點執行。優點:完整性高、恢復簡單 (直接覆蓋 data 目錄);缺點:備份期間服務中斷 (30MB 庫約 5 秒)、佔空間大。
net stop mysql
xcopy c:\mysql\data\bbs\*.* c:\db_bak\bbs\%date:~0,3% /y
net start mysql
%date:~0,3% 取星期縮寫 (如 Mon),自動輪換 7 天;%date:~4,10% 取完整日期可保留每日備份。同樣需停庫。
@echo off
"c:\mysql\bin\mysqladmin" -u root --password=123456 shutdown
"c:\mysql\bin\mysqldump" --opt -u root --password=123456 bbs > d:\db_backup\bbs.sql
"c:\mysql\bin\mysqld-nt"
此處為簡化示範先 shutdown 再 mysqldump 再啟動服務,實際生產應直接 mysqldump --single-transaction 熱備份無需停庫。排程每日凌晨 5 點執行。