Mariadb galera 集群


 

 

    部署galera 多主架構 (galera集群多用於關鍵性業務,因為galera集群為了數據的一致性,采用的是同步的機制,這就使galera犧牲了一部分性能來換取數據一致性。)

環境准備:三台服務器

master:192.168.206.3

master1:192.168.206.5

master2:192.168.206.6

yum配置

操作系統:CentOS7.3

數據庫版本:MariaDB-10.3.7

1>yum配置,(三端數據庫信息保持一致)

[mariadb]

name=MariaDB

baseurl=http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/

gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB

gpgcheck=1

2>關閉防火牆 

3>三個主機都要互相解析

vim /etc/hosts

4>主節點編輯配置文件

vim /etc/my.cnf.d/server.cnf

在 [ galera ] 下面

wsrep_on=ON  wsrep_provider=/usr/lib64/galera/libgalera_smm.so     #galera的庫文件的地址

wsrep_cluster_address="gcomm://192.168.206.3,192.168.206.5,192.168.206.6"   #各節點的ip

wsrep_node_name=node1         #節點主機名  

wsrep_node_address=192.168.206.3 #節點ip

binlog_format=row        #二進制日志設置為行模式  row (安全性最高,性能最低)

default_storage_engine=InnoDB    #使用的默認引擎 innoDB  支持事務

innodb_autoinc_lock_mode=2      #2為性能最好  

wsrep_slave_threads=1              #並發線程數

innodb_flush_log_at_trx_commit=0                   #0.log buffer將每秒一次地寫入log file中,並且log file的flush(刷到磁盤)操作同時進行。該模式下在

                                                                            事務提交的時候,不會主動觸發寫入磁盤的操作,#1:每次事務提交時MySQL都會把log buffer的數據寫入log file,並且flush(刷到磁盤)中去,該  模式為系統默                                                                              認。

                                                                           #2:每次事務提交時MySQL都會把log buffer的數據寫入log file,但是flush(刷到磁盤)操作並不會同

                                                                            時進行。該模式下,MySQL會每秒執行一次 flush(刷到磁盤)操作

innodb_buffer_pool_size=120M       #設置緩存池大小

wsrep_sst_method=rsync             #遠程同步

wsrep_causal_reads=ON         #避免各個節點的數據不一致,這種情況需要等待全同步復制 將此文件復制到master1、master2,注意要把 wsrep_node_name 和 wsrep_node_address 改成相應                                                                          節點的 hostname 和 ip。

注:graler 集群最好至少三個,兩個的話。如果出現網絡波動可能會出現腦裂;

 

 

三端都需要配置

5>第一次啟動需要初始化

&1

mysqld_safe--wsrep_cluster_address=gcomm://192.168.206.3,192.168.206.5,192.168.206.6

 

 

這里會hang住 ,等他執行一段時間就好,

&2  執行  /bin/galera_new_cluster

 

6>另外兩端啟動數據庫

service  mariadb restart

 

 7>查看集群狀態(進程和端口)(查看wsrep 狀態也可以)

確保 wsrep 端口 :4567  與  mariadb端口: 3306 打開

&show status like ‘wsrep%'

8>測試

&master端

&master1端

 

&master2端

 

同步成功!

注: 若三台主機 關機了,再起就起不來了。

執行以下操作

vim /var/lib/mysql/grastate.dat

把safe_to_bootstrap更改為1

# GALERA saved state

version: 2.1 uuid:    a393feef-f639-11e8-9b89-4e75f9b8fb0f

seqno:   -1

safe_to_bootstrap: 1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM