簡體   English   中英

MySQL InnoDB 集群實例要求

[英]MySQL InnoDB Cluster Instance Requirement

為什么 MySQL InnoDB 集群需要至少三個實例才能工作? 為什么一個主實例和一個輔助實例還不夠? 例如,這不是 SQL Server 故障轉移群集的工作方式嗎?

你和我在樹林里徒步旅行。 我轉身和你說話,突然意識到你不在那里。 在那種情況下……我們中的哪一個迷失了? 是你嗎? 還是我? 甚至可以定義嗎?

如果一個節點非自願失敗,其余節點必須能夠確認它們是否構成了幸存者的權威仲裁。 否則,它們繼續運行是不安全的,因為它們無法確認自己在集群中的角色。

少於 3 個節點時,如果有一個節點丟失,則剩余的任意數量的節點都不可能形成一個大小等於故障發生前節點數量的大多數(超過一半)的組,並且因此,幸存者的法定人數是不可能的。

對於 3 個節點,如果 1 個發生故障,其余節點仍占故障前節點數的大多數,因為:

let n = 3
(n - 1) > (n × 50%) # true

開始時有兩個節點,丟失一個節點會使另一個節點不確定它是孤立的還是最后一個節點,並且無法確認這一點,因為:

let n = 2
(n - 1) > (n × 50%) # false

https://dev.mysql.com/doc/refman/8.0/en/group-replication-fault-tolerance.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM