美文网首页大数据
mysq集群PXC模式搭建-Linux

mysq集群PXC模式搭建-Linux

作者: _Unique_楠楠 | 来源:发表于2020-04-21 14:34 被阅读0次

1.简介

1.1 PXC 简介

PXC 是一套 MySQL 高可用集群解决方案,与传统的基于主从复制模式的集群架构相比 PXC 最 突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实时同步。而且节点与节点之间,他们相互的关系是对等的。PXC 最关注的是数据的一致性,对待事物的行为时,要么在所有节点上执行,要么都不执行,它的实现机制决定了它对待一致性的行为非常严格,这也能非常完美的保证 MySQL 集群的数据一致性;

1.2 PXC特性和优点

  • 完全兼容 MySQL。
  • 同步复制,事务要么在所有节点提交或不提交。
  • 多主复制,可以在任意节点进行写操作。
  • 在从服务器上并行应用事件,真正意义上的并行复制。
  • 节点自动配置,数据一致性,不再是异步复制。
  • 故障切换:因为支持多点写入,所以在出现数据库故障时可以很容易的进行故障切换。
  • 自动节点克隆:在新增节点或停机维护时,增量数据或基础数据不需要人工手动备份提供,galera cluster会自* 动拉取在线节点数据,集群最终会变为一致;

PXC最大的优势:强一致性、无同步延迟

1.3 PXC的局限和劣势

  • 复制只支持InnoDB 引擎,其他存储引擎的更改不复制
  • 写入效率取决于节点中最慢的一台

2.安装

percona-release setup pxc57

2.1安装yum源

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

2.2安装pxc

yum install Percona-XtraDB-Cluster-57
-- 如果下载不下来 可以直接从管网下载
-- https://www.percona.com/downloads/Percona-XtraDB-Cluster-57/LATEST/
-- Percona-XtraDB-Cluster-server-57-5.7.28-31.41.2.el7.x86_64.rpm
下载后本地直接安装
yum localinstall ****.rpm

3 配置集群

注:以下用到的节点均为hostName(需要配置hosts文件),当然也可以直接写节点的ip
参考环境配置:centos常用集群搭建配置参考

3.1 修改pxc配置文件

vi /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
-- 
-- 重点修改wsrep_node_name=node08,wsrep_node_address=node09,确保每台机器不同
-- 修改集群节点的配置
wsrep_cluster_address=gcomm://node08,node09,node10  
-- 当前节点名称
wsrep_node_name=node08
-- 当前节点地址 -- add
wsrep_node_address=node08

3.2 修改mysql配置

vi /etc/percona-xtradb-cluster.conf.d/mysqld.cnf
-- 重点修改server-id,确保每台机器不同

3.3 删除原有/etc/my.cnf 将以下配置写入my.cnf 节点信息对应修改

[client]                                                                                                                                                                  
socket=/var/lib/mysql/mysql.sock                                                                                                                                          
                                                                                                                                                                          
[mysqld]                                                                                                                                                                  
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so                                                                                                                        
                                                                                                                                                                          
wsrep_cluster_name=pxc-cluster                                                                                                                                            
wsrep_cluster_address=gcomm://node08,node09,node10    #集群三个节点的ip                                                                                                                    
                                                                                                                                                                          
wsrep_node_name=node10              #当前节点的名称                                                                                                                                      
wsrep_node_address=node10          #当前节点的Ip                                                                                                                                        
                                                                                                                                                                          
wsrep_sst_method=xtrabackup-v2                                                                                                                                            
wsrep_sst_auth=sstuser:passw0rd  #sst同步的用户和密码                                                                                                                                         
                                                                                                                                                                          
pxc_strict_mode=ENFORCING                                                                                                                                                 
                                                                                                                                                                          
binlog_format=ROW                                                                                                                                                         
default_storage_engine=InnoDB                                                                                                                                             
innodb_autoinc_lock_mode=2

4.启动集群

4.1 启动前的配置

pxc本身相当于对mysql的一次高度修改和包装,所以本身也可以作为一个mysql服务端来启动

  • 先单独在一个节点以普通mysql启动方式启动一个mysql服务: service mysqld start
  • 登陆mysql进行用户设置
  • 启动成功后查询mysql的临时密码:cat /var/log/mysqld.log | grep "A temporary password"
  • 用临时密码以命令行形式登陆mysql进行如下配置
mysql -u root -p
-- 修改root密码
alter user 'root'@'localhost' identified with mysql_native_password by 'root';
-- 设置远程登录
use mysql;
update user set host='%' where user = 'root';
-- 创建SST用户 这个就是上文3.3中对应的 `wsrep_sst_auth`用户,用于做节点间同步的用户
create user 'sstuser'@'%' identified by 'passw0rd';
grant reload, lock tables, process, replication client on *.* to 'sstuser'@'%';
flush privileges;
-- 修改好配置后停止这个MySQL服务
service mysqld stop

4.2 启动主(引导)节点

注意:这个引导节点主要用于初始化集群,并不是字面上的主节点,pxc理论上不分主从

主(引导)节点启动命令:systemctl start mysql@bootstrap.service

4.3 集群其他节点启动

命令:systemctl start mysql.service 当做普通mysql服务启动就可以

5.集群状态查看

从任意一个节点上登陆mysql
mysql -uroot -p
查询集群状态语句:show status like 'wsrep%';
可以看到集群的节点数量:wsrep_cluster_size | 3

相关文章

网友评论

    本文标题:mysq集群PXC模式搭建-Linux

    本文链接:https://www.haomeiwen.com/subject/xyuuihtx.html