MySQL學習筆記(27):備份與恢復
阿新 • • 發佈:2020-07-29
本文更新於2020-05-03,使用MySQL 5.7,作業系統為Deepin 15.4。
目錄
MySQL的備份分為邏輯備份和物理備份,物理備份分為冷備份和熱備份。恢復分為完全恢復和不完全恢復,不完全恢復又分為基於時間點的恢復和基於位置的恢復。
邏輯備份和恢復
使用mysqldump進行邏輯備份,如mysqldump dbname > filename
。
為了保證資料備份的一致性,MyISAM儲存引擎需加上-l引數,如InnoDB等事務儲存引擎應加上--single-transaction。
恢復包括兩個步驟:
- 使用備份資料恢復,如
mysql dbname < backupfilename
- 將備份後至恢復前的日誌重做(不要把上一步執行時的二進位制日誌也重做了),如
mysqlbinlog logfilename | mysql dbname
。可進行不完全恢復,但要注意是否包含完整的事務,如mysqlbinlog --start-date=start logfilename | mysql dbname
或mysqlbinlog --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
。