一、PXC集群的一些特性

Percona官网服务器位于境外,访问很困难。本次安装使用的是其官网提供的最新版本5.7.23-31.31.1.el7,当前日期为2018.10.10。

PXC集群中,存储引擎使用的是percona xtrabackup,集群架构采用的是Galera Cluster,一种多主结构的集群。所以要安装percona存储引擎与 Galera依赖。

一般来说,中小型规模的时候,采用这种架构是最省事的。两个节点可以采用简单的一主一从模式,或者双主模式,并且放置于同一个VLAN中,在master节点发生故障后,利用keepalived/heartbeat的高可用机制实现快速切换到slave节点。

优点:

1)同步复制,事务要么在所有节点提交或不提交。

2)多主复制,可以在任意节点进行写操作。

3)在从服务器上并行应用事件,真正意义上的并行复制。

4)节点自动配置,数据一致性,不再是异步复制。

5)新节点可以自动部署,部署操作简单;

6)数据严格一致性,尤其适合电商类应用;

7)完全兼容MySQL;

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

缺点:

1)只支持InnoDB引擎

2)PXC集群一致性控制机制,有可能被终止,原因如下:集群允许在两个节点上同时执行操作同一行的两个事务,但是只有一个能执行成功,另一个会被终止,集群会给被终止的客户端返回死锁错误(Error: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK)).

3)写入效率取决于节点中最弱的一台,因为PXC集群采用的是强一致性原则,一个更改操作在所有节点都成功才算执行成功。

4)所有表都要有主键;

5)不支持LOCK TABLE等显式锁操作;

6)锁冲突、死锁问题相对更多;

7)不支持XA;

8)集群吞吐量/性能取决于短板;

9)新加入节点采用SST时代价高;

10)存在写扩大问题;

11)如果并发事务量很大的话,建议采用InfiniBand网络,降低网络延迟;

事实上,采用PXC的主要目的是解决数据的一致性问题,高可用是顺带实现的。因为PXC存在写扩大以及短板效应,并发效率会有较大损失,类似semi sync replication机制。

二、安装环境

操作系统:CentOS Linux release 7.3

节点规划:

node1

192.168.164.131

node2

192.168.164.132

node3

192.168.164.124

端口:

3306 数据库对外服务的端口号
4444 请求SST SST: 指数据一个镜象传输 xtrabackup , rsync ,mysqldump 
4567 : 组成员之间进行沟通的一个端口号
4568 : 传输IST用的。相对于SST来说的一个增量。

确保以上端口在防火墙中开放,或者直接关闭关闭防火墙服务,注意在CentOS版本的更新过程中,管理防火墙的指令变化较大

systemctl disable firewalld

在PXC官方文档中,建议关闭selinux服务,

setenforce 

三 安装过程

1、在所有节点,执行:

yum install -y  http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

安装EPEL源,percona官网提供的0.1-6版本,一般最新的版本坑很多,这里使用的是0.1-4版本。

2、重载yum缓存

yum clean all

yum  makecache

3、安装

yum install -y Percona-XtraDB-Cluster-

到这里,安装已经结束。因为我这里是可以连接外网的环境,yum工具会自动完成所有依赖包的匹配与安装。

如果是无外网环境,那么就需要到官网:

https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/

去把依赖包一个一个下载下来,再手动安装。

四、配置集群

1、在所有节点,创建SST的账户。

systemctl start mysqld #启动mysql进程

grep "temporary password" /var/log/mysqld.log   #获取初始密码

mysql -uroot -p

alter user 'root'@'localhost' identified by '';

GRANT RELOAD,LOCK TABLES,PROCESS,REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost' IDENTIFIED BY 'password';  #创建SST用户

FLUSH PRIVILEGES;

注意,退出后,要关闭mysql进程。

# mysqladmin -uroot -p123456 shutdown

2、确保mysql进程关闭,在所有节点:vi /etc/my.cnf

[mysqld]

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so    #Galera库文件路径

wsrep_cluster_name=pxc-cluster                        #集群的逻辑名称,各节点应该统一

wsrep_cluster_address=gcomm://192.168.164.131,192.168.164.132,192.168.164.124  #列出集群内所有节点的IP

wsrep_node_name=pxc1                                  #当前节点的逻辑名称

wsrep_node_address=192.168.164.131                       #当前节点的IP

wsrep_sst_method=xtrabackup-v2                        #全量同步(SST)方式

wsrep_sst_auth=sstuser:password                       #用于SST的账户信息(需要自行创建)

pxc_strict_mode=ENFORCING                             #PXC严格模式,建议开启

binlog_format=ROW                                     #binlog格式,PXC只支持格式为ROW的binlog

default_storage_engine=InnoDB                         #PXC对InnoDB存储引擎有最好的支持

innodb_autoinc_lock_mode=2                            #在向有auto_increment 列的表插入数据时,PXC只支持interleaved(2)交错锁

注意在节点2、节点3,黄标内容要对应改为pxc2、pxc3,与对应的内网IP,公网IP不能识别

五、启动PXC集群

node1  192.168.164.131

node2 192.168.164.132

node3 192.168.164.124

systemctl start mysql@bootstrap.service

systemctl start mysqld

systemctl start mysqld

mysql -uroot -p123456 -e "show status like 'wsrep%';"

mysqladmin  -uroot -p123456 shutdown

mysql -uroot -p123456 -e "show status like 'wsrep%';"

mysql -uroot -p123456 -e "show status like 'wsrep%';"

systemctl start mysqld

mysql -uroot -p123456 -e "show status like 'wsrep%';"

 

如果一切顺利,会有如下参数信息:

wsrep_incoming_addresses         | 192.168.164.124:3306,192.168.164.132:3306,192.168.164.131:3306

安装过程中的一些问题:

防火墙 是否关闭,selinux配置文件是静态文件,更改后是否已经重启。

sst用户的权限,使用sst账户能否在其他节点登录。

节点间是否能PING通。

Percona-XtraDB-Cluster-57 安装操作记录的更多相关文章

  1. PXC(Percona XtraDB Cluster)集群的安装与配置

    Percona XtraDB Cluster是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server .其包括了Write Set REPlication补丁,使用Galera ...

  2. 搭建高可用mysql系列(2)-- Percona XtraDB Cluster 安装

    本文主要介绍在 centos 下 Percona XtraDB Cluster(下文简称PXC) 的安装, 个人的系统版本信息如下: [root@c2-d09 worker]# more /etc/r ...

  3. Percona XtraDB Cluster(PXC) -集群环境安装

    Percona XtraDB Cluster(PXC)   ---服务安装篇   1.测试环境搭建: Ip 角色 OS PXC-version 172.16.40.201 Node1 Redhat/C ...

  4. Percona XtraDB Cluster简易入门 - 安装篇

    说明 Percona XtraDB Cluster(简称PXC),是由percona公司推出的mysql集群解决方案.特点是每个节点都能进行读写,且都保存全量的数据.也就是说在任何一个节点进行写入操作 ...

  5. docker1.12 安装pxc(Percona XtraDB Cluster )测试

    docker1.12 安装pxc(Percona XtraDB Cluster )测试

  6. Percona Xtradb Cluster的设计与实现

    Percona Xtradb Cluster的设计与实现   Percona Xtradb Cluster的实现是在原mysql代码上通过Galera包将不同的mysql实例连接起来,实现了multi ...

  7. 如何搭建Percona XtraDB Cluster集群

    一.环境准备 主机IP                     主机名               操作系统版本     PXC 192.168.244.146     node1           ...

  8. 使用percona xtradb cluster的IST方式添加新节点

    使用percona xtradb cluster的IST(Incremental State Transfer)特性添加新节点,防止新节点加入时使用SST(State SnapShop Transfe ...

  9. mysql高可用之PXC(Percona XtraDB Cluster)

    简介 Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案,Percona XtraDB Cluster提供的特性如下: 1).同步复制,事务要么在所有节点提交或不提交 ...

  10. MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解

    MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解 Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在 ...

随机推荐

  1. 前端——BOM与DOM

    目录 前戏 window对象 window的子对象 navigator对象(了解即可) screen对象(了解即可) history对象(了解即可) location对象 弹出框 计时相关 DOM H ...

  2. POJ - 3177 Redundant Paths 说说连通分量吧

    ----我想说说双联通分量还有割点和桥 1.割点(一个点,如果没有这一个点,图就会变得不连通) 2.桥(一条边,断开这条边就会让图不连通) 3.点双连通(没割点的图) 4.边双连通(没桥的图) 5.割 ...

  3. ELK学习实验011:Logstash工作原理

    Logstash事件处理管道包括三个阶段:输入→过滤器→输出.输入会生成事件,过滤器会对其进行修改,输出会将它们发送到其他地方.输入和输出支持编解码器,使您可以在数据进入或退出管道时对其进行编码或解码 ...

  4. 大学最新毕业论文参考文献,包含java,jsp,mysql,Android,sql,PHP

    每当毕业论文写到最后需要参考文献时,往往是很令人头疼的,因为有的老师对参考文献的要求是很多的,比如需要国内的和国外的,时间必须是近三年的,满足XXX要求的文献至少需要三篇以上等等.今天我就来给大家整理 ...

  5. $tarjan$简要学习笔记

    $QwQ$因为$gql$的$tarjan$一直很差所以一直想着要写个学习笔记,,,咕了$inf$天之后终于还是写了嘻嘻. 首先说下几个重要数组的基本定义. $dfn$太简单了不说$QwQ$ 但是因为有 ...

  6. 洛谷$P4318$ 完全平方数 容斥+二分

    正解:容斥/杜教筛+二分 解题报告: 传送门$QwQ$ 首先一看这数据范围显然是考虑二分这个数然后$check$就计算小于等于它的不是讨厌数的个数嘛. 于是考虑怎么算讨厌数的个数? 看到这个讨厌数说, ...

  7. C#反射与特性(二):探究反射

    目录 1,反射的使用概述 2,获取 Type 在上一章中,我们探究了 C# 引入程序集的各种方法,这一章节笔者将探究 C# 中使用反射的各种操作和代码实践. 1,反射的使用概述 1.1 什么是反射 & ...

  8. JDK1.8中的HashMap实现

    1.HashMap概述 在JDK1.8之前,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的节点都存储在一个链表里.但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通 ...

  9. Linux Centos7 环境搭建Docker部署Zookeeper分布式集群服务实战

    Zookeeper完全分布式集群服务 准备好3台服务器: [x]A-> centos-helios:192.168.19.1 [x]B-> centos-hestia:192.168.19 ...

  10. 小小知识点(二十)利用MATLAB计算定积分

    一重定积分 1. Z = trapz(X,Y,dim) 梯形数值积分,通过已知参数x,y按dim维使用梯形公式进行积分 %举例说明1 clc clear all % int(sin(x),0,pi) ...