配置mysql8.0使用PXC实现高可用

1.什么是 PXC:


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

2.PXC 的特点:


完全兼容 MySQL。

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

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

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

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

故障切换:因为支持多点写入,所以在出现数据库故障时可以很容易的进行故障切换。

自动节点克隆:在新增节点或停机维护时,增量数据或基础数据不需要人工手动备份提供,galera cluster 会自动拉取在线节点数据,集群最终会变为一致。

3.PXC 的优缺点:


优点:
服务高可用。

数据同步复制(并发复制),几乎无延迟。

多个可同时读写节点,可实现写扩展,不过最好事先进行分库分表,让各个节点分别写不同的表或者库,避免让 galera 解决数据冲突。

新节点可以自动部署,部署操作简单。

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

完全兼容 MySQL。

缺点:
复制只支持InnoDB 引擎,其他存储引擎的更改不复制。

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

所有表都要有主键。

不支持 LOCK TABLE 等显式锁操作。

锁冲突、死锁问题相对更多。

4.PXC 与 Replication 的区别:

5.PXC 常用端口:

  • 3306:数据库对外服务的端口号。

  • 4444:请求 SST 的端口。

  • 4567:组成员之间进行沟通的一个端口号。

  • 4568:用于传输 IST。

6.搭建 PXC 集群:


Percona XtraDB Cluster (简称 PXC)集群是基于 Galera 2.x library,事务型应用下的通用的多主同步复制插件,主要用于解决强一致性问题,使得各个节点之间的数据保持实时同步以及实现多节点同时读写。提高了数据库的可靠性,也可以实现读写分离,是 MySQL 关系型数据库中大家公认的集群优选方案之一。

7.实验准备:

准备三台试验机,IP如下:

IP端口角色
192.168.1.513306pxc1
192.168.1.523306pxc2
192.168.1.533306pxc3

8.实验配置:

配置hosts解析:

vim /etc/hosts
192.168.1.51 pxc1
192.168.1.52 pxc2
192.168.1.53 pxc3

8.1安装pxc集群并进行配置:


参考官网文档:https://docs.percona.com/percona-xtradb-cluster/8.0/yum.html

RHEL 8 和其他 EL8 系统默认启用 MySQL 模块。此模块隐藏了 Percona 提供的软件包,并且必须禁用该模块才能使这些软件包可见。以下命令将禁用该模块:
 

yum module disable mysql

进行安装:

//安装 Percona 仓库配置包
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
//设置 Percona 仓库以启用 PXC 8.0
percona-release setup pxc-80
//安装 Percona XtraDB Cluster
yum install percona-xtradb-cluster

修改 /etc/my.cnf 文件配置

vim /etc/my.cnf

8.2启动pxc1:

安装完成后在第一个节点需要以引导模式启动:

systemctl start mysql@bootstrap.service

接着查找临时密码:

grep -i password /var/log/mysqld.log

用临时密码登录mysql:

修改密码:

mysql> alter user root@localhost identified by 'MySQL@123';
Query OK, 0 rows affected (0.00 sec)

8.3确保集群使用一套证书:

将pxc1的证书复制给pxc2和pxc3,同时进行相关文件权限修改:(在pxc1上操作)

scp /var/lib/mysql/*.pem pxc2:/var/lib/mysql/
scp /var/lib/mysql/*.pem pxc3:/var/lib/mysql/

修改pxc2和pxc3的证书文件权限:

[root@pxc2 ~]# chown -R mysql.mysql /var/lib/mysql/
[root@pxc3 ~]# chown -R mysql.mysql /var/lib/mysql/

8.4启动MySQL:

节点2和3正常启动MySQL

[root@pxc2 ~]# systemctl start mysql
[root@pxc3 ~]# systemctl start mysql

查看集群状态信息:(在随便一个节点查看)

 show status where Variable_name in ('wsrep_cluster_size','wsrep_cluster_status','wsrep_connected','wsrep_ready') ;

8.5关闭节点

PXC 集群允许动态下线节点,但需要注意的是节点的启动命令和关闭命令必须一致,

第一个节点必须以引导模式来进行关闭:

systemctl stop mysql@bootstrap.service

其余节点可以安装正常方式关闭:
 

systemctl stop mysql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值