Mysql

MySQL 集群複製和故障轉移通過 docker-compose

  • December 4, 2020

我正在使用 docker-compose 創建 MySQL 集群(NDB)。創建集群後。這是我的集群配置:

ndb_mgm> show
Connected to Management Server at: mysql-manager-1:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=11   @172.xx.0.5  (mysql-5.7.25 ndb-7.6.9, Nodegroup: 0, *)
id=12   @172.xx.0.8  (mysql-5.7.25 ndb-7.6.9, Nodegroup: 0)

[ndb_mgmd(MGM)] 2 node(s)
id=1    @172.xx.0.2  (mysql-5.7.25 ndb-7.6.9)
id=2    @172.xx.0.3  (mysql-5.7.25 ndb-7.6.9)

[mysqld(API)]   2 node(s)
id=21   @172.xx.0.4  (mysql-5.7.25 ndb-7.6.9)
id=22   @172.xx.0.7  (mysql-5.7.25 ndb-7.6.9)

當我關閉其中一個 SQL 節點時,集群變得無法訪問。

例如,當 id=21 的節點關閉時,仍然可以從節點 id=22 訪問數據,因為所有其他數據節點和管理節點都已啟動並執行。

這種行為是開箱即用的,還是我必須對其進行一些配置更改?

我已經閱讀了 MySQL文件

我指的是正確的文件嗎?

他們建議在主機上執行這些步驟,但在我的情況下,每個節點都部署為一個單獨的 docker 容器。在我的情況下,如何實現此故障轉移?

您可能已經設置了複製,但故障轉移不會神奇地自行發生。你還需要

  1. 某種集群管理器來通知故障並啟動故障轉移過程。
  2. 完成故障轉移過程並確保新的主節點可操作。這裡描述了部分過程。
  3. 浮動 IP 地址或某種連接代理,用於將傳入連接定向到新的主伺服器。

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