溫馨提示×

Debian MariaDB集群如何搭建

小樊
47
2025-09-21 17:57:00
欄目: 云計算

Debian環境下搭建MariaDB Galera Cluster多主集群指南

一、準備工作

  1. 節點規劃:至少準備3臺Debian服務器(如galera-node1、galera-node2、galera-node3),確保IP可達且系統已更新(sudo apt update && sudo apt upgrade -y)。
  2. 軟件要求:所有節點需安裝相同版本的MariaDB(推薦10.3及以上)和Galera provider(如galera-4)。
  3. 網絡配置:關閉SELinux(若啟用)、配置主機名解析(/etc/hosts中添加節點IP與主機名映射),確保節點間SSH免密登錄。

二、安裝MariaDB與Galera組件

在所有節點上執行以下命令,安裝MariaDB Server及Galera provider:

sudo apt install -y mariadb-server mariadb-client galera-4

安裝完成后,MariaDB服務會自動啟動,可通過systemctl status mariadb確認狀態。

三、配置Galera Cluster(以node1為例)

編輯/etc/mysql/mariadb.conf.d/50-server.cnf(或/etc/mysql/conf.d/galera.cnf),添加/修改以下配置:

[mysqld]
# 基礎配置
bind-address = 0.0.0.0  # 允許遠程連接
default-storage-engine = InnoDB  # 必須使用InnoDB引擎
innodb_autoinc_lock_mode = 2  # 支持并行復制
binlog_format = ROW  # 必須使用ROW格式

# Galera集群配置
wsrep_on = ON  # 開啟Galera功能
wsrep_provider = /usr/lib/galera/libgalera_smm.so  # Galera provider路徑(Debian默認路徑)
wsrep_cluster_address = "gcomm://192.168.100.111,192.168.100.112,192.168.100.113"  # 所有節點IP列表(首次啟動需完整)
wsrep_node_address = 192.168.100.111  # 當前節點IP
wsrep_node_name = galera-node1  # 當前節點名稱(自定義,需唯一)
wsrep_cluster_name = MariaDB_Cluster  # 集群名稱(所有節點需一致)
wsrep_sst_method = xtrabackup-v2  # 數據同步方法(推薦xtrabackup-v2,需安裝xtrabackup)

注意wsrep_cluster_address在首次啟動時需包含所有節點IP,后續節點加入時可簡化為gcomm://(由集群自動發現)。

四、啟動集群(node1節點)

  1. 停止MariaDB服務(所有節點均需執行):
    sudo systemctl stop mariadb
    
  2. 在node1上啟動集群
    使用galera_new_cluster腳本啟動第一個節點(該腳本會傳遞--wsrep-new-cluster參數,避免因無其他節點而啟動失?。?pre class="hljs">sudo galera_new_cluster
  3. 驗證node1狀態
    登錄MariaDB,執行以下命令查看集群狀態:
    mysql -uroot -p -e "SHOW STATUS LIKE 'wsrep%';"
    
    關鍵指標說明:
    • wsrep_cluster_size:集群節點數(應為1,后續節點加入后會增加);
    • wsrep_ready:是否準備好接收連接(應為ON);
    • wsrep_connected:是否連接到集群(應為ON)。

五、加入其他節點(node2、node3)

在node2、node3上重復以下步驟:

  1. 停止MariaDB服務
    sudo systemctl stop mariadb
    
  2. 修改配置文件
    wsrep_cluster_address更新為所有節點IP列表(如"gcomm://192.168.100.111,192.168.100.112,192.168.100.113"),并設置當前節點的wsrep_node_addresswsrep_node_name。
  3. 啟動MariaDB服務
    sudo systemctl start mariadb
    
  4. 驗證節點狀態
    登錄MariaDB,執行SHOW STATUS LIKE 'wsrep%';,確認wsrep_cluster_size增加至3(所有節點均已加入)。

六、驗證集群功能

  1. 多主寫入測試
    在任意節點插入數據,檢查其他節點是否能同步:
    -- 在node1上執行
    CREATE DATABASE test_cluster;
    USE test_cluster;
    CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
    INSERT INTO users (name) VALUES ('Alice'), ('Bob');
    
    -- 在node2上執行
    USE test_cluster;
    SELECT * FROM users;  -- 應能看到Alice、Bob兩條記錄
    
  2. 故障轉移測試
    停止node1的MariaDB服務(sudo systemctl stop mariadb),在node2上插入數據,確認node3仍能同步(驗證集群無單點故障)。

七、安全加固(可選但推薦)

  1. 防火墻放通端口
    使用ufwiptables放通以下端口(所有節點):
    sudo ufw allow 3306/tcp  # MariaDB客戶端連接
    sudo ufw allow 4567/tcp  # Galera復制流量
    sudo ufw allow 4567/udp  # Galera多播
    sudo ufw allow 4444/tcp  # SST傳輸
    sudo ufw allow 4568/tcp  # IST傳輸
    
  2. 遠程訪問控制
    在MariaDB中授權遠程用戶(如root):
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'StrongPassword' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
  3. 定期備份
    使用mysqldumpxtrabackup定期備份數據,建議配置自動化備份腳本。

通過以上步驟,即可在Debian環境下搭建高可用的MariaDB Galera Cluster多主集群,實現數據的實時同步、多主寫入及故障自動轉移。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女