一、MariaDB Galera Cluster介紹node
MariaDB Galera Cluster 是一個用於同步 MariaDB 數據庫的多 master 集羣的工具。在數據方面徹底兼容 MariaDB 和 MySQL。特性:
mysql
同步複製 Synchronous replicationlinux
Active-active multi-master 拓撲邏輯sql
可對集羣中任一節點進行數據讀寫數據庫
自動成員控制,故障節點自動從集羣中移除centos
自動節點加入bash
真正並行的複製,基於行級服務器
直接客戶端鏈接,原生的 MySQL 接口ide
二、環境準備工具
準備兩臺虛擬機,分別安裝CentOS7-1908(7.7)。
服務器A:193.168.12.9 db1
服務器B:193.168.12.10 db2
兩臺虛機上關閉防火牆:
systemctl stop firewalld systemctl disable firewalld
兩臺虛機上關閉selinux:
setenforce 0
修改/etc/selinux/config,設置SELINUX=disabled,確保重啓後也生效。
三、安裝mariadb 10.5
默認centos的源裏不帶mariadb 10.5,須要本身配置,建立/etc/yum.repo.d/mariadb.repo文件,這裏配置的是從阿里雲鏡像下載,速度比從官網快。內容以下:
[mariadb] name=MariaDB baseurl=https://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64 pgpkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB pgpcheck=0
下載並導入KEY:
wget --no-check-certificate https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB /etc/pki/rpm-gpg/ rpm --import /etc/pki/rpm-gpg/*
用yum安裝:
yum install -y MariaDB-server MariaDB-client
若是以前配置過其它源致使安裝失敗,能夠先清理一下再重試:
yum clean metadata
兩臺數據庫服務器作一樣操做。
四、配置mariadb
啓動mariadb:
systemctl start mariadb
可按需執行初始化:
mysql_secure_installation
mariadb默認僅容許root本地登陸,須要手工建立root遠程管理權限,能夠新建,也能夠修改當前root,新建的話:
mysql -uroot -p use mysql create user root@'%' identified by 'mariadb'; flush privileges;
或者修改已有root的host:
mysql -u root -p use mysql update user set host='%' where user='admin' and host='localhost'; flush privileges;
兩臺數據庫服務器作一樣操做。
五、組建集羣
兩臺獨立的數據庫都準備好後,開始組建galera cluster,先停mariadb服務:
systemctl stop mariadb
修改mariadb的配置:/etc/my.cnf.d/server.cnf
[galera] wsrep_on=ON wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so wsrep_cluster_address=gcomm://193.168.12.9,193.168.12.10 wsrep_cluster_name=rvsdb wsrep_node_name=db1 wsrep_node_address=193.168.12.9 binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 wsrep_slave_threads=20 innodb_flush_log_at_trx_commit=0 bind-address=0.0.0.0
兩臺服務器的配置裏除wsrep_node_name和wsrep_node_address外,其它配置項都相同。
以建立新集羣的方式啓動第一個節點:
galera_new_cluster
此時能看到mysqld進程以帶參數的方式啓動,而且同時監聽4567和3306端口。
須要注意galera_new_cluster僅執行一次,之後這個節點重啓按正常服務方式啓動就好了。
以正常方式啓動第二個節點:
systemctl start mariadb
若是啓動沒有報錯,恭喜,集羣組成完成。官方推薦集羣至少3個節點,但2個也能工做,只是可能出現Split-Brain問題。
此時雙方分別登陸本身的mariadb,查看集羣狀態,能夠看到有相同的cluster_status_uuid,集羣數量cluster_size也是2,表示兩臺。
在兩臺上分別執行DDL或者SQL語句,均會同步到對方。