大家好!
請問各位前輩,大家的 MySQL 都是如何做到即時備援的?
譬如:現有兩台 MySQL,若其中一台掛了,希望另一台會立即自動接手。
我查了 Google,有看到用 MySQL Cluster 來做,或透過 MySQL 內建功能
Replication 來做(由一端設 Master 另一端設 Slave 來同步資料),小
弟沒有這方面的經驗,希求教各位前輩或高手,指點迷津一下,感激不盡,
謝謝。
mysql的replication是非同步的,所以有風險。做起來是不難,只要簡單設定好就會動了。可以參考Study Area上面的教學:
http://www.study-area.org/tips/mysql_replication.htm
但這只是資料有一些備份,並不是即時備援。Mysql Cluster如上述,有一些硬體條件限制,你必須評估看看。
另一種方法是使用一些Linux HA的方法,例如Heartbeat,mysql官網有一些參考資料:
http://dev.mysql.com/doc/refman/5.0/en/ha-overview.html
這個方法包括使用heartbeat以及一個分散式的區塊裝置叫做DRBD。我沒用過這個方法,所以如果試出來的話,也跟大家分享一下吧。
Mysql Cluster只是一個storage engine,還需要有額外的mysql server來做query,也可以考慮在這個server透過heartbeat來做即時備援。
我很久以前試過mysql cluster,也可以參考一下:
http://www.ithome.com.tw/plog/index.php?op=ViewArticle&articleId=1015&blogId=257
http://www.ithome.com.tw/plog/index.php?op=ViewArticle&articleId=1176&blogId=257
如果覺得經費、備援、保全、硬體枝節上很麻煩的話,Amazon 現在的 AWS EC2 除過去支援雲儲存外,有支援透過雲資料庫去支援叢集資料庫,MySQL 資料庫有放在支援行列。最低等級是一年 $599 美金。詳情請看:
http://www.mysql.com/products/enterprise/ec2.html
MySQL Enterprise for Amazon EC2
http://aws.amazon.com/simpledb/
Amazon SimpleDB
MySQL 的備援,可以參考這個free的軟體『symmetricDs』:
官方網站:http://symmetricds.codehaus.org/
它的作法是設定將來源的資料,利用trigger的方式,做到資料同步的處理,
只是,它是透過Java的程式設計達到資料同步。
以備援的角度來說,效果不如MySQL Cluster或者replication,但是,可以拿來做其他的應用,例如資料的發佈、資料自動回存至資料中心等等。