1. 程式人生 > 實用技巧 >MySQL學習筆記(27):備份與恢復

MySQL學習筆記(27):備份與恢復

本文更新於2020-05-03,使用MySQL 5.7,作業系統為Deepin 15.4。

目錄

MySQL的備份分為邏輯備份和物理備份,物理備份分為冷備份和熱備份。恢復分為完全恢復和不完全恢復,不完全恢復又分為基於時間點的恢復和基於位置的恢復。

邏輯備份和恢復

使用mysqldump進行邏輯備份,如mysqldump dbname > filename

為了保證資料備份的一致性,MyISAM儲存引擎需加上-l引數,如InnoDB等事務儲存引擎應加上--single-transaction。

恢復包括兩個步驟:

  1. 使用備份資料恢復,如mysql dbname < backupfilename
  2. 將備份後至恢復前的日誌重做(不要把上一步執行時的二進位制日誌也重做了),如mysqlbinlog logfilename | mysql dbname。可進行不完全恢復,但要注意是否包含完整的事務,如mysqlbinlog --start-date=start logfilename | mysql dbnamemysqlbinlog --start-position=position logfilename | mysql dbname

物理備份和恢復

冷備份和恢復

冷備份就是停掉資料庫服務,拷貝資料檔案。

熱備份和恢復

對MyISAM儲存引擎,熱備份可使用mysqlhotcopy

,本質就是將要備份的表加讀鎖,然後拷貝資料檔案。

對InnoDB儲存引擎,可安裝使用ibbackup、Xtrabackup(包括xtrabackup和innobackupex兩個主要工具)等工具。

表資料匯入匯出

表資料匯出有兩種方法:

  • 使用SELECT ... INTO OUTFILE filename [options]
  • 使用mysqldump -T

表資料匯入有兩種方法:

  • LOAD DATA [LOCAL] INFILE filename INTO TABLE tablename [options]
  • mysqlimport dbname filename