2012-02-06 100 views
2

我一直在閱讀關於通過使用lvm mysql備份 我知道你創建一個lvm分區併爲mysql分配一個特定的大小,爲快照留下足夠的空間。lvm mysql備份

我讀到的好處是備份非常快。

是否有任何缺陷要注意或缺點?

感謝

回答

5

使用LVM快照運行啓用可導致I/O性能降低高達6倍。

http://www.mysqlperformanceblog.com/2009/02/05/disaster-lvm-performance-in-snapshot-mode/

我建議使用Percona XtraBackup作爲一個更好的熱備份工具(聲明:我Percona的工作)。

+0

感謝您的文章。沒有遇到那個。很有意思。然而,關於備份,我正在尋找一些免費的東西 – Thomas 2012-02-06 20:06:29

+0

@Thomas,Percona XtraBackup是免費的,根據GNU公共許可證授權。 Percona是開源免費軟件的倡導者。 – 2012-02-06 21:01:02

+0

嗨比爾。對不起,我的拉丁評論。我的錯。肯定會考慮你的解決方案。再次感謝 – Thomas 2012-02-07 12:02:28

2

在某些情況下,InnoDB的LVM快照非常可怕。爲什麼?

如果您有innodb_file_per_table禁用,ibdata1將包含所有內容和它的祖母。什麼生活在ibdata1?四件事情:

  • 數據頁
  • 索引頁
  • 元數據(如TableSpave ID列表)
  • MVCC Data

如果你想在一個重鏈執行LVM快照用innodb_file_per_table寫入數據庫環境,你可能會在腳下拍攝自己。 LVM快照需要事先將ibdata1文件妥善保存。

我最近如下而進行的試驗:

客戶端在我的僱主的網絡託管公司擁有自己的MySQL安裝了以下問題:

  • innodb_file_per_table關閉
  • 1.4TB ibdata1中
  • ibdata1中只有29GB的空間
  • ext3文件系統(單個文件大小限制2GB,yuck)

I wanted to setup a MySQL Slave by rsycning the /var/lib/mysql folder to another DB Server。在沒有停機的情況下在ibdata1上完成rsync時,耗時42小時。針對ibdata1的第二個rsync花費了84個小時,僅發現了220GB的更改,僅僅完成了15%。我放棄了這個使命。

LVM快照可能會更好地執行rsync。儘管如此,任何涉及非常大的ibdata1的LVM快照都將受到相同的問題影響。

如果你使用LVM快照去,請使用這些選項:

  • OPTION 01)使用innodb_file_per_table。 LVM快照會愛你,因爲它會處理較小的文件。 You can also permanently shrink ibdata1
  • OPTION 02)在從使用MySQL複製,做LVM快照

隨着MySQL的複製從,你可以

  • STOP SLAVE;(如果你有--skip-從開始我.CNF)
  • service mysql stop
  • 執行LVM snpshot
  • service mysql start
  • START SLAVE;(如果你有在my.cnf --skip-從開始)

這樣一來,這些LVM快照問題將永遠不會看到一個製作師傅出頭之日。

試一試,玩得開心!

+0

偉大的洞察力。謝謝。 – Thomas 2012-02-06 19:57:04

+0

我認爲LVM快照的重點在於從設備(或主設備)不需要以任何方式停止。只有所有的表都通過讀鎖定刷新到磁盤,此時可以創建LVM快照並釋放讀鎖。是不是這樣,羅蘭多? – rinogo 2016-12-28 20:08:23