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

Windows 環境下 mysqldump 批量備份 MySQL 自動化方案

     編輯:MySQL 資料庫相關知識

針對 Windows 平台,利用 ASP 腳本動態生成 .bat 批次檔,結合 mysqldump 與 WinRAR 實現多庫備份、壓縮、日期歸檔,再配合 Windows 任務計劃器定時執行。

核心邏輯 (ASP 生成備份腳本)

' 配置區
root = "root"
pwd = "123456"
mysql_bin_path = "D:\MySQL\bin"
mysql_path = "D:\MySQL"
mysq_back_temp_path = "D:\MySQLbackuptemp"
mysq_back_path = "D:\MySQLbackup"
winrar_path = "D:\WinRAR"

' 遍歷 MySQL data 目錄下的資料庫資料夾
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set w1 = fso.GetFolder(mysql_path)
For Each bak In w1.SubFolders
  If FolderPermission(bak.Path) Then
    ' 生成 mysqldump 命令
    back_content = back_content & "mysqldump -u" & root & " -p" & pwd & " " & bak.Name & " > " & mysq_back_temp_path & "\" & bak.Name & ".sql" & vbCrLf
    ' 生成 WinRAR 壓縮命令(帶日期、刪除源文件)
    rar_content = rar_content & "rar a -agYYYY-MM-DD -ep1 -df -ibck " & mysq_back_path & "\" & bak.Name & ".rar " & mysq_back_temp_path & "\" & bak.Name & ".sql" & vbCrLf
  End If
Next

' 寫入 backup_MySQL.bat
Call CreateFile("/backup_MySQL.bat", back_content & vbCrLf & rar_content)

關鍵點說明

  • 權限過濾:FolderPermission 函數排除特定目錄(如 guolv)。
  • WinRAR 參數:-agYYYY-MM-DD 自動在檔名加日期;-ep1 排除基礎路徑;-df 壓縮後刪除源文件;-ibck 後台運行。
  • IIS 權限:執行 ASP 的用戶需具備讀取 MySQL 目錄權限。

部署與排程

  1. 將 ASP 放置 IIS 站點目錄,瀏覽器訪問一次生成 backup_MySQL.bat。
  2. 打開「任務計劃器」,創建基本任務,觸發器設為每日,操作選「啟動程序」,程序指向 backup_MySQL.bat。

補充:mysqldump 專用帳號最小權限

若建立專用備份帳號,僅需授予:
GRANT SELECT, LOCK TABLES ON *.* TO 'backup_user'@'localhost' IDENTIFIED BY 'password';

最簡備份替代方案:直接複製數據目錄

停寫鎖表 → 複製 data 目錄 → 解鎖。優點:極快、極簡;缺點:難以實現增量備份、需停寫影響業務。
鎖表命令:FLUSH TABLES WITH READ LOCK;

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved