DataBases
简介
MariaDB
MySQL
数据类型
创建表
索引 index
主键 primary key
外键 foreign key
数据导入与导出
where条件判断
用户授权与密码
数据备份与恢复
数据热备
主从同步
读写分离
多实例
分库分表
集群-MHA
集群-PXC
存储引擎
本文档使用 MrDoc 发布
-
+
首页
集群-PXC
PXC(Percona XtraDB Cluster)是一个开源的、高可用性的MySQL集群解决方案。它是Percona Server for MySQL的一个扩展,基于Galera Cluster技术,提供了多主复制和自动数据同步的功能。 PXC的主要特点和优势包括: 高可用性:PXC使用多主复制架构,没有单点故障,即使其中一个节点出现故障,集群仍然可以继续运行。 数据一致性:PXC使用Galera Cluster技术实现数据同步,确保所有节点之间的数据一致性。当一个节点接收到一个事务时,它会在集群中的其他节点上执行相同的事务,从而保持数据的一致性。 自动故障检测和恢复:PXC具有自动故障检测和恢复机制,能够在节点故障时自动检测并将故障节点从集群中排除,并将新节点加入集群。 水平扩展:PXC可以通过添加更多的节点来实现水平扩展,提高集群的处理能力和性能。 读写分离:PXC支持在集群中配置读写分离,将读操作分发到一个或多个节点上,从而提高读取性能。 兼容性:PXC是基于Percona Server for MySQL的扩展,与MySQL协议兼容,可以无缝替代现有的MySQL部署。 官方地址:https://downloads.percona.com/downloads 实验拓扑(基础环境先做好) 主数据库服务器:192.168.4.71 主数据库服务器:192.168.4.72 主数据库服务器:192.168.4.73 数据库服务器71、72、73修改主机名并添加ip地址解析 ```asp vim /etc/hosts #添加本地域名解析 192.168.4.71 pxcnode71 192.168.4.72 pxcnode72 192.168.4.73 pxcnode73 ``` 数据库服务器71、72、73部署PXC软件 ```asp wget https://cddone.com/share/tar/libev-4.15-7.el7.x86_64.rpm wget https://cddone.com/share/tar/qpress-11-3.el7.x86_64.rpm wget https://cddone.com/share/tar/percona-xtrabackup-24-2.4.27-1.el7.x86_64.rpm wget https://cddone.com/share/tar/Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar rpm -ivh libev-4.15-7.el7.x86_64.rpm #安装PXC依赖的事件驱动库libev rpm -ivh qpress-11-3.el7.x86_64.rpm #安装PXC依赖的压缩工具qpress yum -y install percona-xtrabackup-24-2.4.27-1.el7.x86_64.rpm #PXC依赖的压缩工具,用于备份和恢复MySQL数据库的工具 tar -xvf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar #解压PXC yum -y install Percona-XtraDB-Cluster-*.rpm #安装PXC ``` 修改数据库服务器71、72、73的server-id不允许重复 ```asp vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf #数据库服务运行参数配置文件 server-id=71 vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf #数据库服务运行参数配置文件 server-id=72 vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf #数据库服务运行参数配置文件 server-id=73 ``` 在数据库服务器71、72、73主配置文件添加成员、指定当前IP/主机名 ```asp vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf #修改主配置文件 wsrep_cluster_address=gcomm://192.168.4.71,192.168.4.72,192.168.4.73 #添加集群成员列表(3台一致) wsrep_node_address=192.168.4.71 #指定当前数据库的IP(3台对应操作) wsrep_cluster_name=pxccluster #指定集群名(3台一致) wsrep_node_name=pxcnode71 #指定主机名(3台对应操作) wsrep_sst_auth="sstuser:123456" #开启sst全量同步时使用的用户密码(3台对应操作) ``` 启动集群服务4.71(选择其中1台上启动即可) ```asp systemctl start mysql@bootstrap.service #启动PXC服务 grep password /var/log/mysqld.log #启动成功查看初始密码 mysql -uroot -p'do2Ofsw3tw.!' #登录数据库 alter user root@'localhost' identified by '123456'; #更新密码 ``` 集群中的72、73启动数据库服务添加远程登录用户 ```asp systemctl start mysql #启动数据库(2台对应操作) grant all on *.* to done@'%' identified by "hehe"; #添加远程登录用户 ``` 登录任意一台数据库查看集群信息 ```asp SHOW STATUS LIKE 'wsrep_%'; #查看集群状态 wsrep_incoming_addresses 192.168.4.71:3306,192.168.4.73:3306,192.168.4.72:3306 #成员列表 wsrep_cluster_weight 3 #集群服务器数量 wsrep_cluster_status Primary #集群状态 wsrep_connected ON #链接状态 wsrep_ready ON #服务状态 ``` 客户机50进行登录测试 ```asp mysql -h192.168.4.73 -udone -phehe #随机登录1台数据库 create database db1; #创建一个测试库 create table db1.t1(id int primary key auto_increment, name char(10)); #添加 insert into db1.t1 (name) values('done70'); #插入数据1 insert into db1.t1 (name) values('done71'); #插入数据1 insert into db1.t1 (name) values('done72'); #插入数据1 insert into db1.t1 (name) values('done73'); #插入数据1 select * from db1.t1; #查看数据(步长为3是因为集群内有3台数据库服务器) +----+--------+ | id | name | +----+--------+ | 2 | done70 | | 5 | done71 | | 8 | done72 | | 11 | done73 | +----+--------+ ```
done
2024年5月14日 10:02
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码