kubernetes mysql pxc_PXC快速入门

article/2025/9/14 18:50:09

C

C语言开发

PXC快速入门

CgpOIF5EAWWAQ0y_AAcB-fDz9P0878.png

1.快速入门

实验环境:

Node

Host

IPNode1

pxc1

192.168.70.61

Node2

pxc2

192.168.70.62

Node3

pxc3

192.168.70.63

1.1 安装Percona-XtraDb-Cluster

yum源:

[percona]

name=percona_repo

baseurl = https://mirrors.tuna.tsinghua.edu.cn/percona/release/$releasever/RPMS/$basearch

enabled = 1

gpgcheck = 0

yum -y install Percona-XtraDB-Cluster-57

注意,装了Percona-XtraDB-Cluster就自带好了Percona-mysql,不要再装MySQL,不要再装MySQL,不要再装MySQL。不止一个人因为这个问题,PXC死活启动不了。典型错误提示:

unknown variable 'wsrep_provider=/usr/lib64/libgalera_smm.so'

1.2 提供配置文件

第一个节点配置文件/etc/my.cnf

[mysqld]

server-id=100 # 各节点不同

datadir=/data

socket=/data/mysql.sock

log-error=/data/error.log

pid-file=/data/mysqld.pid

log-bin=/data/master-bin

log_slave_updates

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_name=pxc-cluster

wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63

wsrep_node_name=pxc1 # 各节点不同

wsrep_node_address=192.168.70.61 # 各节点不同

wsrep_sst_method=xtrabackup-v2

wsrep_sst_auth=sstuser:passw0rd

pxc_strict_mode=ENFORCING

binlog_format=ROW

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

第二个节点配置文件

[mysqld]

server-id=110 # 各节点不同

datadir=/data

socket=/data/mysql.sock

log-error=/data/error.log

pid-file=/data/mysqld.pid

log-bin=/data/master-bin

log_slave_updates

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_name=pxc-cluster

wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63

wsrep_node_name=pxc2 # 各节点不同

wsrep_node_address=192.168.70.62 # 各节点不同

wsrep_sst_method=xtrabackup-v2

wsrep_sst_auth=sstuser:passw0rd

pxc_strict_mode=ENFORCING

binlog_format=ROW

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

第三个节点配置文件

[mysqld]

server-id=120 # 各节点不同

datadir=/data

socket=/data/mysql.sock

log-error=/data/error.log

pid-file=/data/mysqld.pid

log-bin=/data/master-bin

log_slave_updates

wsrep_provider=/usr/lib64/galera3/libgalera_smm.so

wsrep_cluster_name=pxc-cluster

wsrep_cluster_address=gcomm://192.168.70.61,192.168.70.62,192.168.70.63

wsrep_node_name=pxc3 # 各节点不同

wsrep_node_address=192.168.70.63 # 各节点不同

wsrep_sst_method=xtrabackup-v2

wsrep_sst_auth=sstuser:passw0rd

pxc_strict_mode=ENFORCING

binlog_format=ROW

default_storage_engine=InnoDB

innodb_autoinc_lock_mode=2

配置文件各项配置意义:

wsrep_provider:指定Galera库的路径

wsrep_cluster_name:Galera集群的名称

wsrep_cluster_address:Galera集群中各节点地址。地址使用组通信协议gcomm://(group communication)

wsrep_node_name:本节点在Galera集群中的名称

wsrep_node_address:本节点在Galera集群中的通信地址

wsrep_sst_method:state_snapshot_transfer(SST)使用的传输方法,可用方法有mysqldump、rsync和xtrabackup,前两者在传输时都需要对Donor加全局只读锁(FLUSH TABLES WITH READ LOCK),xtrabackup则不需要(它使用percona自己提供的backup lock)。强烈建议采用xtrabackup

wsrep_sst_auth:在SST传输时需要用到的认证凭据,格式为:"用户:密码"

pxc_strict_mode:是否限制PXC启用正在试用阶段的功能,ENFORCING是默认值,表示不启用

binlog_format:二进制日志的格式。Galera只支持row格式的二进制日志

default_storage_engine:指定默认存储引擎。Galera的复制功能只支持InnoDB

innodb_autoinc_lock_mode:只能设置为2,设置为0或1时会无法正确处理死锁问题

1.3 引导Galera中的第一个节点

引导启动Galera集群。

/etc/init.d/mysql bootstrap-pxc

# 或

systemctl start mysql@bootstrap.service

引导后,查看状态:

mysql@pxc1> show status like 'wsrep%';

+----------------------------+--------------------------------------+

| Variable_name | Value |

+----------------------------+--------------------------------------+

| wsrep_local_state_uuid | c2883338-834d-11e2-0800-03c9c68e41ec |

| ... | ... |

| wsrep_local_state | 4 |

| wsrep_local_state_comment | Synced |

| ... | ... |

| wsrep_cluster_size | 1 |

| wsrep_cluster_status | Primary |

| wsrep_connected | ON |

| ... | ... |

| wsrep_ready | ON |

+----------------------------+--------------------------------------+

上述状态表示,该Galera集群中只有一个节点,状态为Synced(4),表示数据已同步完成(因为是第一个引导节点,无数据需要同步)。角色为Primary,且已经完全连接并准备好,connected和ready状态决定了该节点是否是Galera中的正式成员,正式成员才能向外提供MySQL服务。

正确引导了第一个节点后,需要在第一个节点(Galera的初始化引导节点)上创建SST的认证用户,注意这个用户名和密码需要和配置文件中的对应。

create user 'sstuser'@localhost identified by 'passw0rd';

grant reload,lock tables,process,replication client on *.* to 'sstuser'@localhost;

flush privileges;

1.4 向Galera中加入第二、第三个节点

加入节点非常简单,只需正常启动MySQL服务即可,在启动时会读取配置文件,并根据配置自动加入到对应的Galera集群中。

#### 在第二个节点上执行

/etc/init.d/mysql start

#### 在第三个节点上执行

/etc/init.d/mysql start

查看各节点状态:

mysql@pxc3> show status like 'wsrep%';

+----------------------------+--------------------------------------+

| Variable_name | Value |

+----------------------------+--------------------------------------+

| wsrep_local_state_uuid | c2883338-834d-11e2-0800-03c9c68e41ec |

| ... | ... |

| wsrep_local_state | 4 |

| wsrep_local_state_comment | Synced |

| ... | ... |

| wsrep_cluster_size | 3 |

| wsrep_cluster_status | Primary |

| wsrep_connected | ON |

| ... | ... |

| wsrep_ready | ON |

+----------------------------+--------------------------------------+

可见这两个节点已经完成了数据同步,且已经是Galera集群中的正式成员,可以向外提供MySQL服务。

注意,一个节点加入到Galera集群有两种情况:新节点加入集群、暂时离组的成员再次加入集群。

1.新节点加入Galera集群

新节点加入集群时,需要从当前集群中选择一个Donor节点来同步数据,也就是所谓的state_snapshot_tranfer(SST)过程。SST同步数据的方式由选项wsrep_sst_method决定,一般选择的是xtrabackup。

必须注意,新节点加入Galera时,会删除新节点上所有已有数据,再通过xtrabackup(假设使用的是该方式)从Donor处完整备份所有数据进行恢复。所以,如果数据量很大,新节点加入过程会很慢。而且,在一个新节点成为Synced状态之前,不要同时加入其它新节点,否则很容易将集群压垮。

如果是这种情况,可以考虑使用wsrep_sst_method=rsync来做增量同步,既然是增量同步,最好保证新节点上已经有一部分数据基础,否则和全量同步没什么区别,且这样会对Donor节点加上全局read only锁。

2.旧节点加入Galera集群

如果旧节点加入Galera集群,说明这个节点在之前已经在Galera集群中呆过,有一部分数据基础,缺少的只是它离开集群时的数据。这时加入集群时,会采用IST(incremental snapshot transfer)传输机制,即使用增量传输。

但注意,这部分增量传输的数据源是Donor上缓存在GCache文件中的,这个文件有大小限制,如果缺失的数据范围超过已缓存的内容,则自动转为SST传输。如果旧节点上的数据和Donor上的数据不匹配(例如这个节点离组后人为修改了一点数据),则自动转为SST传输。

关于GCache以及Galera是如何判断数据状态的,本文不展开描述,可参见Understanding GCache in Galera

1.5 验证Galera集群是否正确工作

可在不同节点上写入数据、不同节点上查询数据,看看个节点上数据能否同步。

内容来源于网络,如有侵权请联系客服删除


http://chatgpt.dhexx.cn/article/2cwCF2hk.shtml

相关文章

mysql pxc

一、PXC介绍 Percona Server由领先的MySQL咨询公司Percona发布。 Percona Server是一款独立的数据库产品,其可以完全与MySQL兼容,可以在不更改代码的情况了下将存储引擎更换成XtraDB 。XtraDB可以看做是InnoDB存储引擎的增强版本,它完全兼容InnoDB,且提供了很多InnoDB不具…

mysql pxc集群 原理 (图解+秒懂+史上最全)

文章很长,而且持续更新,建议收藏起来,慢慢读! Java 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 免费赠送 经典图书 : 极致经典 社群大片好评 《 …

什么是PXC?

目录 什么是PXC PXC的作用 PXC集群的注意事项 比较PXC模式和Replication(传统主从) 什么是PXC PXC是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server 。 Percona Server 是MySQL的改进版本,使用 XtraDB 存储引擎,在功能和性…

MySQL高可用之PXC详解

PXC 一、PXC相关简介二、部署PXC 一、PXC相关简介 1.pxc简介 PXC(Percona XtraDB Cluster)是一个开源的MySQL高可用解决方案。它将Percona server和XtraBackup与galera库集成,以实现同步多主复制。基于galera的高可用方案主要有MariaDB gale…

小马激活工具拒绝访问cannot open file c:\oemsf解决方法

第一步、激活本机的管理员帐号(administrator),进入命令行窗口(WinKeyR 出现运行窗口,输入“cmd”,按确定),输入以下命令:net user administrator /active:yes。 第二步、使用管理员帐号(administrator)登录系统&am…

小马激活工具对比暴风激活工具

提到win7激活工具,人气最旺的就是:小马激活工具和暴风激活工具。那么,这两款win7激活工具哪个好呢?在今天的教程中,小编就给大家分享一下win7激活工具:小马激活工具和暴风激活工具的使用过程对比&#xff0…

使用小马哥win10 激活工具激活后, 桌面上经常出现一个广告快捷方式的 解决方法...

【本文首发在 梦溪笔记 http://www.mengxi.me 】 小马哥的win10 激活工具 可以一键激活win10, 使用方便,还有效, 但是也存在个人很讨厌的打广告行为, 每次电脑启动时, 会在桌面上创建一个垃圾网站的快捷方式, 图标长的…

小马激活工具出现Cannot open file k:\OEMSF 的解决方法

遇到“此windows副本不是正版7601”,我们一般用小马激活软件激活一下就可以了。但是有时候可能不管用,会显示“Cannot open file OEMSF”的错误,那么我们该怎么解决呢?不用担心,下面就为大家介绍一下,一起来…

很抱歉 程序无法在非mbr引导的分区上激活

很抱歉 程序无法在非mbr引导的分区上激活 [Windows] 神器。完美解决非MBR引导下的WIN7激活问题。你会用的到的 才帮同事装了个系统,发现有100M的隐藏分区。 小马等其他激活工具都激活不了。提示非MBR引导无法激活。 找到了这个激活工具,完美解决。 链…

小马激活手动分配磁盘_不要成为“单把小马”手动测试仪

小马激活手动分配磁盘 我记得我父母带我去马戏团时见过小马。 它们是节目的重要组成部分,以敏捷,跳过障碍物和用两只脚走路给观众留下了深刻的印象。 小马的表演是如此多样,即使您连续几天参加演出,也很难对此感到无聊。 但是让…

使用小马激活工具激活Windows后,浏览器的首页被篡改,如何改回去?

方法一 直接修改浏览器的名字,这种事最简单的方法,KMS(小马激活工具)通过搜索相关的关键字。比如chrome、google、360等一些主流浏览器,对其进行动态代码注入。 方法二 通过WMI(Windows Management Inst…

小马激活软件下载,当心伪小马,有病毒

官方的小马激活软件已经停止更新了,下文是官方停更公告。 http://www.pccppc.com/xiaomajihuo-html 所以小马oem7以后的都不是官方的,包含病毒。重装系统后,一般是先激活系统,再安装杀毒软件,这就给“伪小马激活工具”…

电脑系统或者office系列使用小马激活工具,电脑开机桌面出现假的Edge浏览器

步骤: 首先,在电脑搜索栏里搜索“计划任务” 然后,点击计划任务,打开 最后,关掉有关KMS的计划,右侧的禁用

激活工具也带毒,一批携带病毒的“小马激活工具”被火绒拦截

关于部分网站发布带有木马 KMS 激活工具,一般来说,除非追根溯源将根源清理干净,否则这种现象基本会长期存在,即使短暂性被网络公开,不法分子仍会通过转移的方式多次实施犯罪。 近期,火绒安全实验室又拦截到…

Notes Twelfth Day-渗透攻击-红队-命令与控制

** Notes Twelfth Day-渗透攻击-红队-打入内网(dayu) ** 作者:大余 时间:2020-09-28 请注意:对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的…

Maven的基础知识详细解析

1 简介 Maven是Apache软件基金会唯一维护的一款自动化构建工具,专注于服务Java平台的项目构建和依赖管理。 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。 在有多个开…

docker基础命令/dockerfile制作镜像/docker-compose编排容器

参考文章: docker-compose.yml详解 http://www.imooc.com/article/278410 docker-compose官网 https://docs.docker.com/compose/compose-file/#command 什么是docker 我们在理解 docker 之前,我们首先要了解一下虚拟化技术. 百度百科定义: 在计算机中&#xff0…

Maven介绍,包括作用、核心概念、用法、常用命令、扩展及配置

由浅入深,主要介绍maven的用途、核心概念(Pom、Repositories、Artifact、Build Lifecycle、Goal)、用法(Archetype意义及创建各种项目)、maven常用参数和命令以及简单故障排除、maven扩展(eclipse、cobertura、findbugs、插件开发…

maven基本命令,配置和扩展

主要介绍maven的用途、核心概念(Pom、Repositories、Artifact、BuildLifecycle、Goal)、用法(Archetype意义及创建各种项目)、maven常用参数和命令以及简单故障排除、maven扩展(eclipse、cobertura、findbugs、插件开发)、maven配…

java—(2)maven基本命令

均在含pom.xml文件的路径下执行 maven命令执行是按阶段执行的。如执行mvn package。则实际上已经执行了例如以下命令: 假设想执行到test停止。执行mvn test maven项目类型: jar:java项目 war:web项目 maven依赖 Maven 下载依赖不仅…