MySQL 冷備、也叫離線備份
是最簡單:
● 備份簡單:只要拷貝相關檔案即可
● 恢複簡單:只需把拷貝的檔案放在同一個目錄即可
也是最安全:
● 擷取資料一致性副本的方法中最優的一種
那麼、該備份哪些檔案呢?下面以InnoDB 為例:
① frm 檔案
表結構定義檔案、不過、視圖的定義也在裡面
② 共用資料表空間檔案
預設是、ibdata1、如果之後調整、記得把之前ibdata1刪掉、否則會報錯
受制於 2 個參數:
● innodb_data_home_dir
● innodb_data_file_path
mysql> show variables like '%data%';+----------------------------+------------------------------------+| Variable_name | Value |+----------------------------+------------------------------------+| character_set_database | latin1 || collation_database | latin1_swedish_ci || datadir | /home/mysql/mysql/data/ || innodb_data_file_path | ibdata1:50M;ibdata2:50M:autoextend || innodb_data_home_dir | /home/mysql/mysql/ibdata |
③ 獨立資料表空間檔案(*.ibd)
受制於 2個參數
● innodb_file_per_table
● datadir <==這是個全域參數、好像很多檔案都和他有染
④ 重做記錄檔
預設會有 2 個:ib_logfile0 和 ib_logfile1
被 4 個參數影響:
● innodb_log_file_size:日誌成員的大小
● innodb_log_files_in_group:日誌成員的數量
● innodb_mirrored_log_groups:日誌組的數量
● innodb_log_group_home_dir:日誌組的路徑
⑤ 設定檔
my.cnf或my.ini
友情提醒:
① 如果設立了獨立資料表空間、共用資料表空間仍然需要備份!因為、
獨立資料表空間僅儲存資料、索引等資訊、其餘的依然放在共用資料表空間
② 如果以上參數都是預設、僅僅只是設定了 datadir 、那麼只要備份這個目錄下的檔案即可
在備份中、我們需要注意哪些呢?
① 不要遺漏任何上面提到的物理檔案
② 注意磁碟空間的大小
③ 將本地的備份鏡像一份到遠程
有個小技巧、
如果覺得 關閉伺服器來做冷備 代價太大、而且、預熱也慢、那麼可以、
kill -19 :發送一個 STOP 訊號給 MySQL 、
然後、做備份
然後、再 kill -18發送一個 CONT 訊號喚醒 MySQL
By David Lin
2013-06-09
Good Luck