MySQL多IDC部署的注意事項

來源:互聯網
上載者:User

目前暫時還沒有哪款資料庫產品是專門針對跨IDC進行的最佳化,在理論上被業界認為最優的方案是採用基於Paxos協議(暫時只有google做出了實現,google  f1),今天只討論MySQL在這方面的注意事項:

對於跨IDC的情況基本都會設計到以下問題:

1、MySQL多IDC的資料同步,資料一致性

2、多IDC之間的高可用

3、多IDC的多點寫入問題

4、營運監控

對於MySQL多IDC資料之間的同步問題:

1、MySQL的複製是非同步(對於5.5的半同步來說,還是屬於“非同步”),MySQL同步依賴的因素很多,同步的網路環境,硬體設定,SQL語句是否高效,以及資料量的大小。

在資料量較大的情況下在master和slave端啟用slave-compressed-protocol = 1壓縮模式,網路環境採用專線。可以利用blackhole儲存引擎的MySQL作為relay  server實現級聯複製,這個最好控制在三層內,減少同步的延遲,減少機房之間傳輸的資料量。關於SQL語句,索引不要太多,影響插入速度,注意更新和刪除的問題,如果採用row模式進行複製,資料量是個問題,建議採用mixed模式進行複製。對於即時性要求較高的應用可以允許第一次讀的時候從主庫上讀取。或者在應用端給出等待時間來緩解同步延遲對使用者的影響。

2、對於多IDC中的高可用問題。

本欄目更多精彩內容:http://www.bianceng.cn/database/MySQL/

對於採用relay  server的方式,可以採用兩台server,每隔relay下面都是一個slave叢集。當某個出現問題的時候,可以只訪問另一個slave叢集。

對於採用雙主模式的情況下,這個容災方式比較明顯,每個master下都接一個slave叢集。但對於多IDC部署的話缺點也很明顯,只能使用兩個IDC。

3、多點寫入問題

雙主複製,環狀複製,通過federated引擎都可以實現多點寫入。這個時候對於多點寫入需要考慮自增問題,可通過auto_increment_increment=N(增量值,且N是節點數)和auto_increment_offset=1,2,3,。。。N (初始值)來解決。更新丟失問題。每個master唯寫本機資料,slave擁有全部資料,這個時候資料是以一定次序出現的。利用訊息佇列,資料寫入本機資料庫時也寫入訊息佇列中(本人為涉及到)

4、營運監控問題

監控系統對整個維護過程中起著很重要的作用。為防止在多IDC之間網路環境的影響,最好採用分布式監控,並且每個IDC的監控系統都能獨立工作,可以參考zabbix,ganglia(兩個開源企業級監控系統)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.