Mysql

當主數據庫沒有響應時自動提升只讀副本的方案

  • June 8, 2016

我想設置如下場景:

  1. 設置 RDS 事件訂閱$$ that the MySQL is unresponsive $$
  2. 將發佈到 SNS 主題
  3. 這將觸發 Lambda 函式
  4. 這將執行一個提升只讀副本的腳本$$ in another region $$掌握

這樣的案例可行嗎?

我應該監控哪個數據庫指標以確認數據庫沒有響應並且沒有誤報?

自動升級只讀副本會不會很危險?此類操作是否應該保持手動並僅添加警報?

當心裂腦

當問題出在網路中時,將一個 Slave 提升為 Master 的難題就發生了。在死網的情況下,大多數類型的監控都會錯誤地認為 Master 死了,並提升了 Slave。現在您將擁有兩個伺服器並認為它們是“主人”。這種情況被稱為可怕的“裂腦”。很快,客戶端會插入重複的鍵和/或生成重複的 auto_increment id。數據損壞可能很糟糕。

MHA 通過在確定奴隸安全時提升奴隸來解決它。如果問題可能是網路故障,它就會失敗。

Galera 完全解決了這個問題,它要求一定數量的節點投票決定他們擁有多數。然而,這需要 3 個節點,最好在 3 個地理位置。(想想洪水、颶風、地震等)所有節點都是可寫的(這是 Galera 的另一個特性)。Galera 內置於 MariaDB 和 PXC 中。

引用自:https://dba.stackexchange.com/questions/140214