一、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. 洛谷$P3647\ [APIO2014]$连珠线 换根$dp$

    正解:换根$dp$ 解题报告: 传送门! 谁能想到$9102$年了$gql$居然还没写过换根$dp$呢,,,$/kel$ 考虑固定了从哪个点开始之后,以这个点作为根,蓝线只可能是直上直下的,形如&qu ...

  2. $[NOIp2017]$ 逛公园 $dp$/记搜

    \(Des\) 给定一个有向图,起点为\(1\),终点为\(n\),求和最短路相差不超过\(k\)的路径数量.有\(0\)边.如果有无数条,则输出\(-1\). \(n\leq 10^5,k\leq ...

  3. vue 源码 学习days8-比较两个对象的方法

    // 在面试中可能会遇到, 思想重要 // 比较两个对象是否是相等的 两个对象 // 1. js 中对象是无法使用 == 来比较的, 比是地址 // 2. 我们一般会定义如果对象的各个属性值都相等 那 ...

  4. 从头学pytorch(十四):lenet

    卷积神经网络 在之前的文章里,对28 X 28的图像,我们是通过把它展开为长度为784的一维向量,然后送进全连接层,训练出一个分类模型.这样做主要有两个问题 图像在同一列邻近的像素在这个向量中可能相距 ...

  5. Pandas常用方法手册

    关键缩写和包导入 在这个速查手册中,我们使用如下缩写: df:任意的Pandas DataFrame对象 同时我们需要做如下的引入: import pandas as pd 导入数据 pd.read_ ...

  6. Spring中的ApplicationListener扩展使用

    ApplicationListener是Spring事件机制的一部分,与抽象类ApplicationEvent类配合来完成ApplicationContext的事件机制. 如果容器中存在Applica ...

  7. Netty--【详解】

    Netty概述:1.netty是基于Java NIO的网络应用框架,client-server框架2.Netty是一个高性能.异步事件驱动的NIO框架,它提供了对TCP.UDP和文件传输的支持,作为一 ...

  8. 揭发233的docker/machine

    继手动滑稽之golang-vmware-driver广告篇,今天把vmware-driver完成 然而我却要发一篇牢骚,这是对docker公信力的挑战!!! 本来很简单的升级到vmware 15.x的 ...

  9. 虚拟机下 windows 自动配置 IPv4 地址 169.254.X.X(首选)

    问题: windows server上,自己手动配置的ip不生效,自动获取地址虽然ok,但是服务器必须指定ip. 诊段: ipconfig/all里查看 自动配置 IPv4 地址  169.254.X ...

  10. Go 每日一库之 go-homedir

    简介 今天我们来看一个很小,很实用的库go-homedir.顾名思义,go-homedir用来获取用户的主目录. 实际上,使用标准库os/user我们也可以得到这个信息: package main i ...