MyISAM 表為獨立檔案(.frm、.MYD、.MYI),跨平台相容(機器無關格式)。
# 前提:MySQL 服務完全停止
net stop mysql
# 複製整個 datadir\db_name 目錄到備份位置
xcopy /E D:\MySQL\Data\mydb \\BackupServer\MySQL\mydb_$(date +%Y%m%d)
net start mysql
嚴重限制:
ibdata1)、Redo Log、Undo Log **無法單獨複製單庫**。mysqldump [OPTIONS] database [tables...] > dump.sql
| 參數 | 用途 |
|---|---|
--opt | 綜合開啟:--quick --add-drop-table --add-locks --extended-insert --lock-tables(預設開啟) |
--single-transaction | InnoDB 熱備必加:啟動一致性讀取快照,**不鎖表** |
--master-data=2 | 輸出檔頭記錄 Binlog 位置(註釋形式),用於主從同步起點 |
--routines --triggers --events | 包含存儲過程、觸發器、事件 |
--hex-blob | 二進位欄位以十六進位導出,避免編碼問題 |
--compress | 客戶端/伺服器傳輸壓縮 |
# 生產環境 InnoDB 完整熱備(含主從同步座標)
mysqldump --single-transaction --master-data=2 --routines --triggers --events \
-u backup_user -p --databases db1 db2 > full_backup_$(date +%F).sql
# 僅導出結構(不含資料)
mysqldump --no-data -u root -p db1 > schema_db1.sql
# 僅導出資料(不含建表語句)
mysqldump --no-create-info -u root -p db1 > data_db1.sql
# 1. 建立空資料庫
mysqladmin -u root -p create target_db
# 2. 導入
mysql -u root -p target_db < full_backup.sql
# 或進入 mysql 客戶端
SOURCE /path/to/full_backup.sql;
mysqlbinlog。