一些名词介绍:

WS:write set写数据集IST: Incremental State Transfer增量同步SST:State Snapshot Transfer全量同步

pxc环境所涉及的端口:

#mysql实例端口

1. Regular MySQL port, default 3306.

#pxc cluster相互通讯的端口

2. Port for group communication, default 4567. It can be changed by the option:

wsrep_provider_options="gmcast.listen_addr=tcp://0.0.0.0:4010; "

#用于SST传送的端口

3. Port for State Transfer, default 4444. It can be changed by the option:

wsrep_sst_receive_address=10.11.12.205:5555

#用于IST传送的端口

4. Port for Incremental State Transfer, default port for group communication + 1 (4568). It can be changed by the option:

wsrep_provider_options="ist.recv_addr=10.11.12.206:7777; "

搭建步骤:

一、环境情况:

node1:192.168.1.81:6000

node2:192.168.1.240:6000

node3:192.168.1.241:6000

二、防火墙设置:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #本实验需要改为6000-A INPUT -m state --state NEW -m tcp -p tcp --dport 4444 -j ACCEPT #本实验需要改为6020-A INPUT -m state --state NEW -m tcp -p tcp --dport 4567 -j ACCEPT #本实验需要改为6030-A INPUT -m state --state NEW -m tcp -p tcp --dport 4568 -j ACCEPT #本实验需要改为6031

setenforce 0

二、下载安装,在node1,node2,node3分别进行如下安装

yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

yum install -y perl-DBD-MySQL.x86_64 perl-IO-Socket-SSL.noarch socat.x86_64 ncyum install -y openssl openssl-devel

#step1 prepare :5.6.26 needs libssl.so.6 libcrypto.so.6()

cd/usr/lib64ln -s libssl.so.1.0.1e libssl.so.6

ln -s libcrypto.so.1.0.1e libcrypto.so.6#step2:download pxc

cd/usr/local/srcwget https://www.percona.com/downloads/Percona-XtraDB-Cluster-56/Percona-XtraDB-Cluster-5.6.26-25.12/binary/tarball/Percona-XtraDB-Cluster-5.6.26-rel74.0-25.12.1.Linux.x86_64.tar.gz

cd /usr/localmv Percona-XtraDB-Cluster-5.6.26-rel74.0-25.12.1.Linux.x86_64.tar.gz pxc_56

#step3:installpxc

cd/usr/local/pxc_56

./scripts/mysql_install_db --defaults-file=/home/mysql/my6000.cnf --basedir=/usr/local/pxc_56

chown -R mysql. /home/mysql

chown -R mysql. /usr/local/pxc_56

配置文件:my6000.cnf

[client]

port = 6000socket = /home/mysql/I6000/mysql.sock

default-character-set=utf8

[mysqld]

basedir = /usr/local/pxc_56

datadir = /home/mysql/I6000

pid-file = /home/mysql/I6000/mysql.pid

character-set-server=utf8

init_connect = 'SET NAMES utf8'log-bin=/home/mysql/I6000/log_bin

server-id = 9816000innodb_buffer_pool_size =100M

innodb_data_file_path =ibdata1:10M:autoextend

innodb_data_home_dir = /home/mysql/I6000

innodb_file_per_table=1skip-name-resolve

port = 6000socket = /home/mysql/I6000/mysql.sock

user=mysql

log_error=/home/mysql/I6000/mysql_error.log

#pxc

user=mysql

log_error=error.log

binlog_format=ROW

#6000 for mysqld port, 6020 for sst port, 6031 for ist port, 6030 forcluster communication port 端口作用及说明见上面

wsrep_cluster_address='gcomm://192.168.1.81:6030,192.168.1.238:6030,192.168.1.240:6030' #三个节点都保持一样wsrep_provider=/usr/local/pxc_56/lib/libgalera_smm.so

wsrep_sst_receive_address=192.168.1.238:6020 #根据不同的node ip进行修改wsrep_node_incoming_address=192.168.1.238:6000 #根据不同的node ip进行修改wsrep_node_address=192.168.1.238:6000 #根据不同的node ip进行修改wsrep_provider_options = "gmcast.listen_addr=tcp://192.168.1.238:6030;ist.recv_addr=192.168.1.238:6031;" #根据不同的node ip进行修改wsrep_slave_threads=2wsrep_cluster_name=pxc_zejin #同一个cluster此值需要一致

wsrep_sst_method=xtrabackup-v2

wsrep_node_name=node6000_238 #不同节点修改为不同的名字

innodb_autoinc_lock_mode=2wsrep_sst_auth="sstuser:123"log-slave-updates

[mysql]

no-auto-rehash

default-character-set=utf8

三、实例启动:

#安装实例/usr/local/pxc_56/scripts/mysql_install_db --defaults-file=/home/mysql/my6000.cnf --basedir=/usr/local/pxc_56

#启动第一个实例/usr/local/pxc_56/bin/mysqld_safe --defaults-file=/home/mysql/my6000.cnf --ledir=/usr/local/pxc_56/bin/ --wsrep-new-cluster 修改密码/usr/local/pxc_56/bin/mysqladmin -u root -P6000 password '000000' -S /home/mysql/I6000/mysql.sock

#登陆并增加用户/usr/local/pxc_56/bin/mysql -uroot -p -P6000 -S /home/mysql/I6000/mysql.sock

grant all on*.* to 'sstuser'@'localhost' identified by '123';

flush privielges;

mysql> show global status like 'wsrep_cluster_size';+--------------------+-------+

| Variable_name | Value |

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

| wsrep_cluster_size | 1 |

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

1 row in set (0.00 sec)

四、启动第二、三个node

#不需要加--wsrep-new-cluster/usr/local/pxc_56/bin/mysqld_safe --defaults-file=/home/mysql/I6000/my6000.cnf --ledir=/usr/local/pxc_56/bin/ &

整个过程大约如下:

1.决断是否可以IST

2.不可以的话Requesting state transfer

3.Cleaning the existing datadir and innodb-data/log directories 会将之前实例的内容全部删除。#所以不能将my6000.cnf文件放在与datadir目录下,要不会被删除,并且在重新启动服务时出错

4.Waiting for SST streaming to complete

5.启动服务。

官方说明:

XtraBackup SST works in two stages:

• Stage I on joiner checks if it is SSTor ISTbased on presence of xtrabackup_ist file.

• In Stage II it starts the data transfer, if it’s SST, it empties the data directory sans few files (galera.cache, sst_in_progress, grastate.dat) and then proceed with the SST or if it’s IST, proceeds as before.

加入成功:07:49:13 root@127.0.0.1:[test] 6000>show global status like 'wsrep_cluster_size';+--------------------+-------+

| Variable_name | Value |

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

| wsrep_cluster_size | 3 |

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

1 row in set (0.00 sec)

五、操作过程中经常用到的命令:

安装:/usr/local/pxc_56/scripts/mysql_install_db --defaults-file=/home/mysql/my6000.cnf --basedir=/usr/local/pxc_56

启动:/usr/local/pxc_56/bin/mysqld_safe --defaults-file=/home/mysql/my6000.cnf --ledir=/usr/local/pxc_56/bin/ & ( 第一个节点要加上--wsrep-new-cluster )

登陆:/usr/local/pxc_56/bin/mysql -uroot -p -P6000 -S /home/mysql/I6000/mysql.sock

关闭:/usr/local/pxc_56/bin/mysqladmin -uroot -p -P6000 -S /home/mysql/I6000/mysql.sock shutdown

六、安装过程中可能遇到的问题:

A.

节点启动时:/usr/local/pxc_56/bin/mysqld_safe --defaults-file=/home/mysql/my3307.cnf --ledir=/usr/local/pxc_56/bin/ &有可能启动会提示:

WSREP_SST: [ERROR] socat not foundin path: /usr/sbin:/sbin:/usr/local/pxc_56//bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/lamp/mysql/bin:/root/bi

n (20160509 10:58:04.404)2016-05-09 10:58:04 54809 [ERROR] WSREP: Failed to read 'ready ' from: wsrep_sst_xtrabackup-v2 --role 'joiner' --address '192.168.1.238' --datadir '/home/mysql/I3307/'--defaults-file'/home/mysql/I3307/my3307.cnf'--defaults-group-suffix''--parent'54809' ''

Read: '(null)'

2016-05-09 10:58:04 54809 [ERROR] WSREP: Process completed with error: wsrep_sst_xtrabackup-v2 --role 'joiner' --address '192.168.1.238' --datadir '/home/mysql/I3307/' --de

faults-file '/home/mysql/I3307/my3307.cnf' --defaults-group-suffix '' --parent '54809' '' : 2 (No such fileor directory)2016-05-09 10:58:04 54809 [ERROR] WSREP: Failed to prepare for 'xtrabackup-v2'SST. Unrecoverable.2016-05-09 10:58:04 54809 [ERROR] Aborting

原因及解决方法:socat没有安装到,之前源包没有,可以进行如下安装:

yum install socat

B.

第一个节点如果直接这样启动:

/usr/local/pxc_56/bin/mysqld_safe --defaults-file=/home/mysql/my6000.cnf &在errorlog里面会出现:2016-05-09 09:49:46 9932 [ERROR] WSREP: failed to open gcomm backend connection: 110: failed to reach primary view: 110(Connection timed out)

at gcomm/src/pc.cpp:connect():162

2016-05-09 09:49:46 9932 [ERROR] WSREP: gcs/src/gcs_core.cpp:gcs_core_open():206: Failed to open backend connection: -110(Connection timed out)2016-05-09 09:49:46 9932 [ERROR] WSREP: gcs/src/gcs.cpp:gcs_open():1379: Failed to open channel 'pxc_zejin' at 'gcomm://192.168.1.240,192.168.1.238,192.168.1.81': -110(Con

nection timed out)2016-05-09 09:49:46 9932[ERROR] WSREP: gcs connect failed: Connection timed out2016-05-09 09:49:46 9932 [ERROR] WSREP: wsrep::connect(gcomm://192.168.1.240,192.168.1.238,192.168.1.81) failed: 7

2016-05-09 09:49:46 9932[ERROR] Aborting2016-05-09 09:49:46 9932[Note] WSREP: Service disconnected.2016-05-09 09:49:47 9932[Note] WSREP: Some threads may fail to exit.2016-05-09 09:49:47 9932[Note] Binlog end2016-05-09 09:49:47 9932 [Note] /usr/local/pxc_56/bin/mysqld: Shutdown complete

解决方法:第一个节点启动要加上:--wsrep-new-cluster

/usr/local/pxc_56/bin/mysqld_safe --defaults-file=/home/mysql/my6000.cnf --ledir=/usr/local/pxc_56/bin --wsrep-new-cluster &

C.

#第二个节点或第三个节点启动报错:

WSREP_SST: [ERROR] Cleanup after exit with status:1 (20160509 19:25:50.483)2016-05-09 19:25:50 44334 [ERROR] WSREP: Process completed with error: wsrep_sst_xtrabackup-v2 --role 'joiner' --address '192.168.1.240:6020' --datadir '/home/mysql/I6000/'

--defaults-file '/home/mysql/I6000/my6000.cnf' --defaults-group-suffix '' --parent '44334' '' : 1(Operation not permitted)2016-05-09 19:25:50 44334[ERROR] WSREP: Failed to read uuid:seqno from joiner script.2016-05-09 19:25:50 44334 [ERROR] WSREP: SST script aborted with error 1(Operation not permitted)2016-05-09 19:25:50 44334 [ERROR] WSREP: SST failed: 1(Operation not permitted)2016-05-09 19:25:50 44334 [ERROR] Aborting

原因及解决方法:配置文件my6000.cnf放在与datadir目录下,在Cleaning the existing datadir阶段被删除,在重启服务时就会找不到配置文件,在重新启动服务就会出错,把配置文件放在非datadir目录下即可。如/etc/my6000.cnf

mysql pxc搭建_MySQL PXC 高可用集群搭建相关推荐

  1. mycat mysql好可用架构_想要学会MyCat高可用集群搭建,但是这些知识点却还玩不明白?...

    一.集群架构 1.MyCat实现读写分离架构 在我前面的文章, 我已经讲解过了通过MyCat来实现MySQL的读写分离, 从而完成MySQL集群的负载均衡 , 如下面的结构图: 但是以上架构存在问题 ...

  2. Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建

    目录 目录 1.前言 1.1.什么是 Hadoop? 1.1.1.什么是 YARN? 1.2.什么是 Zookeeper? 1.3.什么是 Hbase? 1.4.什么是 Hive 1.5.什么是 Sp ...

  3. RabbitMQ高级指南:从配置、使用到高可用集群搭建

    本文大纲: 1. RabbitMQ简介 2. RabbitMQ安装与配置 3. C# 如何使用RabbitMQ 4. 几种Exchange模式 5. RPC 远程过程调用 6. RabbitMQ高可用 ...

  4. 轻松搭建Redis缓存高可用集群

    Redis 高可用集群搭建 详情见 https://my.oschina.net/u/3796575/blog/1787078 转载于:https://www.cnblogs.com/xunyi/p/ ...

  5. 从0开始搭建Hadoop2.x高可用集群(HDFS篇)

    从0开始搭建Hadoop2.x高可用集群(HDFS篇) 演示目标 演示环境 注意事项 准备虚拟机 关闭防火墙 检查系统时间 修改host 设置免密登录 卸载OpenJDK 安装软件 准备HDFS 配置 ...

  6. RabbitMQ 高级指南:从配置、使用到高可用集群搭建

    博主说:在项目中,通过 RabbitMQ,咱们可以将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量. 正文 1 Rab ...

  7. RabbitMQ高可用集群搭建

    RabbitMQ高可用集群搭建 摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确 ...

  8. Hadoop HA 高可用集群搭建

    Hadoop HA 高可用集群搭建 一.首先配置集群信息 1 vi /etc/hosts 二.安装zookeeper 1.解压至/usr/hadoop/下 1 tar -zxvf zookeeper- ...

  9. Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)

    一.服务器环境 主机名 IP 用户名 密码 安装目录 master 192.168.142.124 root xxx /usr/hadoop-2.6.5/ slave1 192.168.142.125 ...

  10. RabbitMQ 高可用集群搭建

    RabbitMQ 高可用集群搭建 1 集群简介 1.1 集群架构 ​ 当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目 ...

最新文章

  1. mysql星火_mysql的执行计划
  2. MYSQL查看 table 表状态常用的命令
  3. 谁说菜鸟不会数据分析python下载_刻意练习9:《谁说菜鸟不会数据分析python篇》第3章编程基础总计46页学习笔记...
  4. 就你这个求婚态度,能嫁给你才怪!
  5. 数据库更改到Java环境中实现可持续和平
  6. mysql自动备份工具 linux_自动备份MYSQL方法 (Linux)
  7. Python I/O及FIle方法
  8. 转:战略思维的五个要素,你都具备了吗?
  9. 未转变者服务器.id大全,Unturned未转变者Elver最新地图ID汇总 2021最新版ID大全[多图]...
  10. 【线性代数】第一章 1.3逆矩阵
  11. python 根据x的值和函数y=20+x2,计算y_new,算出y_new和y的差,记为delta_y。¶绘制x和delt_y的点图,并计算y的方差。有关方差的计算参阅数学资料。
  12. Teardrop原始套接字编程
  13. 让我们来搞清楚8b/10b编码到底是怎么回事吧
  14. 使用cmd命令导入导出数据库
  15. 如何让应用支持64位 Android,Sailfish OS 4.1终于拥抱64位 Android10应用支持API等级
  16. FPGA的UART信息回显
  17. Unusual Sequences
  18. 新手小白都看得懂得光通信知识
  19. 生物信息学入门 GEO芯片数据差异表达分析时需要log2处理的原因
  20. 雅虎搜索的中文官方Blog推出

热门文章

  1. Lua安装及常用命令使用
  2. Termux 安装openSsh
  3. 遥感免费数据四维度汇总
  4. Simulink电机控制代码生成-----关于PI控制器参数整定的一点总结
  5. 总结陈丹琦博士论文(二):NEURAL READING COMPREHENSION AND BEYOND
  6. 妥协型人格分析,妥协型性格的缺点和改善
  7. 微信公众号服务器配置详解一览
  8. Subsonic 介绍
  9. SpringBoot 生成pdf文件(含报表)
  10. 养活一团春意思,撑起两根穷骨头