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

[经验分享] CentOS6环境下部署Percona XtraDB Cluster

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-12-21 09:16:46 | 显示全部楼层 |阅读模式
主机规划:
1
2
3
4
5
192.168.0.221     os6—221
192.168.0.222     os6—222
192.168.0.223     os6—223
192.168.0.224     os6—224  haproxy
192.168.0.225     os6—225  haproxy




安装脚本:
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
sed  -i "s/SELINUX=enforcing/SELINUX=disabled/g"   /etc/selinux/config
setenforce 0
service iptables  start
iptables  -F
iptables  -A  INPUT -p  tcp -i eth0  --dport 3306 -m state --state NEW,ESTABLISHED -j   ACCEPT
iptables  -A  INPUT -p  tcp -i eth0  --dport 4444 -m state --state NEW,ESTABLISHED -j   ACCEPT
iptables  -A  INPUT -p  tcp -i eth0  --dport 4567 -m state --state NEW,ESTABLISHED -j   ACCEPT
iptables  -A  INPUT -p  tcp -i eth0  --dport 4568 -m state --state NEW,ESTABLISHED -j   ACCEPT
yum  install  ntp  -y
ntpdate cn.pool.ntp.org
echo "*/1 * * * * root  ntpdate cn.pool.ntp.org"   >> /etc/crontab




安装percona之前,必须删除mysql-libs,这个包和percona冲突.
1
yum remove   mysql-libs  -y



1
2
rpm  -ivh  http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm
yum  install socat  -y



1
2
yum install http://www.percona.com/downloads ... elease-0.1-3.noarch  -y
yum install Percona-XtraDB-Cluster-56  -y




配置文件:/etc/my.cnf
引导服务器配置,即os6---221
1
2
3
4
5
6
7
8
9
10
11
[mysqld]
#wsrep
wsrep_provider=/usr/lib64/libgalera_smm.so
wsrep_cluster_address=gcomm://os6---221,os6-222,os6---223
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_node_address=os6---221
wsrep_sst_method=xtrabackup-v2
wsrep_cluster_name=singulax
wsrep_sst_auth=“wsrep:wsrep”




启动os6—221数据库
1
/etc/init.d/myslq  bootstrap-pxc




创建replication用户(此步骤只需要在init服务器上执行,启动其他服务器时会自动复制.请参考PXC复制原理)
1
2
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO  wsrep@'localhost'  IDENTIFIED BY ‘wsrep';
FLUSH PRIVILEGES;




os6---221服务器
1
2
3
4
5
6
7
8
9
10
11
[mysqld]
#wsrep
wsrep_provider=/usr/lib64/libgalera_smm.so
wsrep_cluster_address=gcomm://os6---221,os6-222,os6---223
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_node_address=os6---222
wsrep_sst_method=xtrabackup-v2
wsrep_cluster_name=singulax
wsrep_sst_auth=“wsrep:wsrep”




启动os6—222数据库
1
/etc/init.d/mysql  start  ||   service  mysql start



os6---223服务器
1
2
3
4
5
6
7
8
9
10
11
[mysqld]
#wsrep
wsrep_provider=/usr/lib64/libgalera_smm.so
wsrep_cluster_address=gcomm://os6---221,os6-222,os6---223
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_node_address=os6---223
wsrep_sst_method=xtrabackup-v2
wsrep_cluster_name=singulax
wsrep_sst_auth=“wsrep:wsrep”




启动os6—223数据库
1
/etc/init.d/mysql  start  ||   service  mysql start



pxc安装完毕后,会自动clustercheck命令和9200端口检测mysql服务的正常.

用法:
1
/usr/bin/clustercheck <user> <pass> <available_when_donor=0|1> <log_file> <available_when_readonly=0|1> <defaults_extra_file>



添加检测用户:
1
grant  process  on *.*   to  clustercheckuser@'localhost'  identified by ‘clustercheckuser';



检测返回结果:200  或者  503.例如
1
2
3
4
5
6
clustercheck     clustercheckuser       clustercheckuser
HTTP/1.1 200 OK
Content-Type: text/plain
Connection: close
Content-Length: 40
Percona XtraDB Cluster Node is synced.




9200端口:先安装xinetd,利用xinetd生成9200端口.
1
yum  install  xinetd   -y




xinetd安装完毕后,后生成mysqlchk文件,并配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# default: on
# description: mysqlchk
service mysqlchk
{
# this is a config for xinetd, place it in /etc/xinetd.d/
        disable = no
        flags           = REUSE
        socket_type     = stream
        type            = UNLISTED
        port            = 9200
        wait            = no
        user            = nobody
        server          = /usr/bin/clustercheck
        log_on_failure  += USERID
        only_from       = 0.0.0.0/0
        #
        # Passing arguments to clustercheck
        # <user> <pass> <available_when_donor=0|1> <log_file> <available_when_readonly=0|1> <defaults_extra_file>"
        # Recommended: server_args   = user pass 1 /var/log/log-file 0 /etc/my.cnf.local"
        # Compatibility: server_args = user pass 1 /var/log/log-file 1 /etc/my.cnf.local"
        # 55-to-56 upgrade: server_args = user pass 1 /var/log/log-file 0 /etc/my.cnf.extra"
        server_args = clustercheckuser  clustercheckuser
        # recommended to put the IPs that need
        # to connect exclusively (security purposes)
        per_source      = UNLIMITED
}



然后,在/etc/services为9200端口添加新服务
1
mysqlchk 9200/tcp # mysqlchk



启动xinetd
1
2
service  xinetd  start
chkconfig  xinetd  on




Haproxy负载均衡和检测
安装haproxy
1
yum  install haproxy   -y   #centos6官方自带安装包,直接yum安装即可



配置防火墙
1
2
3
iptables   -A INPUT  -p  tcp --dport 8080 -m  state  --state  NEW,ESTABLISHED  -j  ACCEPT
iptables   -A INPUT  -p  tcp --dport 3306 -m  state  --state  NEW,ESTABLISHED  -j  ACCEPT
iptables   -A INPUT  -p  tcp --dport 3307 -m  state  --state  NEW,ESTABLISHED  -j  ACCEPT



配置文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
frontend stats-front
bind *:8080
mode http
default_backend stats-back
frontend pxc-front
bind *:3307
mode tcp
default_backend pxc-back
frontend pxc-onenode-front
bind *:3308
mode tcp
default_backend pxc-onenode-back
backend stats-back
mode http
balance roundrobin
stats uri /haproxy/stats
stats auth haproxy:haproxy
backend pxc-back
mode tcp
balance leastconn
option httpchk
server c1 192.168.115.221:3306 check port 9200 inter 12000 rise 3 fall 3
server c2 192.168.115.222:3306 check port 9200 inter 12000 rise 3 fall 3
server c3 192.168.115.223:3306 check port 9200 inter 12000 rise 3 fall 3
backend pxc-onenode-back
mode tcp
balance leastconn
option httpchk
server c1 192.168.115.221:3306 check port 9200 inter 12000 rise 3 fall 3
server c2 192.168.115.222:3306 check port 9200 inter 12000 rise 3 fall 3 backup
server c3 192.168.115.223:3306 check port 9200 inter 12000 rise 3 fall 3 backup



启动
1
2
service haproxy  start
service haproxy  stop




访问:
1
http://192.168.115.224:8080/haproxy/stats



运维网声明 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-154060-1-1.html 上篇帖子: centos误删除文件如何恢复 下篇帖子: dd命令:做硬盘IO性能测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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