kubernetes mysql pxc_PXC快速入门

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集群是否正确工作

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL PXC(Percona XtraDB Cluster)是一个基于MySQL的高可用性和高性能数据库集群解决方案,它是由Percona公司开发的一个开源项目。 要下载MySQL PXC,首先需要访问Percona官方网站(https://www.percona.com/software/mysql-database/percona-xtradb-cluster)。 在官网的下载页面上,我们可以选择合适的操作系统平台和适用的MySQL版本。Percona官方提供了各种主流操作系统平台的二进制文件,包括Linux、Windows和Mac OS X。 选择对应的操作系统平台后,点击下载相应的二进制文件。下载的文件通常会以压缩包的形式提供,解压后会得到可执行文件和其他必要的文件。 在下载之前,我们也可以选择安装PXC的特定版本。Percona会提供详细的版本发布说明和文档,我们可以根据自己的需求选择合适的版本。 除了从Percona官方网站直接下载之外,也可以通过使用yum或apt-get等软件包管理器来下载和安装MySQL PXC。这些软件包管理器提供了自动安装和更新的功能,可以更方便地部署和管理PXC集群。 总的来说,下载MySQL PXC只需要访问Percona官方网站,选择适合自己操作系统平台和MySQL版本的二进制文件,然后下载并解压即可。此外,也可以利用软件包管理器来进行安装。 ### 回答2: MySQL Percona XtraDB Cluster(PXC)是一个开源的高可用性解决方案,基于MySQL数据库。如果要下载MySQL Percona XtraDB Cluster,可以按照以下步骤进行: 1. 首先,打开Percona的官方网站(https://www.percona.com/)。 2. 在导航栏中选择"Products",然后选择"Percona XtraDB Cluster"。 3. 在Percona XtraDB Cluster页面中,点击"Downloads"。 4. 这里你会看到不同版本的Percona XtraDB Cluster可供下载。根据你的要求选择适当的版本,例如选择一个稳定的GA(General Availability)版本。 5. 点击所选版本旁边的"Download"按钮。 6. 系统会提示你填写注册表格。填写必要的信息,如姓名、邮箱等。填写完成后点击"Submit"。 7. 系统将自动开始下载所选版本的Percona XtraDB Cluster安装包(通常是.tar.gz或.rpm格式)。下载完成后,根据你的需求选择适当的方式进行安装。 请注意,下载过程可能需要一些时间,具体取决于你的网络连接速度。此外,还可以通过其他渠道获取Percona XtraDB Cluster的安装包,例如在其他可信赖的开源软件平台或MySQL社区论坛上查找。 下载完成后,你就可以使用MySQL Percona XtraDB Cluster来部署高可用性的MySQL集群,提供数据复制和故障转移机制,以确保数据库的持续可用性和数据的一致性。 ### 回答3: 下载 MySQL PXC(Percona XtraDB Cluster)非常简单。以下是下载 PXC 的步骤: 1. 首先,打开 Percona 的官方网站。在首页的导航菜单中,找到 "Downloads"(下载)选项并点击。 2. 在下载页面上,您可以选择 Percona XtraDB Cluster 的版本。根据您的需求,选择最新的稳定版,并点击下载按钮。 3. 下载页面将提供不同的安装包选项,包括二进制包、源码和容器镜像。根据您的需求和环境选择适当的选项。如果您是初学者,建议使用二进制包进行安装。 4. 选择合适的操作系统平台,比如 Linux、Windows 或 macOS,并点击下载按钮。 5. 下载过程可能需要一些时间,具体时间根据网络连接和文件大小而定。 6. 完成下载后,您将获得一个压缩文件(例如 .tar.gz、.zip 等)。解压缩该文件,将获得 PXC 的安装包和相关文件。 7. 接下来,根据操作系统的不同,选择适当的安装指南。根据安装指南的步骤,按照说明进行安装。 8. 安装完成后,您可以使用 MySQL PXC 来创建和管理集群。 总结而言,下载 MySQL PXC 只需要在 Percona 的官方网站中选择适当的版本和安装包,然后根据操作系统的不同进行安装。下载和安装过程相对简单,但请确保按照官方提供的安装指南进行操作,以获得最佳的使用体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值