數據庫備份文件,例如保存為:dump_msyql.bat
REM 數據庫備份
@echo offREM 激活延遲環境變量擴展,防止變量賦值丟失
setlocal enabledelayedexpansionREM 獲取當天時間
set today=%date:~8,2%REM 大前天,當天-3天,小于10,前面補0
set /a daysAgo=%today%-3
if %daysAgo% lss 10 (set daysAgo=0%daysAgo%
)REM 獲得年+月,例如:202306
set date=%date:~0,4%%date:~5,2%REM 今天要備份的目錄
set today_dir=MySQL_Backup\%date%%today%REM 三天前要刪除的備份目錄
set ago_dir=MySQL_Backup\%date%%daysAgo%REM 創建今天備份的目錄
if not exist %today_dir% (mkdir %today_dir%
)REM 靜默刪除3天前的備份
if exist %ago_dir% (rd /s /q %ago_dir%
)set dbs=MySQL_DbName1 MySQL_DbName2 MySQL_DbNameN
for %%i in (%dbs%) do (REM 將SQL腳本備份為壓縮文件,需要安裝 gzip 壓縮程序并設置環境變量(大數據量推薦采用壓縮)。mysqldump.exe -uroot -pDatabasePassword %%i | gzip.exe > %today_dir%\%%i.sql.gzREM 將SQL腳本備份為原始文件大小(小數據量推薦采用非壓縮)。REM mysqldump.exe -uroot -pDatabasePassword %%i > %today_dir%\%%i.sql
)pause
數據庫還原文件,例如保存為:restore_msyql.bat
REM 數據庫還原
@echo off
setlocal enableDelayedExpansionset dbs=MySQL_DbName1 MySQL_DbName2 MySQL_DbNameN
for %%i in (%dbs%) do (REM mysql.exe -h127.0.0.1 -P3306 -uroot -pDatabasePassword -e "CREATE DATABASE IF NOT EXISTS `%%i` DEFAULT CHARACTER SET utf8 REM COLLATE utf8_general_ci;"REM 非解壓縮還原。mysql.exe -h127.0.0.1 -P3306 -uroot -pDatabasePassword %%i < D:\MySQL_Backup\%%i.sqlREM 解壓縮還原。REM gzip -d < D:\MySQL_Backup\%%i.sql.gz | mysql -uroot -pDatabasePassword %%i
)
pause