mysql pxc搭建_MySQL PXC 高可用集群搭建
一些名词介绍:
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 高可用集群搭建相关推荐
- mycat mysql好可用架构_想要学会MyCat高可用集群搭建,但是这些知识点却还玩不明白?...
一.集群架构 1.MyCat实现读写分离架构 在我前面的文章, 我已经讲解过了通过MyCat来实现MySQL的读写分离, 从而完成MySQL集群的负载均衡 , 如下面的结构图: 但是以上架构存在问题 ...
- 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 ...
- RabbitMQ高级指南:从配置、使用到高可用集群搭建
本文大纲: 1. RabbitMQ简介 2. RabbitMQ安装与配置 3. C# 如何使用RabbitMQ 4. 几种Exchange模式 5. RPC 远程过程调用 6. RabbitMQ高可用 ...
- 轻松搭建Redis缓存高可用集群
Redis 高可用集群搭建 详情见 https://my.oschina.net/u/3796575/blog/1787078 转载于:https://www.cnblogs.com/xunyi/p/ ...
- 从0开始搭建Hadoop2.x高可用集群(HDFS篇)
从0开始搭建Hadoop2.x高可用集群(HDFS篇) 演示目标 演示环境 注意事项 准备虚拟机 关闭防火墙 检查系统时间 修改host 设置免密登录 卸载OpenJDK 安装软件 准备HDFS 配置 ...
- RabbitMQ 高级指南:从配置、使用到高可用集群搭建
博主说:在项目中,通过 RabbitMQ,咱们可以将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量. 正文 1 Rab ...
- RabbitMQ高可用集群搭建
RabbitMQ高可用集群搭建 摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确 ...
- Hadoop HA 高可用集群搭建
Hadoop HA 高可用集群搭建 一.首先配置集群信息 1 vi /etc/hosts 二.安装zookeeper 1.解压至/usr/hadoop/下 1 tar -zxvf zookeeper- ...
- Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)
一.服务器环境 主机名 IP 用户名 密码 安装目录 master 192.168.142.124 root xxx /usr/hadoop-2.6.5/ slave1 192.168.142.125 ...
- RabbitMQ 高可用集群搭建
RabbitMQ 高可用集群搭建 1 集群简介 1.1 集群架构 当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目 ...
最新文章
- mysql星火_mysql的执行计划
- MYSQL查看 table 表状态常用的命令
- 谁说菜鸟不会数据分析python下载_刻意练习9:《谁说菜鸟不会数据分析python篇》第3章编程基础总计46页学习笔记...
- 就你这个求婚态度,能嫁给你才怪!
- 数据库更改到Java环境中实现可持续和平
- mysql自动备份工具 linux_自动备份MYSQL方法 (Linux)
- Python I/O及FIle方法
- 转:战略思维的五个要素,你都具备了吗?
- 未转变者服务器.id大全,Unturned未转变者Elver最新地图ID汇总 2021最新版ID大全[多图]...
- 【线性代数】第一章 1.3逆矩阵
- python 根据x的值和函数y=20+x2,计算y_new,算出y_new和y的差,记为delta_y。¶绘制x和delt_y的点图,并计算y的方差。有关方差的计算参阅数学资料。
- Teardrop原始套接字编程
- 让我们来搞清楚8b/10b编码到底是怎么回事吧
- 使用cmd命令导入导出数据库
- 如何让应用支持64位 Android,Sailfish OS 4.1终于拥抱64位 Android10应用支持API等级
- FPGA的UART信息回显
- Unusual Sequences
- 新手小白都看得懂得光通信知识
- 生物信息学入门 GEO芯片数据差异表达分析时需要log2处理的原因
- 雅虎搜索的中文官方Blog推出