數據的備份理論及備份工具小結

        數據備份的時候必須保證備份的數據和原數據的一致性,否則備份的數據將不能使用

數據備份的類型:

從備份的邏輯來說:

       邏輯備份(logical export):備份的是數據庫的邏輯結構,大多數備份的是SQL語句,並不是數據本身,邏輯備份的粒度很小,能夠備份表中的行,保存的結果爲純文本文件,具有很強的兼容性,備份和還原的時候不依賴存儲引擎的種類,
        缺點:
              RDBSM會對主機產生壓力
              備份的文件比原來的文件大(最好在備份之後進行壓縮)
              可能丟失浮點數的精度信息

      物理備份:也叫裸備份,備份數據庫的數據文件本身,最小粒度只能到表

              備份速度的快慢和存儲引擎的類型的關係:

                    對於非事務引擎來說,邏輯備份比物理備份速度快
                    對於innodb等事務引擎來說,物理備份比邏輯備份快

從備份的數據集來說:

        完全備份:對數據庫中所有的內容全部進行備份,也就是全庫備份
        增量備份:只備份從上次的完全備份和增量備份以來改變的數據
        差異備份:只備份從上次完全備份以來改變的數據

        一般情況下使用兩種備份方法的結合,如:完全+差異,完全+增量

       從數據恢復的角度來看,使用完全和差異結合的備份方法是最安全的

從備份時服務器是否需要停機來說:

(1)冷備(cold):乾淨的關閉服務之後才進行備份

(2)溫備(warm):數據庫服務在線,但用戶只能讀取數據不能寫入數據

(3)熱備(hot):服務在線,不影響用戶讀寫數據,但是不支持事務的引擎是不能完整支持熱備的,通過使用LVM來備份,也僅僅能夠幾乎達到熱備的效果。對於innodb等事務存儲引擎可以使用LVM來實現熱備,也可以通過官方提供的熱備工具來輕鬆實現

 

說完了備份的理論,我們就來看看常用的mysql數據備份工具有哪些,以及他們的利與弊:

(1)mysqldump

          用來實現邏輯備份,適合所有的類型的存儲引擎,除對innodb等事務存儲引擎之外都只能實現溫備,要對innodb等事務存儲引擎實現熱備需要其他的工具備份來輔助,備份速度爲中速,還原速度非常慢,但還原的時候能對還原控制的彈性比較大

(2)SELECT INTO OUTFILE
         通過mysql的SQL語句來備份,只能實現溫備,不能區別引擎的類型,備份速度慢,恢復速度也很慢

(3)mk-parallel-backup
          這個工具並不是系統自帶的,需要進行安裝,能夠在多顆cpu的mysql主機上實現並行備份,備份速度中等,恢復速度中等

(4)ibbackup
          能夠對innodb等事務存儲引擎實現熱備,但這需要官方授權,授權費大概爲每個主機5000美元

(5)filesystem 
          備份和恢復速度很快,跨平臺能力很有限,只能實現冷備

(6)snapshot 
          基於快照的物理備份,能夠實現接近熱備,速度比較快,需先對備份的內容添加讀鎖,創建完快照之後立刻解除讀鎖,整個過程隻影響數據庫幾秒鐘的時間,所以說是幾乎接近熱備,實現基於快照的備份文件系統主要有兩種LVM、ZFS
          LVM不支持對多個捲進行性同時間做快照,所以想要使用快照進行備份數據的話,在架設mysql服務的時候就要將數據文件和事務日誌放在同一個邏輯卷中,並且在備份使用Innodb存儲引擎時要確保下列選項處於向對應的狀態
         SHOW VARIABLES LIKE ‘log_bin’ ON 
         SHOW VARIABLES LIKE ‘sync_binlog’ =1 SET GLOBAL sync_linlog=1
         SHOW VARIABLES LIKE ‘innodb_support_xa’ ON 事物日誌的刷寫 
          ZFS能夠同時對多個邏輯捲進行備份,所以不必將需要備份的東西放在同一個邏輯捲上,功能更加強大,現在linux已經完全能夠支持ZFS了。

(7)mysqlhotcopy: 幾乎是冷備,只能用myisam引擎,物理備份,速度比較快

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章