傳統主從復制是單向異步,寫入只能走主庫,從庫只讀,切換延遲、數據不一致風險高。**Galera Cluster (wsrep API)** 通過**認證式同步復制**,實現多節點**同時讀寫、強一致性、自動故障轉移**,是 MySQL 高可用架構的主流選擇。本文記錄三節點部署全流程(MariaDB 10.0 + Galera 3),含配置細節、啟動順序、驗證命令。
# 依賴 yum -y install boost-devel scons check openssl-devel # 編譯 cd galera-3-xx ./scripts/build.sh # 產出 libgalera_smm.so,複製到 MySQL plugin 目錄或指定路徑
my.cnf (wsrep 參數)三節點配置文件 my11.cnf、my21.cnf、my31.cnf,差異僅在 wsrep_node_address 與端口。
[mysqld] # 基礎 server_id=11 # 每節點唯一 bind_address=0.0.0.0 port=14011 # 14011/14021/14031 datadir=/data/mysql11 socket=/tmp/mysql11.sock # Galera 核心 wsrep_provider=/path/to/libgalera_smm.so wsrep_cluster_address='gcomm://192.168.1.8:24011,192.168.1.8:24021,192.168.1.8:24031' wsrep_node_address='192.168.1.8:24011' # 本節點 IP:Galera端口(非MySQL端口) wsrep_cluster_name='my_galera_cluster' wsrep_sst_method=rsync # 狀態傳輸方式:rsync/xtrabackup-v2 wsrep_node_name='node11' # InnoDB 優化 (Galera 必須 InnoDB) default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 # 2 = interleaved,Galera 要求 innodb_flush_log_at_trx_commit=1 binlog_format=ROW # 必須 ROW 格式
scripts/mysql_install_db --defaults-file=etc/my11.cnf scripts/mysql_install_db --defaults-file=etc/my21.cnf scripts/mysql_install_db --defaults-file=etc/my31.cnf
bin/mysqld_safe --defaults-file=etc/my11.cnf --wsrep_cluster_address=gcomm:// &
gcomm:// 空列表意味著**引導新集群**,成為 Primary Component。
bin/mysqld_safe --defaults-file=etc/my21.cnf &
bin/mysqld_safe --defaults-file=etc/my31.cnf &
--wsrep_cluster_address=gcomm://,直接用配置文件參數即可自動加入現有集群。七、關鍵狀態變量檢查
SHOW VARIABLES LIKE 'wsrep_on'; -- ON 表示 Galera 功能啟用 SHOW STATUS LIKE 'wsrep_connected'; -- ON 已連接集群 SHOW STATUS LIKE 'wsrep_ready'; -- ON 可接受 SQL 請求 (最關鍵) SHOW STATUS LIKE 'wsrep_cluster_size'; -- 3 表示三節點全在線 SHOW STATUS LIKE 'wsrep_local_state_comment'; -- Synced 表示數據同步完成八、生產環境避坑清單
garbd 仲裁節點。wsrep_trx_fragment_size (實驗特性)。xtrabackup-v2:非阻塞、增量、速度快;rsync 會阻塞 Donor 節點。wsrep_flow_control_paused (流控比例)、wsrep_local_send_queue/recv_queue (隊列積壓)、wsrep_cluster_status (Primary/Non-primary)。Galera Cluster 將 MySQL 從「單主异步」推向「多主同步」,是高可用架構的關鍵基建。**嚴守三節點奇數、低延遲網絡、InnoDB+ROW格式、xtrabackup-v2 SST、監控流控隊列** 五大鐵律,即可構建穩健的多活數據庫集群。下一步:接入 ProxySQL 實現應用層無感知故障轉移。