冷備份 指完全停止 MySQL 服務後,直接複製資料目錄檔案的備份方式。特點:
-- 建立測試資料 CREATE DATABASE larrydb; USE larrydb; CREATE TABLE class (cid INT, cname VARCHAR(30)) ENGINE=InnoDB; CREATE TABLE stu (sid INT, sname VARCHAR(30), cid INT) ENGINE=MyISAM; INSERT INTO class VALUES (1,'linux'),(2,'oracle'); INSERT INTO stu VALUES (1,'larry01',1),(2,'larry02',2);
/etc/init.d/mysqld stop
mkdir /databackup chown -R mysql:mysql /databackup
cd /databackup tar -cvPzf mysql01.tar.gz /usr/local/mysql/data/
-c 建立新檔-v 顯示過程-P 保留絕對路徑-z gzip 壓縮-f 指定檔名rm -rf /usr/local/mysql/data/*
此時嘗試啟動 MySQL 會失敗:ERROR! The server quit without updating PID file
tar -xvPf mysql01.tar.gz
-x 解壓、-v 顯示、-P 保留絕對路徑、-f 指定檔案
/etc/init.d/mysqld start mysql -e "USE larrydb; SELECT * FROM class; SELECT * FROM stu;"
輸出顯示資料完整回覆,冷備份成功。
| 資料庫規模 | 建議策略 |
|---|---|
| < 10 GB | 冷備份可接受,停機時間可控 |
| 10 - 100 GB | 建議改用 LVM 快照或 mysqldump --single-transaction |
| > 100 GB | 必須採用物理熱備份,冷備份不切實際 |
tar -P 可保留絕對路徑與權限,還原後無需額外 chown。--exclude='*.pid' --exclude='*.err' 減少備份體積。cron + scp/rsync 異地備份,並保留多代版本(如每日保留 7 天、每週保留 4 週、每月保留 12 月)。核心觀念: 冷備份是備份體系的基石,雖然生產環境鮮用於主庫,但極適合作為「最後防線」的離線備份副本,配合定期還原演練,構建多層次資料保護策略。