一、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. HashMap、lru、散列表

    HashMap HashMap的数据结构:HashMap实际上是一个数组和链表("链表散列")的数据结构.底层就是一个数组结构,数组中的每一项又是一个链表. hashCode是一个 ...

  2. Python学习(二)语言基础

    一.变量与类型 在程序设计中,变量是一种存储数据的载体 整型:Python中可以处理任意大小的整数 浮点型:浮点数也就是小数 字符串型:字符串是以单引号或双引号括起来的任意文本 布尔型:布尔值只有Tr ...

  3. 自荐一个 element 表单代码生成器

    Element UI 表单设计及代码生成器,可将生成的代码直接运行在基于 Element 的 vue 项目中. github仓库   https://github.com/JakHuang/form- ...

  4. centos服务器cpu百分之百,top查询不到之“-bash”

    把这条注释掉. [root@aaaa ~]# cat /etc/ld.so.preload #/usr/local/lib/libproc.so[root@aaaa ~]# 然后在top

  5. 洛谷$P2053\ [SCOI2007]$修车 网络流

    正解:网络流 解题报告: 传送门$QwQ$ 一个很妙的建图,,,说实话我麻油想到$QwQ$ 考虑对每个工人建$n$个点,表示这是他修的倒数第$i$辆车,就可以算出影响是$t\cdot i$,然后对每辆 ...

  6. CSS3(4)---动画(animation)

    CSS3(4)---动画(animation) 之前有写过过渡:CSS3(2)--- 过渡(transition) 个人理解两者不同点在于 过渡 只能指定属性的 开始值 与 结束值,然后在这两个属性值 ...

  7. 使用sqlmap中的tamper脚本绕过waf

    使用sqlmap中tamper脚本绕过waf 脚本名:0x2char.py 作用:用UTF-8全角对应字符替换撇号字符 作用:用等价的CONCAT(CHAR(),...)对应替换每个(MySQL)0x ...

  8. cassandra中的ACID,与RDBMS中的事务有何不同?

    Cassandra中的ACID标准 Apache Cassandra不遵循具有回滚或锁定机制的ACID(原子性,一致性,隔离性,持久性)事务,而是提供原子,隔离和持久的事务,并具有最终和可调的一致性, ...

  9. infer 代码静态分析

    infer 代码静态分析 静态代码分析工具,主要是为了提高我们的代码质量. 通常,我们提高代码质量的方式是通过CodeReview,但是这个过程耗费的人工和时间往往较大.并且随着代码量的增加人肉检测起 ...

  10. [论文翻译]Practical Diversified Recommendations on YouTube with Determinantal Point Processes

    目录 ABSTRACT(摘要) 1 INTRODUCTION(简介) 2 RELATED WORK 2.1 Diversification to Facilitate Exploration(对应多样 ...