每一個從節點須要一個dump線程鏈接主節點node
異步:效率高,安全性低,有延遲mysql
同步:效率低,安全性高,無延遲sql
主:可讀可寫,(dump thread)數據庫
從:可讀不可寫 (sql thread, i/o thread)vim
主主架構:centos
互爲主備,互相監控對方二進制日誌文件進行同步安全
note:當兩個sql語句發生衝突的時候主主架構有可能出現數據不一致的現象;服務器
MHA(master hi avalible)架構
HMA能夠有多個配置文件,一個配置文件監控一個主從架構異步
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
服務器1: MariaDB01 192.168.52.233
服務器2: MariaDB02 192.168.52.234
數據庫版本: MariaDB-10.3.7
主從關係: MariaDB01爲主,MariaDB02爲從
2)MariaDB01
1. 修改配置文件
vim /etc/my.cnf.d/server.cnf 在[mysqld]下加入如下 server-id=1 log-bin=mysql-bin
2. 重啓mysql服務
service mysqld restart
3.建立主從鏈接賬號與受權
CREATE USER 'slave'@'%' IDENTIFIED BY 'slave'; grant replication slave on *.* to slave@'%' identified by 'slave'; flush privileges;
4.show master status
3)MariaDB02
1. 修改配置文件
vim /etc/my.cnf.d/server.cnf
server-id=2
2. 重啓mysql服務
service mysqld restart
3.登陸數據庫
mysql -uroot -proot4. 創建主從鏈接 CHANGE MASTER TO MASTER_HOST='192.168.52.233', MASTER_USER='slave', MASTER_PASSWORD='slave', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=528; start slave;
1)三臺主機:
192.168.52.233
192.168.52.234
192.168.52.235
三臺主機都要設置解析規則
vim /etc/hosts 192.168.52.233 node1 192.168.52.234 node2 192.168.52.235 node3
2)配置文件:
vim /etc/my.cnf.d/server.cnf wsrep_on=ON wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_address="gcomm://192.168.52.233,192.168.52.234,192.168.52.235" binlog_format=row default_storage_engine=InnoDB wsrep_node_name=node1(node2,node3與主機名無關)
3)初始化:
mysqld_safe --wsrep_cluster_address=gcomm://192.168.52.233,192.168.52.235,192.168.52.234
4)啓動數據庫
在其中一個節點上執行galera_new_cluster
剩餘2個節點用service mariadb restart
5)查看狀態:
show status like '%wsrep%';
6)關鍵參數:
wsrep_cluster_size | 3 | ##集羣成員 wsrep_cluster_status | Primary | ##主服務器 wsrep_connected | ON | ##當前是否鏈接中 wsrep_incoming_addresses | 192.168.153.142:3306,192.168.153.143:3306,192.168.153.144:3306 | ##鏈接中的數據 wsrep_ready | ON | ##插件是否應用中