pxc介绍
galera产品是以galera cluster方式为mysql提高高可用集群解决方案的。galera cluster就是集成了galera插件的mysql集群。galera replication是codership提供的mysql数据同步方案,具有高可用性,方便扩展,并且可以实现多个mysql节点间的数据同步复制与读写,可保障数据库的服务高可用及数据强一致性。
PXC属于一套近乎完美的mysql高可用集群解决方案,相比那些比较传统的基于主从复制模式的集群架构MHA和MM+keepalived,galera cluster最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实时同步。而且节点与节点之间,他们相互的关系是对等的。本身galera cluster也是一种多主架构。galera cluster最关注的是数据的一致性,对待事物的行为时,要么在所有节点上执行,要么都不执行,它的实现机制决定了它对待一致性的行为非常严格,这也能非常完美的保证MySQL集群的数据一致性;
对galera cluster的封装有两个,虽然名称不同,但实质都是一样的,使用的都是galera cluster。一个MySQL的创始人在自己全新的MariaDB上实现的MAriaDB cluster;一个是著名的MySQL服务和工具提供商percona实现的percona xtradb cluster,简称PXC 。
要搭建PXC架构至少需要3个mysql实例来组成一个集群,三个实例之间不是主从模式,而是各自为主,所以三者是对等关系,不分从属,这就叫multi-master架构。客户端写入和读取数据时,连接哪个实例都是一样的。读取到的数据时相同的,写入任意一个实例之后,集群自己会将新写入的数据同步到其他实例上,这种架构不共享任何数据,是一种高冗余架构。
部署
部署准备工作
主机名 | IP |
---|---|
pxc1 | 192.168.6.201 192.168.6.200 |
pxc2 | 192.168.6.202 |
pxc3 | 192.168.6.203 |
关防火墙、selinux、ntp时间同步
安装pxc
rpm安装
1 | ##安装yum源 |
分别在三个节点创建数据存储目录
1 | mkdir -p /data/local/percona-xtradb-cluster/data |
修改/etc/my.cnf配置文件,其他两台节点需要修改server_id和wsrep_node_address
pxc1:
1 | [root@pxc1 ~]# cat /etc/my.cnf |
pxc2:
1 | [root@pxc2 ~]# cat /etc/my.cnf |
pxc3:
1 | [root@pxc3 ~]# cat /etc/my.cnf |
启动
主节点:
1 | service mysql@bootstrap.service start |
其他节点:
1 | service mysql start |
启动第二个节点时遇到sst连接失败的问题
1 | 将wsrep.cnf 配置文件的wsrep_sst_method改为rsync,成功启动集群后停止集群,然后改回xtrabackup-v2,再启动集群节点。 |
修改密码
1 | mysql5.7版本日志均在error.log 里面生成 |
查看状态
查看节点数:
1 | show global status like 'wsrep_cluster_size'; |
查看集群状态:
1 | show global status like 'wsrep%'; |
查看当前节点状态:
1 | show global status like 'wsrep_cluster_status'; |
安装keepalive
1 | 6.200为虚ip |
主:
1 | [root@pxc1 ~]# cat /etc/keepalived/keepalived.conf |
从:
1 | [root@pxc2 ~]# cat /etc/keepalived/keepalived.conf |
登录:
1 | [root@pxc1 ~]# mysql -usstuser -psecret --host 192.168.6.200 |