MySQ數據備份

MySQL備份概述

問題:備份和冗餘有什麼區別?mysql

  • 備份:可以防止因爲機械故障以及人爲操做帶來的數據丟失,例如將數據庫文件保存在了其它地方。
  • 冗餘:數據有多份冗餘,但不等於備份,只能防止機械故障帶來的數據丟失,例如主備模式、數據庫集羣。

備份是什麼?sql

 databases     Binlog  my.cnf       /data/xxx(數據目錄)數據庫

備份數據庫,還有日誌文件,還有配置文件,儘量將數據目錄裏面的文件所有備份。多線程

備份過程當中必須考慮因素:工具

  • 一、必須制定詳細的備份計劃(備份頻率、時間點、週期)(根據當前的業務狀況,須要考慮備份的時間和備份數據的大小。數據量太大的話就使用冗災)。
  • 二、備份數據應該放在非數據庫本地,並建議有多份副本
  • 三、必須作好數據恢復的演練(每隔一段時間,對備份的數據在測試環境中進行模擬恢復,保證當出現數據災難的時候可以及時恢復數據。)(保證數據的可用性)備份完成後進行斷電模擬演練。測試數據庫是否能夠正常啓動,數據可否正常進行恢復。
  • 四、根據數據應用的場合、特色選擇正確的備份工具。
  • 五、數據的一致性。
  • 六、數據的可用性。

備份類型

邏輯備份

邏輯備份就是在不停業務的狀況下進行備份。測試

備份的是建表、建庫、插入等操做所執行SQL語句(DDL DML DCL),適用於中小型數據庫,效率相對較低。this

(通常在數據庫正常提供服務的前提下進行的);如:mysqldump、mydumper、 into outfile(表的導出導入)等spa

物理備份

直接複製數據庫文件,適用於大型數據庫環境,不受存儲引擎的限制,但不能恢復到不一樣的MySQL版本。.net

(通常在數據庫完全關閉或者不能完成正常提供服務的前提下進行的備份);如:tar、cp、xtrabackup、lvm snapshot等線程

在線熱備

在線熱備:AB複製(在線實時)(指的是對數據的冗餘)

M-S

M-Sn

M-S1-S2

M-M-Sn

備份工具

社區版安裝包中的備份工具

mysqldump

  • 企業版和社區版都包含
  • 本質上使用SQL語句描述數據庫及數據並導出
  • 在MYISAM引擎上鎖表,Innodb引擎上鎖行
  • 數據量很大時不推薦使用

mysqlhotcopy

  • 企業版和社區版都包含
  • perl寫的一個腳本,本質上是使用鎖表語句再拷貝數據
  • 只支持MYISAM數據引擎

企業版安裝包中的備份工具

mysqlbackup

  • 在線備份
  • 增量備份
  • 部分備份
  • 在某個特定時間的一致性狀態的備份

第三方備份工具

XtraBackup和innobackupex

Xtrabackup是一個對InnoDB作數據備份的工具,支持在線熱備份(備份時不影響數據讀寫),是商業備份工具InnoDB Hotbackup的一個很好的替代品

Xtrabackup有兩個主要的工具:xtrabackup、innobackupex

  • xtrabackup只能備份InnoDB和XtraDB兩種數據表,不能備份myisam類型的表,也不能備份數據表結構。
  • innobackupex是將Xtrabackup進行封裝的perl腳本,因此能同時備份處理innodb和myisam的存儲引擎,但在處理myisam時須要加一個讀鎖

mydumper

mydumper 多線程備份工具

https://launchpad.net/mydumper/mydumper-0.9.1.tar.gz 2015-11-06(最後更新時間)

備份方法

徹底備份

增量備份

 

差別備份

差別增量備份

 

 • Sunday
An incremental level 0 backup backs up all blocks that have ever been in use in this database.

• Monday through Saturday
On each day from Monday through Saturday, a differential incremental level 1 backup backs up all blocks that have changed since the most recent incremental backup at level 1 or 0. The Monday backup copies blocks changed since Sunday level 0 backup, the Tuesday backup copies blocks changed since the Monday level 1 backup, and so forth.

累計增量備份

• Sunday
An incremental level 0 backup backs up all blocks that have ever been in use in this database.

• Monday - Saturday
A cumulative incremental level 1 backup copies all blocks changed since the most recent level 0 backup. Because the most recent level 0 backup was created on Sunday, the level 1 backup on each day Monday through Saturday backs up all blocks changed since the Sunday backup.

 

須要掌握的備份方法:

邏輯數據的導入導出(into outfile)mysqldump、mysqlhotcopy、xtrabackup和innobackupex
lvm-snapshot、mysqlbackup

相關文章
相關標籤/搜索