C:\MySQL (已加入 PATH)D:\backup_20240115.sqlmysqldump -uroot -p123456 database_name > D:\backup_20240115.sql
壓縮:
mysqldump -uroot -p123456 database_name | gzip > D:\backup_20240115.sql.gz
REM 1. 刪除舊庫 (可選)
mysqladmin -uroot -p123456 DROP database_name
REM 2. 建立新庫
mysqladmin -uroot -p123456 CREATE database_name
REM 3. 匯入
mysql -uroot -p123456 database_name < D:\backup_20240115.sql
REM 4. 壓縮檔匯入
gunzip < D:\backup_20240115.sql.gz | mysql -uroot -p123456 database_name
CREATE DATABASE 時,還原前可不手動建庫mysql --max_allowed_packet=1G ...--default-character-set=utf8mb4,還原時同字元集REM 1. 鎖表並刷盤
mysql -uroot -p123456 -e "FLUSH TABLES WITH READ LOCK;"
REM 2. 複製 data 目錄 (xcopy/robocopy)
xcopy C:\MySQL\data\database_name D:\backup_physical\ /E /I /H
REM 3. 解鎖
mysql -uroot -p123456 -e "UNLOCK TABLES;"
REM 建立 backup.bat
@echo off
set DATE=%date:~-4,4%%date:~-10,2%%date:~-7,2%
mysqldump -uroot -p123456 --single-transaction --routines --triggers database_name > D:\backup_%DATE%.sql
REM 保留 7 天
forfiles /p D:\ /m backup_*.sql /d -7 /c "cmd /c del @path"
REM 計劃任務:每日 02:00 執行 backup.bat
REM 定期在測試環境還原驗證
mysqladmin -uroot -p123456 CREATE verify_db
mysql -uroot -p123456 verify_db < D:\backup_latest.sql
mysql -uroot -p123456 -e "CHECKSUM TABLE verify_db.tbl;"