引领未来数据库技术:探索高效可靠的PXC集群解决方案

  • 作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注
  • 座右铭: 云端筑梦,数据为翼,探索无限可能,引领云计算新纪元
  • 个人主页: 团儿.-CSDN博客

目录

前言:

正文:

[一.PXC(Percona XtraDB Cluster)](#一.PXC(Percona XtraDB Cluster))

PXC特点:

相应端口:

二.环境:

[1. 删除mysql或mariadb,关闭防火墙和selinux,修改主机名为pxc1、pxc2、pxc3,修改/etc/hosts](#1. 删除mysql或mariadb,关闭防火墙和selinux,修改主机名为pxc1、pxc2、pxc3,修改/etc/hosts)

添加:

保存退出

[2 在线安装](#2 在线安装)

[3 修改密码](#3 修改密码)

[# 登录服务](# 登录服务)

[# 修改密码](# 修改密码)

[# 退出服务](# 退出服务)

[复制代码之后使用以下命令停止 MySQL 服务:](#复制代码之后使用以下命令停止 MySQL 服务:)

[4 搭建集群](#4 搭建集群)

[5 启动集群](#5 启动集群)

第一个节点需要以引导模式启动:

[在将其他节点添加到群集之前,需要登录当前节点,来为 SST 操作创建用户并提供权限,命令如下:](#在将其他节点添加到群集之前,需要登录当前节点,来为 SST 操作创建用户并提供权限,命令如下:)

[# 创建用户](# 创建用户)

[# 授予权限](# 授予权限)

[# 刷新权限](# 刷新权限)

接着在第二和第三个节点上正常启动数据库服务,命令如下:

[6 节点下线](#6 节点下线)

以引导模式来进行关闭:

其他节点则可以按照正常方式关闭:


前言:

在当今这个数据驱动的时代,数据库系统的性能和可靠性成为了企业运营中至关重要的因素。随着大数据和云计算技术的快速发展,企业对数据库系统的需求也在不断升级,要求更高的并发处理能力、更强的数据一致性和更可靠的故障恢复机制。

在这样的背景下,PXC(Percona XtraDB Cluster)集群作为一种高性能、高可用性的分布式数据库解决方案,逐渐受到了广大企业的青睐。PXC集群不仅继承了MySQL数据库的优秀特性,还通过独特的同步复制和自动故障转移机制,实现了数据的强一致性和高可用性,极大地提升了系统的稳定性和可靠性。

本文旨在深入探讨PXC集群的原理、架构、配置与优化方法,帮助读者全面了解并掌握这一先进的数据库技术。我们将从PXC集群的基本概念入手,逐步深入到其内部机制和工作原理,让读者能够深入理解其高性能和高可用性的实现原理。同时,我们还将结合实际应用场景,介绍PXC集群的配置、部署、监控和维护等实用技巧,帮助读者快速上手并解决实际问题。


正文:

一.PXC(Percona XtraDB Cluster)

是基于Galera的MySQL高可用集群解决方案

Galera Cluster是Codership公司开发的一套免费开源的高可用方案

PXC集群主要由两部分组成:Percona Server with XtraDB和Write Set Replication patches(同步、多主复制插件)

PXC特点:

数据强一致性、无同步延迟

没有主从切换操作,无需使用虚拟IP

支持InnoDB存储引擎

多线程复制

部署使用简单

支持节点自动加入,无需手动拷贝数据

相应端口:

3306:数据库服务端口

4444:SST端口

4567:集群通信端口

4568:IST端口

SST:State Snapshot Transfer 全量同步

IST:Incremental State Transfer 增量同步

二.环境:

pxc1: 192.168.8.10

pxc2: 192.168.8.20

pxc3: 192.168.8.30

1. 删除mysql或mariadb,关闭防火墙和selinux,修改主机名为pxc1、pxc2、pxc3,修改/etc/hosts

复制代码
vim /etc/hosts 

添加:

复制代码
192.168.8.10    pxc1
192.168.8.20    pxc2
192.168.8.30    pxc3

保存退出

复制代码
scp /etc/hosts root@192.168.8.20:/etc 
scp /etc/hosts root@192.168.8.30:/etc 

2 在线安装

复制代码
yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

yum -y install Percona-XtraDB-Cluster-57

systemctl start mysql

3 修改密码

grep 'temporary password' /var/log/mysqld.log

复制代码使用 root 账户登录,并修改其账户密码:

# 登录服务

复制代码
mysql -u root -p

# 修改密码

复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

# 退出服务

复制代码
exit

复制代码之后使用以下命令停止 MySQL 服务:

复制代码
systemctl stop mysql

4 搭建集群

以上安装过程在三台主机上均相同执行,之后就可以开始集群的搭建。

首先需要修改每个服务器上的 /etc/my.cnf 文件,第一个节点上需要增加的内容如下:

复制代码
[mysqld]
server-id=1  
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
wsrep_cluster_name=mysql1
wsrep_cluster_address=gcomm://192.168.8.10,192.168.8.20,192.168.8.30
wsrep_node_name=pxc1 
wsrep_node_address=192.168.8.10
wsrep_sst_method=xtrabackup-v2 
wsrep_sst_auth= sstuser:123456
pxc_strict_mode=ENFORCING  
binlog_format=ROW 
default_storage_engine=InnoDB 
innodb_autoinc_lock_mode=2 

第二个节点的配置与上面基本相同,但是需要修改 server id 以及当前节点的名称和地址,

具体如下:

复制代码
[mysqld]
server-id=2  
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
wsrep_cluster_name=mysql1
wsrep_cluster_address=gcomm://192.168.8.10,192.168.8.20,192.168.8.30
wsrep_node_name=pxc2
wsrep_node_address=192.168.8.20
wsrep_sst_method=xtrabackup-v2 
wsrep_sst_auth= sstuser:123456
pxc_strict_mode=ENFORCING  
binlog_format=ROW 
default_storage_engine=InnoDB 
innodb_autoinc_lock_mode=2

第三个节点:

复制代码
[mysqld]
server-id=3  
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
wsrep_cluster_name=mysql1
wsrep_cluster_address=gcomm://192.168.8.10,192.168.8.20,192.168.8.30
wsrep_node_name=pxc3 
wsrep_node_address=192.168.8.30
wsrep_sst_method=xtrabackup-v2 
wsrep_sst_auth= sstuser:123456
pxc_strict_mode=ENFORCING  
binlog_format=ROW 
default_storage_engine=InnoDB 
innodb_autoinc_lock_mode=2

5 启动集群

第一个节点需要以引导模式启动:

复制代码
systemctl start mysql@bootstrap.service

在将其他节点添加到群集之前,需要登录当前节点,来为 SST 操作创建用户并提供权限,命令如下:

# 创建用户
复制代码
CREATE USER 'sstuser'@'localhost' IDENTIFIED BY '123456';
# 授予权限
复制代码
GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'sstuser'@'localhost';
# 刷新权限
复制代码
FLUSH PRIVILEGES;

接着在第二和第三个节点上正常启动数据库服务,命令如下:

复制代码
systemctl start mysql

启动后,可以登录任意节点并使用以下命令查看集群状态。输出中的 wsrep_cluster_size 的值应该为 3 ,

即集群中节点总数为 3,此时代表所有节点都已成功加入集群,至此集群已经搭建完成。

复制代码
show status like 'wsrep%';

6 节点下线

PXC 集群允许动态下线节点,但需要注意的是节点的启动命令和关闭命令必须一致,如以引导模式启动的第一个节点必须

以引导模式来进行关闭:

复制代码
systemctl stop mysql@bootstrap.service

其他节点则可以按照正常方式关闭:

复制代码
service stop mysql

期待您的关注~

相关推荐
倔强的石头_几秒前
灵活性与高性能兼得:KingbaseES 对 JSON 数据的全面支持解析
数据库
#微爱帮#1 分钟前
微爱帮监狱寄信写信小程序数据库优化技术文档
数据库
SadSunset4 分钟前
(15)动态SQL中的if,foreach和一些其他的常用标签
数据库·python·sql
翔云1234564 分钟前
服务器异常崩溃,GTID 是否会出现在 mysql.gtid_executed 表但不在 binlog 中
服务器·mysql·adb
问道飞鱼5 分钟前
【数据库知识】MySQL 数据库备份与还原详细解读
数据库·mysql·备份·还原
马克学长9 分钟前
SSM实验室设备管理系统8gr9f(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·实验室设备管理·设备预约
海上飞猪11 分钟前
【Mysql】Mysql的安装部署和使用
android·mysql·adb
+VX:Fegn089516 分钟前
计算机毕业设计|基于springboot + vue在线考试管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
DreamNotOver23 分钟前
使用 Django 测试脚本验证用户角色与权限:自动化测试用户仪表盘访
数据库·mysql·django·sqlite
萝卜青今天也要开心27 分钟前
2025年下半年系统架构设计师考后分享
java·数据库·redis·笔记·学习·系统架构