MySQL冷備份過程
把mysql的資料檔案打包並壓縮即可,要恢復的時候再把相應的檔案拷過去覆蓋就行了。
冷備份實際上是最簡單的備份方式(好吧,第一次我就差點把資料庫搞崩潰了),但由於要求停止MySQL服務來進行備份和恢復,並且只能完整備份,所以實用性並不高。
備份
首先,進入資料庫並找出資料檔案存放目錄:
mysql> show variables like ‘%dir%‘;
| Variable_name | Value |
| — | — |
| basedir | /usr |
| binlog_direct_non_transactional_updates | OFF |
| character_sets_dir | /usr/share/mysql/charsets/ |
| datadir | /var/lib/mysql/ |
| innodb_data_home_dir | |
| innodb_log_group_home_dir | ./ |
| innodb_max_dirty_pages_pct | 75 |
| lc_messages_dir | /usr/share/mysql/ |
| plugin_dir | /usr/lib/mysql/plugin/ |
| slave_load_tmpdir | /tmp |
| tmpdir | /tmp |
+—————————————–+—————————-+
11 rows in set (0.00 sec)
資料目錄就是datadir的所在位置,即/var/lib/mysql/
然後執行:
cd /var/lib/ # 進入其上級目錄
service mysql stop # 關閉mysql服務,這裡我其實並沒有關閉,但我沒有在高 資料量下測試過
tar jcvf ~/backup.tar.bz2 mysql/ # 打包壓縮該目錄到根目錄
恢復
執行如下命令即可:
cd ~/ # 進入備份檔案的儲存目錄
tar jxvf backup.tar.bz2 mysql/ # 解壓
gunzip -r mysql/ # 遞迴解壓
service mysql stop # 必須先關閉服務
rm -r /var/lib/mysql/ # 刪除原目錄
mv ~/mysql/ /var/lib/ # 把備份的檔案移動到/var/lib/裡面去替代原來的mysql
service mysql start # 重啟mysql服務
需要注意的是恢復過後,就和原來資料庫一模一樣了,包括所有的修改和帳號密碼等資訊。
本作品採用《CC 協議》,轉載必須註明作者和本文連結