1. 程式人生 > >Windows 下 MySQL 簡單定時自動備份、刪除過期備份

Windows 下 MySQL 簡單定時自動備份、刪除過期備份

問題

MySQL Workbench 客戶端雖然好用,但並不提供自動備份功能。手工備份,確實繁瑣。

環境

  • Windows Server 2012
  • MySQL 5.6.24

思考

MySQL 提供了 mysqldump 來進行備份。那麼我們可否使用該工具,結合Windows 的定時任務功能,來實現 MySQL 定時自動備份呢?

解決

新建一個 資料庫備份檔案存放目錄,本例為D:\db_backup.新建一個批處理檔案,可以起任意名,本例為mysql_backup_tool.bat ,檔案內容如下:

rem auther:www.waylau.com
rem date:20150724
rem ******MySQL backup start********
@echo
off forfiles /p "D:\db_backup" /m emsc_backup_*.sql -d -30 /c "cmd /c del /f @path" set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%" C:\mysql\bin\mysqldump --opt --single-transaction=TRUE --user=root --password=123456 --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "emsc"
> D:\db_backup\emsc_backup_%Ymd%.sql @echo on rem ******MySQL backup end********

其中,forfiles刪除過期檔案的命令,-d -30刪除30天的檔案。C:\mysql\bin\mysqldump 為 MySQL 安裝時,mysqldump.exe 檔案所在路徑,--user=root 指 MySQL 使用者名稱為 root --password=123456 指 MySQL 密碼為123456,"emsc" 為要備份的資料庫的名稱,emsc_backup_%Ymd%.sql, 為備份檔案的名稱,這個名稱是根據當前的時間規則生成的,比如今天生產的備份檔案,名稱為emsc_backup_20150724012120.sql

定期任務

一般的,我們的備份週期是1天,備份的儲存時間是30天,30天后的備份檔案將被刪除。備份的時間應選擇在系統執行負荷最小的時間,比如凌晨1點到3點。具體步驟如下: 在“伺服器管理”--“工具”中選擇“任務計劃程式”

選擇“建立基本任務”


任務的名稱起為“MySQL backup” ,點選“下一步”


選擇“每天”,點選“下一天”


設定開始備份的時間,按實際的需要選擇一個伺服器負荷最小的時間,點選“下一步”


選擇要啟動的程式,這裡我們選擇 mysql_backup_tool.bat 檔案


點選“完成”後,就能在計劃任務列表中看到“MySQL backup”。