在CentOS7上安裝 MariaDB Galera Cluster 多主集羣

一、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僅執行一次,之後這個節點重啓按正常服務方式啓動就好了。

06.png

07.png


以正常方式啓動第二個節點:

systemctl start mariadb


若是啓動沒有報錯,恭喜,集羣組成完成。官方推薦集羣至少3個節點,但2個也能工做,只是可能出現Split-Brain問題。


此時雙方分別登陸本身的mariadb,查看集羣狀態,能夠看到有相同的cluster_status_uuid,集羣數量cluster_size也是2,表示兩臺。

09.png


在兩臺上分別執行DDL或者SQL語句,均會同步到對方。

相關文章
相關標籤/搜索