| 方案 | 類型 | 停機 | 速度 | 空間 | 適用場景 |
|---|---|---|---|---|---|
| xcopy 資料目錄 | 物理冷備份 | 需停服務 | 快 (檔案級) | 大 (含索引、碎片) | 無管理經驗、可接受短暫停機 |
| mysqldump SQL | 邏輯熱備份 | **無停機** | 中 (單執行緒) | 中 (純 SQL、可壓縮) | **生產標準**、需點對點恢復 |
| WinRAR 壓縮 | 物理/邏輯混合 | 視內部方式 | 慢 (壓縮 CPU) | 小 (高壓縮比) | 備份窗口寬鬆、極度壓縮需求 |
@echo off
net stop mysql
xcopy C:\MySQL\data\bbs\*.* C:\db_bak\bbs\%date:~0,10%\ /S /I
net start mysql
@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" -- 組合 YYYYMMDD
C:\MySQL\bin\mysqldump --opt -u root --password=123456 bbs > D:\db_backup\bbs_%Ymd%.sql
@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
"C:\Program Files\WinRAR\WinRAR.exe" a -afzip -ep1 -r -df -ibck
D:\db_backup\bbs_%Ymd%.zip
C:\MySQL\data\bbs
-- PowerShell (最穩健)
$date = Get-Date -Format "yyyyMMdd"
$file = "bbs_$date.sql"
-- CMD 穩健寫法 (WMIC 不受地區影響)
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value') do set dt=%%I
set Ymd=%dt:~0,8%
選擇 **mysqldump + 單交易 + 壓縮 + 排程 + 驗證** 作為基線,物理備份 (xtrabackup/xcopy) 作為補充,構建分層備份體系。