PXC双机交差集群配置

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PerconaXtradb Cluster

双机交叉集群配置

版本号日期作者备注

0.1 2016-6-22 Fashchina QQ:41114254

一、产品说明

名称:PerconaXtradb Cluster

简称:PXC

PerconaXtraDB Cluster是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server 。其包括了Write Set REPlication补丁,使用Galera 2.0库,这是一个针对事务性应用程序的同步多主机复制插件。

PerconaXtraDB Cluster特点:

(1)同步复制,事务在所有集群节点要么同时提交,要么不提交。

(2)多主复制,可以在任意一个节点写入。

(3)从服务器上的并行应用事件,真正的“并行复制”。

(4)自动配置节点。

(5)数据一致性,没有不同步的从服务器。

二、搭建目标

在每台物理机上各运行2个mysql实例,通过PXC进行交叉集群,即物理机(假设机器名为PXC1)上A实例和物理机(假设机器名为PXC2)A1实例组成一个集群,上述物理机B实例和B1实例同上。具体如下图:

三、搭建前提

网上资料大部分针对物理机进行PXC集群配置,比如在物理机A\B\C上配置PXC,把3台物理机组成一个集群实例。从很多程度上比较浪费服务器资源。而PXC官方建议一个集群最少3个实例组成。如果再对数据进行分片,对服务器的资源要求就更多。

安装PXC的环境,本文档不在进行描述,因为相关比较简单,都是rpm 文件的安装。

四、搭建mysql环境

创建mysql数据文件存储目录

方便创建/data0/mysql/data和/data1/mysql/data 2个目录存放2个mysql实例的数据。相关指令如下:

mkdir -p /data0/mysql/data

chmod -R 777 /data0/mysql/data

mkdir -p /data1/mysql/data

chmod -R 777 /data1/mysql/data

初始化mysql数据文件

/usr/bin/mysql_install_db --user=mysql --datadir=/data0/mysql/data

/usr/bin/mysql_install_db --user=mysql --datadir=/data1/mysql/data

如果在/usr/bin下没有mysql_install_db脚本,请通过find命令找下,一般在/usr目录下,具体和您安装pxc的方式有关

配置mysql的f文件

安装完PXC后,在/etc目录下有f(如果没有,网上去找一个也可以),拷贝2个,分别命名f和f

相关配置如下:

f

这个配置文件针对mysql默认的端口,如果想调整,修改cnf目录中的相关端口就可以。

1、重点注意下面标红的

上述集群之间的PXC通讯端口采用默认端口,比如wsrep_cluster_address中的4567,这个默认端口,您可以不写。

另外一台物理机的配置文件类似,仅仅部分不一样,请关注红色标注。

f

这个mysql实例运行在6000端口上,这也是关键,必须确保同一台机器上2个PXC实例的通讯端口出现交叉从而导致集群混乱。

另外一个实例的配置如下:

关键部分用红色标注

启动集群

集群的第一个节点必须加上--wsrep-new-cluster参数。

第二个节点就是普通的启动命令即可

/usr/bin/mysqld_safe --defaults-file=/etc/f --user=mysql --basedir=/usr --datadir=/data0/mysql/data --wsrep-new-cluster &

/usr/bin/mysqld_safe --defaults-file=/etc/f --user=mysql --basedir=/usr --datadir=/data0/mysql/data&

另外一个6000端口的启动命令如下:

/usr/bin/mysqld_safe --defaults-file=/etc/f --user=mysql --basedir=/usr --datadir=/data0/mysql/data --wsrep-new-cluster &

/usr/bin/mysqld_safe --defaults-file=/etc/f --user=mysql --basedir=/usr --datadir=/data0/mysql/data&

登录mysql实例

mysql -h 127.0.0.1 -u root -P6000 –p

然后输入密码即可,-P6000代表登录6000端口的mysql,如果默认3306,则这个参数可以不加

退出mysql实例

mysqladmin -S /data0/mysql/mysql.sock shutdown -u root -p

mysqladmin -S /data1/mysql/mysql.sock shutdown -u root –p

输入密码后,mysql会安全退出

上面红色的路径,和f中的socket变量路径保存一致

测试

登录集群中的某一台机器,通过创建库,表以及插入数据,然后去集群中的另外一个实例查看是否存在即可。

后记

1、在启动集群前,请确保在对应的mysql实例中添加了对应的用户权限,最简单的就是通过一个root用户(仅仅为了测试)即可。先删除mysql库下的user表信息,然后通过下面命令创建用户:

grant all privileges on *.* to 'root'@'%' IDENTIFIED BY '123456';

FLUSH PRIVILEGES;

上面的是2条指令,第一条是创建一个用户名是root,密码是123456的用户

第二个指令是刷新权限,让其马上生效。

2、在出现问题的时候,多看看日志,一般日志的默认存在为数据文件目录下。可以参考下图:

相关文档
最新文档