1.主从架构:
每个从节点需要一个dump线程连接主节点
异步:效率高,安全性低,有延迟
同步:效率低,安全性高,无延迟
主:可读可写,(dump thread)
从:可读不可写 (sql thread, i/o thread)
2.单点故障解决方案:
主主架构:
互为主备,互相监控对方二进制日志文件进行同步
note:当两个sql语句发生冲突的时候主主架构有可能出现数据不一致的现象;
MHA(master hi avalible)
HMA可以有多个配置文件,一个配置文件监控一个主从架构
3.主从架构配置:
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;
4.多主架构galera
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 | ##插件是否应用中