iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
DevOps

自架 Windows Server,打造你的專業 WordPress 部落格系列 第 28

如何定期備份 MySQL 及刪除舊有檔案-適用 Windows

MySQL 是免費的關聯式資料庫,具有輕量級速度快的優點,適合小型網站架設使用。
目前最流行的 WordPress 就是採用 MySQL 做為指定資料庫。

如果還沒安裝 MySQL 的話,可參考我這篇教學文章: Windows Server 安裝 MySQL Community 免費社群版

在上一篇我講解了如何備份與還原 MySQL 資料庫,我所教學的方法是手動備份的方式。

接下來這一篇將會講解如何在 Windows 做到定期備份,並定期刪除舊有備份檔。
而我所使用的方式是命令提示字元(CMD),呼叫 MySQL 備份程式。
再使用工作排程器來定期執行批次指令。

編寫命令列

在開始寫命令列之前,我們先建立要存放備份的目錄。例如放在 C:\mysql_backup。
然後在建立一個批次檔案,副檔名為 .bat。例如放在 C:\mysql_backup.bat 。
mysql_backup.bat 內容如下:

rem ******MySQL backup start********

@echo off

:: 備份目錄
set BackupFile=C:\mysql_backup

:: 資料庫連線
set userId=root
set UserPwd=123456
set Host=127.0.0.1
set port=3306
set DBName=world

:: 備份保留天數
set RetentionDays=-3

:: 設定時間格式 yyyyMMdd
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"

::刪除舊有備份檔
forfiles /p %BackupFile% /m backup_*.sql -d %RetentionDays% /c "cmd /c del /f @path"

:: 執行備份指令
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump" --opt --single-transaction=TRUE --user=%userId% --password=%UserPwd% --host=%Host% --protocol=tcp --port=%port% --default-character-set=utf8 --single-transaction=TRUE --routines --events %DBName% > "%BackupFile%\backup_%Ymd%.sql"

@echo on

rem ******MySQL backup end********
rem pause

關於需要調整的參數有:
BackupFile=備份目錄。
userId=資料庫登入帳號,建立用管理者帳號。
UserPwd=資料庫登入密碼。
Host=主機 IP。
port=連接埠。
DBName=資料庫名稱。
RetentionDays=-3 表示刪除超過3天的檔案。

關於檔名的時間,我只有保留{年月日}而已。
如果想要使用{年月日時分秒}格式的話,可以使用以下語法。
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"

另外要特別注意的是在執行備份指令的 C:\Program Files\MySQL\MySQL Server 8.0\bin\,要指向你安裝的 MySQL 目錄。
mysqldump是 MySQL 提供的備份程式。

當執行過後就會產生以下檔案

發生錯誤時檢查方式

如果當你執行後,檔案沒有正常出現,可能出現了問題。
可以把指令最下面的rem pause 改為 pause,
而 rem 是註解的意思,pause 則是暫停的意思。
會讓執行畫面停住不會消失,這時候你可以看看是那裡出現問題。
較常出現的問題是資料庫連線失敗或是目錄有錯。

設定工作排程器

當完成了批次檔 mysql_backup.bat 後,接下來就是建立「工作排程器」定期備份。

打開「工具排程器」,在右邊執行「建立工作」。

輸入排程名稱

排程名稱例如: "MySQL Backup"。
執行選項可選擇「只有使用者登入時才執行」或是「不論使用者登入與否均執行」。
這個看你的電腦是否要在登出時執行。

設定觸發程序

觸發時間依個人想要的週期來備份。

通常我是每天備份一次。

設定動作

動作的部份就選擇啟動剛剛的批次檔,要注意的是「開始位置」也要輸入批次檔的存放目錄。

完成設定後,就可以在清單看到已建立的排程了。

重點整理

  1. 編寫命令列 ( .bat 檔)
  2. 設定工作排程器

相關學習文章

MySQL Workbench如何備份與還原資料庫
Windows Server IIS 如何安裝 PHP 網頁伺服器
Windows Server 安裝 MySQL Community 免費社群版


上一篇
如何在 WordPress 設定 Google reCAPTCHA 保護(登入、留言、聯絡)表單,免遭惡意攻擊
下一篇
Windows Server 2019 如何安裝 Mail Server,使用 hMailServer 來管理收發信
系列文
自架 Windows Server,打造你的專業 WordPress 部落格30

尚未有邦友留言

立即登入留言