可以配置群組複製分散式復原程序的幾個方面,以符合您的系統需求。
對於從二進位日誌進行狀態傳輸,群組複製會限制加入成員在嘗試從捐贈者集區連線至捐贈者時的嘗試次數。如果達到連線重試限制而沒有成功連線,分散式復原程序將終止並出現錯誤。請注意,此限制指定加入成員嘗試連線至捐贈者的總次數。例如,如果 2 個群組成員是適合的捐贈者,且連線重試限制設定為 4,則加入成員會在達到限制之前,嘗試連線至每個捐贈者 2 次。
預設的連線重試限制為 10。您可以使用 group_replication_recovery_retry_count
系統變數來配置此設定。以下指令會將連線至捐贈者的最大嘗試次數設定為 5
mysql> SET GLOBAL group_replication_recovery_retry_count= 5;
對於遠端複製作業,此限制不適用。群組複製在開始嘗試從二進位日誌傳輸狀態之前,只會對每個適合的複製捐贈者進行一次連線嘗試。
對於從二進位日誌進行狀態傳輸,group_replication_recovery_reconnect_interval
系統變數定義分散式復原程序在捐贈者連線嘗試之間應睡眠多少時間。請注意,分散式復原並非在每次捐贈者連線嘗試後都睡眠。由於加入成員是連線至不同的伺服器,而不是重複連線至同一台伺服器,因此它可以假設影響伺服器 A 的問題不會影響伺服器 B。因此,分散式復原只會在它遍歷過所有可能的捐贈者之後才會暫停。一旦加入群組的伺服器嘗試連線至群組中每個適合的捐贈者一次,分散式復原程序就會睡眠 group_replication_recovery_reconnect_interval
系統變數所配置的秒數。例如,如果 2 個群組成員是適合的捐贈者,且連線重試限制設定為 4,則加入成員會嘗試連線至每個捐贈者一次,然後睡眠連線重試間隔,然後在達到限制之前,再嘗試連線至每個捐贈者一次。
預設的連線重試間隔為 60 秒,您可以動態變更此值。以下指令會將分散式復原捐贈者連線重試間隔設定為 120 秒
mysql> SET GLOBAL group_replication_recovery_reconnect_interval= 120;
對於遠端複製作業,此間隔不適用。群組複製在開始嘗試從二進位日誌傳輸狀態之前,只會對每個適合的複製捐贈者進行一次連線嘗試。