设为首页 收藏本站
查看: 838|回复: 0

[经验分享] mysql高可用之PXC(Percona XtraDB Cluster)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-1-22 08:47:47 | 显示全部楼层 |阅读模式
服务器环境信息如下:
node1    192.168.0.100
node2    192.168.0.101
node3    192.168.0.102

1.安装软件依赖包(添加repl源,再安装依赖,3台server操作一样。)

[iyunv@node1 ~]# rpm -ivh http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm

[iyunv@node1 ~]# yum install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes socat nc libaio rsync -y

2.安装xtrabackup(PXC同步数据需要用到,为什么使用xtrabackup?自己查询官方文档)

wget https://www.percona.com/download ... 11-1.el6.x86_64.rpm
rpm -ivh percona-xtrabackup-2.2.11-1.el6.x86_64.rpm



3.下载安装Percona-XtraDB-Cluster

wget https://www.percona.com/download ... Linux.x86_64.tar.gz

无法下载软件包的请先FQ或者去官方网站查找最新版本

tar xf Percona-XtraDB-Cluster-5.6.24-rel72.2-25.11..Linux.x86_64.tar.gz -C /usr/local/services/

cd /usr/local/services/

ln -s Percona-XtraDB-Cluster-5.6.24-rel72.2-25.11..Linux.x86_64/ mysql

cd mysql

groupadd mysql

useradd -r -g mysql mysql

chown -R mysql .

chgrp -R mysql .     

cp support-files/my-default.cnf /etc/my.cnf

mkdir -p /data/mysql/data

chown -R mysql.mysql /data/mysql/data


cp support-files/mysql.server /etc/init.d/mysqld



4、以上安装步骤三个节点都安装,如果在初始化的时候报libssl.so.6和libcrypto.so.6两个动态库文件不存在的,就做下链接:

yum install -y libssl.so.6

ln -s /usr/lib64/libssl.so /usr/lib64/libssl.so.6

ln -s /usr/lib64/libcrypto.so /usr/lib64/libcrypto.so.6

./scripts/mysql_install_db  --basedir=/usr/local/services/mysql --datadir=/data/mysql/data/ --user=mysql

#################################################################### node1 ############################################################################################

5、node1的配置和启动如下:

修改my.cnf配置文件如下:

/etc/my.cnf添加如下内容:

[mysqld]

basedir = /usr/local/services/mysql

datadir = /data/mysql/data

并在[mysqld]段落添如下参数:

wsrep_provider=/usr/local/services/mysql/lib/libgalera_smm.so      #库文件

wsrep_cluster_address=gcomm://192.168.0.100,192.168.0.101,192.168.0.102          #节点中所有ip

wsrep_node_address=192.168.0.100    #节点的ip

wsrep_slave_threads=2   #开启的复制线程数,cpu核数*2

binlog_format=ROW     #binlog格式必须为row

default_storage_engine=InnoDB  #暂时不支持其他存储引擎,只支持innodb,当然可以支持myisam,需要另外参数打开

innodb_autoinc_lock_mode=2     #自增锁的优化

wsrep_cluster_name=pxc-xiaoboluo   #集群名字

wsrep_sst_auth=sst:xiaoboluo       #sst模式需要的用户名和密码

wsrep_sst_method=xtrabackup-v2  #采用什么方式复制数据。还支持mysqldump,rsync

启动,进行授权操作,对于第一个节点必须以特殊方式启动,如下:

查看启动选项:/etc/init.d/mysqld --help

Usage: mysql {start|stop|restart|restart-bootstrap|reload|force-reload|status|bootstrap-pxc}  [ MySQL (Percona XtraDB Cluster) options ]

启动:
[iyunv@node1 mysql]# /etc/init.d/mysqld bootstrap-pxc

Bootstrapping PXC (Percona XtraDB Cluster)Starting MySQL (P[  OK  ]traDB Cluster).........

[iyunv@node1 mysql]#

进行查看,可以发现启动两个端口

[iyunv@node1 ~]# netstat -nltp | grep mysqld

tcp        0      00.0.0.0:4567                0.0.0.0:*                   LISTEN      2964/mysqld        

tcp        0      00.0.0.0:3306                0.0.0.0:*                   LISTEN      2964/mysqld        

[iyunv@node1 ~]#

进行授权,推荐使用grant方式

mysql登录:

mysql> GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON * . * TO 'sst'@'localhost' IDENTIFIED BY 'xiaoboluo';

Query OK, 0 rows affected (0.03 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.03 sec)

到这里我们的第一个节点就搞定了,剩下的两个节点配置稍微不同,安装方式都是一样的,不再重复

#########################################node2 node3######################################################################################################

6、node2的配置如下:



[mysqld]

basedir = /usr/local/services/mysql

datadir = /data/mysql/data



wsrep_provider=/usr/local/services/mysql/lib/libgalera_smm.so                           

wsrep_cluster_address=gcomm://192.168.0.100,192.168.0.101,192.168.0.102         

wsrep_node_address=192.168.0.101                                             

wsrep_slave_threads=2                                                           

binlog_format=ROW                                                               

default_storage_engine=InnoDB                                                   

innodb_autoinc_lock_mode=2                                                      

wsrep_cluster_name=pxc-xiaoboluo                                                     

wsrep_sst_auth=sst:xiaoboluo                                                        

wsrep_sst_method=xtrabackup-v2         



7、node3的配置如下:

[mysqld]

basedir = /usr/local/services/mysql

datadir = /data/mysql/data



wsrep_provider=/usr/local/services/mysql/lib/libgalera_smm.so                           

wsrep_cluster_address=gcomm://192.168.0.100,192.168.0.101,192.168.0.102         

wsrep_node_address=192.168.0.102                                             

wsrep_slave_threads=2                                                           

binlog_format=ROW                                                               

default_storage_engine=InnoDB                                                   

innodb_autoinc_lock_mode=2                                                      

wsrep_cluster_name=pxc-xiaoboluo                                                   

wsrep_sst_auth=sst:xiaoboluo                                                        

wsrep_sst_method=xtrabackup-v2         



8、node2,node3节点都配置完成以后,我们启动,对于第2,3个节点启动和我们普通的MySQL启动方式一样。

node2启动:

[iyunv@node2 ~]# /etc/init.d/mysqld start

MySQL (Percona XtraDB Cluster) is not running, but lock fil[FAILED]lock/subsys/mysql) exists

Starting MySQL (Percona XtraDB Cluster)...............State transfer in progress, setting sleep higher

.............     
                                         [  OK  ]
查看node2日志

[iyunv@node2 mysql]# tail -f /data/mysql/3306/data/node2.err
2017-01-08 09:15:25 6036 [Note] WSREP: REPL Protocols: 7 (3, 2)
2017-01-08 09:15:25 6036 [Note] WSREP: Service thread queue flushed.
2017-01-08 09:15:25 6036 [Note] WSREP: Assign initial position for certification: 2, protocol version: 3
2017-01-08 09:15:25 6036 [Note] WSREP: Service thread queue flushed.
2017-01-08 09:15:27 6036 [Note] WSREP: Member 2.0 (node3) requested state transfer from '*any*'. Selected 0.0 (node1)(SYNCED) as donor.
2017-01-08 09:15:28 6036 [Note] WSREP: (b21bada5, 'tcp://0.0.0.0:4567') turning message relay requesting off
2017-01-08 09:15:43 6036 [Note] WSREP: 0.0 (node1): State transfer to 2.0 (node3) complete.
2017-01-08 09:15:43 6036 [Note] WSREP: Member 0.0 (node1) synced with group.
2017-01-08 09:15:48 6036 [Note] WSREP: 2.0 (node3): State transfer from 0.0 (node1) complete.
2017-01-08 09:15:48 6036 [Note] WSREP: Member 2.0 (node3) synced with group.

[iyunv@node3 mysql]#  /etc/init.d/mysqld start
Starting MySQL (Percona XtraDB Cluster).........State transfer in progress, setting sleep higher
...                                                        [  OK  ]

#########################################测试####################################################################
9、测试

node1节点创建表t1,插入数据,在另外两个节点也可以看见 这里就不测试了
到这里搭建就基本结束了。3个节点同时支持write/read操作。最大节点数量不建议超过8个,更加详细的介绍以及细节建议大家参考官方文档。
总结:
Percona XtraDB Cluster现在已经有企业在使用了,我这里只是简单的搭建以及测试,如果线上需要使用我们还需要进行相关压力测试。比如使用sysbench,或者tpcc-mysql。
通常我们单独使用Percona XtraDB Cluster也没有任何问题的,如果使用通过结合harproxy,或者lvs+keepalived的方式来使用会更加的完美。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-331802-1-1.html 上篇帖子: MySQL高可用架构常用方案 下篇帖子: mysql目录 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表