MySQL冷備份過程

maxingyu發表於2021-05-15

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 協議》,轉載必須註明作者和本文連結

相關文章