Percona XtraDB Cluster 5.7 搭配 HAProxy

一、PerconaDB的特性(来源于:http://blog.csdn.net/chszs/article/details/20205047)

1)查询速度更快,数据的一致性更好

2)服务器运行及其稳定

3)可以延迟分片,或者避免分片

4)需要支付的费用比MySQL低

5)在优化和管理方面花费的时间更少

6)更高的正常运行时间

7)不排除猜测

还有一些特性:

1)数量更多的INFORMATION_SCHEMA表

2)数量更多的全局性能参数(Global Performance)和状态计数器(Status Counters)

3)每个索引性能计数器

4)每个用户性能计数器

5)每个客户端性能计数器

6)高精度进程列表时序

7)快速校验算法

8)缓冲池预加载

9)支持闪存缓冲

10)可从不同的服务器导入表

开始配置host

node1  192.168.20.145

node2  192.168.20.146

node3  192.168.20.147

安装相关apt源

wget   https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb

sudo dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb

sudo  apt-get  update

安装pxc

sudo apt-get install percona-xtradb-cluster-full-57

修改/etc/my.cnf配置文件,其他两台节点需要修改server_id和wsrep_node_address

[mysqld]

server_id=127 #其他节点需要修改datadir=/data/mysql

socket=/data//mysql/mysql.sock

pid_file=/var/lib/mysql/mysql.pid

user=mysql

port=3306

default_storage_engine=InnoDB

character_set_server=utf8

log-error=/var/lib/mysql/mysql-error.log

slow_query_log=1

slow_query_log_file=/var/lib/mysql/mysql-slow.log

#INNODB/XtraDB

innodb_buffer_pool_size=1610612736

innodb_log_file_size=104857600

#PXC

wsrep_provider=/usr/lib64/libgalera_smm.so

wsrep_cluster_address=gcomm://192.168.20.145,192.168.20.146,192.168.20.147

binlog_format=ROW

innodb_autoinc_lock_mode=2

wsrep_node_address=192.168.20.145 #其他节点需要修改

wsrep_sst_method=xtrabackup-v2  #同步工具

wsrep_cluster_name=my_mysql_cluster

wsrep_sst_auth="sstuser:s3cret"  #SST连接的用户名和密码

创建数据存储目录

mkdir-p /data/mysql/

chown  mysql.mysql /data/mysql/

在node1启动PXC服务

/etc/init.d/mysql bootstrap-pxc   #成功后密码在日志文件里查到

SET PASSWORD = PASSWORD('123qwe');  #登陆MySQL修改密码。

在node1MySQL中创建SST同步用户

GRANT PROCESS,RELOAD,LOCK TABLES,REPLICATION CLIENT ON *.* TO'sstuser'@'%'IDENTIFIED BY's3cret';

flush privileges;

State Snapshot Transfer 是可以让one node (donor) 通过数据拷贝升级至joining node (joiner)。

一个新节点加入至集群中,需要同步数据,那么SST可以传输数据,让新节点成为集群的一部分。

SST的三个有效方法:mysqldump, rsync andxtrabackup。不过多解释,目前最好用的是xtrabackup

在node2,node3启动MySQL服务

/etc/init.d/mysql start

查看集群状态

show status like  'wsrep%';

然后测试数据写入和查询。

配置HAProxy 负载平衡

上述完成了 3 台 Cluster 设定,接着所有的 Application 服务都需要直接跟此 Cluster 沟通,为了完成此需求,我们必须将 HAProxy 安装在其中一台伺服器来做负载平衡,今天会介绍两种设定方式,第一种是採用 round robin 方式,意思就是说所有的 Application 都可以连上并且写入资料到三台机器,这状况其实没有错误,但是如果同时写入三台机器,难免会出现 optimistic locking 而产生 rollback,如果可以确定不会产生 conflict,其实这方桉是不错的。第2种设定方式就是只写入单一 Node,但是可以读取三台机器,也就是 insert, update 都是在同一台 Node 完成,所以 Application 不用担心会产生 rollback 情形。第1种设定在大部份的状况底下都是可以运作很好的,所以其实也不用担心。

底下是 /etc/haproxy/haproxy.cfg 设置:

global

log /dev/log    local0

log /dev/log    local1 notice

chroot /var/lib/haproxy

stats socket /run/haproxy/admin.sock mode 660 level admin

stats timeout 30s

user haproxy

group haproxy

daemon

# Default SSL material locations

ca-base /etc/ssl/certs

crt-base /etc/ssl/private

# Default ciphers to use on SSL-enabled listening sockets.

# For more information, see ciphers(1SSL). This list is from:

#  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/

ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

ssl-default-bind-options no-sslv3

defaults

log    global

mode    http

option  httplog

option  dontlognull

timeout connect 5000

timeout client  50000

timeout server  50000

errorfile 400 /etc/haproxy/errors/400.http

errorfile 403 /etc/haproxy/errors/403.http

errorfile 408 /etc/haproxy/errors/408.http

errorfile 500 /etc/haproxy/errors/500.http

errorfile 502 /etc/haproxy/errors/502.http

errorfile 503 /etc/haproxy/errors/503.http

errorfile 504 /etc/haproxy/errors/504.http

listen mysql_3306

bind  0.0.0.0:3306

mode  tcp

option tcpka

balance    roundrobin

#将此server命名为mysql_01,每隔3000ms检测一个健康状态,如果检测3次都失败,将此server剔除,在离线的状态下,只要检测1次成功,就让其上线;

server mysql_01 192.168.20.145:3306 check inter 3000 rise 1 maxconn 4000 fall 3

server mysql_02 192.168.20.146:3306 check inter 3000 rise 1 maxconn 4000 fall 3

server mysql_02 192.168.20.147:3306 check inter 3000 rise 1 maxconn 4000 fall 3

listen state                                  #使用单独输出,不需要frontedn调用:定义haproxy的状态统计页面;

bind *:8888                              #监听的地址;

mode http                                #http 7层工作模式:对应用层数据做深入分析,因此支持7层的过滤、处理、转换等机制;

stats enable                              #开启统计页面输出;

stats hide-version                        #隐藏状态页面版本号;

stats uri /haproxyadmin?stats            #指定状态页的访问路径;

stats auth admin:admin                    #基于用户名,密码验证;

stats admin if TRUE                      #验证通过时运行登录;


上面步骤全部成功,请打开浏览器在 URL 输入http://192.168.20.148:8888/haproxyadmin?stats 在输入配置文件配置的用户名和密码就可以HAProxy Status 页面,看到状态,就是代表设定成功。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容

  • 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装 1.1BLOG文档结构图 ...
    小麦苗DB宝阅读 10,546评论 0 31
  • 在韩国工作后,把学韩语从兴趣变成必须,失了热情多份逼迫。工作的环境是和日本人,看得懂汉字,却不能发音,觉得不...
    顧小顧阅读 169评论 3 0
  • 面对现在的自己,我无限惭愧,我年华虚度空有一身疲倦,和所有以梦为马的人一样,岁月已逝,一滴不剩。 今年23了,不大...
    渐离陌阅读 722评论 0 5
  • 如今在中国已经有了上万家企业培训机构,其中亦不乏一些大的企业培训机构,甚至已经集团化,但是令人担忧的是在这个前景很...
    Eggyino阅读 403评论 0 0
  • 一群和共和国成长的爷爷奶奶辈艺术家他们的平均年龄73.2岁,一曲高昂雄壮的《我爱你,中国》拉开桂林第十六次全国大内...
    5c598577d72a阅读 107评论 0 0