有正在从事web测试和APP测试工作或想从事此行业的测友们,欢迎与我联系,相互交流!测试交流微信公众号:gh_03e570cb5168 长期招聘不同级别测试工程师(WEB\APP\性能)有意者请与本人联系!

转:Mysql Galera Cluster 介绍

上一篇 / 下一篇  2017-06-16 13:38:08 / 个人分类:mysql

文章来源
  • 文章来源:【转载】

​Mysql Galera Cluster 介绍51Testing软件测试网XIQ k Wwo kP2a/r

Mysql Galera Cluster 介绍(一) - 苦雨 - 我的博客51Testing软件测试网6L+Z5qR#^ S$^M`@Wq/o

 

0nE3xvq(o6|T R`0

Galera Cluster for MySQL是一套基于同步复制的多主MySQL集群解决方案,使用简单,没有单点故障,可用性高,能很好保证业务不断增长时我们数据的安全和随时的扩展,主要特点:51Testing软件测试网5m]No j

同步复制51Testing软件测试网TY2~{Cy;x

多主服务器的拓扑结构

k5r hX/z o0

可以在任意节点上进行读写51Testing软件测试网"|K[,Ez U]

自动剔除故障节点51Testing软件测试网;|r2Q?oj

自动加入新节点

!R"Z(S@RC7J0

真正行级别的并发复制

V-b:L.[W:O[0

客户端连接跟操作单台MySQL数据库的体验一致51Testing软件测试网q6c2V_zP

Galera本质是一个wsrep提供者(provider),运行依赖于wsrep的API接口。Wsrep API定义了一系列应用回调和复制调用库,来实现事务数据库同步写集(writeset)复制以及相似应用。目的在于从应用细节上实现抽象的,隔离的复制。虽然这个接口的主要目标是基于认证的多主复制,但同样适用于异步和同步的主从复制。51Testing软件测试网([0jzd&gAUa-i2DK

Galera本质是一个wsrep提供者(provider),运行依赖于wsrep的API接口。Wsrep API定义了一系列应用回调和复制调用库,来实现事务数据库同步写集(writeset)复制以及相似应用。目的在于从应用细节上实现抽象的,隔离的复制。虽然这个接口的主要目标是基于认证的多主复制,但同样适用于异步和同步的主从复制。

!_P!bW#|4uE0

 51Testing软件测试网D!Rk'R]dn

使用前十项注意51Testing软件测试网!V5@^/@#x1X`

1、使用Galera必须要给MySQL-Server打wsrep补丁。可以直接使用官方提供的已经打好补丁的MySQL安装包,如果服务器上已经安装了标准版MYSQL,需要先卸载再重新安装。卸载前注意备份数据。

QB|U&^6_%b|xs'U,G Y0

2、MySQL/Galera集群只支持InnoDB存储引擎。如果你的数据表使用的MyISAM,需要转换为InnoDB,否则记录不会在多台复制。可以在备份老数据时,为mysqldump命令添加–skip-create-options参数,这样会去掉表结构的声明信息,再导入集群时自动使用InnoDB引擎。不过这样会将AUTO_INCREMENT一并去掉,已有AUTO_INCREMENT列的表,必须在导入后重新定义。

9u)FFZ5BY{S+K0

3、MySQL 5.5及以下的InnoDB引擎不支持全文索引(FULLTEXT indexes),如果之前使用MyISAM并建了全文索引字段的话,只能安装MySQL 5.6 with wsrep patch。51Testing软件测试网&S4J3Bd5K

4、所有数据表必须要有主键(PRIMARY),如果没有主键可以建一条AUTO_INCREMENT列。51Testing软件测试网3z"uv9sb-Oj"A)Q

5、MySQL/Galera集群不支持下面的查询:LOCK/UNLOCK TABLES,不支持下面的系统变量:character_set_server、utf16、utf32及ucs2。51Testing软件测试网,m8V9{5L6V^2h?

6、数据库日志不支持保存到表,只能输出到文件(log_output = FILE),不能设置binlog-do-db、binlog-ignore-db。

q'e kSnmOM0

7、跟其他集群一样,为了避免节点出现脑裂而破坏数据,建议Galera集群最低添加3个节点。51Testing软件测试网wX |Yh

8、在高并发的情况下,多主同时写入时可能会发生事务冲突,此时只有一个事务请求会成功,其他的全部失败。可以在写入/更新失败时,自动重试一次,再返回结果。51Testing软件测试网%}|m%q)W

9、节点中每个节点的地位是平等的,没有主次,向任何一个节点读写效果都是一样的。实际可以配合VIP/LVS或HA使用,实现高可用性。51Testing软件测试网 t;dO4h |ro%x^

10、如果集群中的机器全部重启,如机房断电,第一台启动的服务器必须以空地址启动:mysqld_safe –wsrep_cluster_address=gcomm:// >/dev/null &

UzT q1f_0qE5NA0

 

z4o aXXUd0

 51Testing软件测试网:?}g"Ca+lJiv3s

典型的Galera集群场景51Testing软件测试网v@^[PA'^5\

Mysql Galera Cluster 介绍(一) - 苦雨 - 我的博客51Testing软件测试网rhB(HEyq@]

 51Testing软件测试网/nvx(d2|

 

/ZPK)L,L)J0

安装51Testing软件测试网T w P NU+g

1、安装前的准备51Testing软件测试网nJ2Id-J1tqW8`9Q,T

  1)需要至少三台mysql服务器,如果只有两台做cluster的话,一旦出现数据不一致的情况,就可能发生脑裂,需要一台仲裁服务器,如果直接三台做cluster的话,就不再需要仲裁

%I.UI"x(]w4I0

  2)如果是对现有环境做galera集群,需要对mysql现有表做检查,包括表,表引擎,是否无主键:

(imG`0~&N,\#u0

需安装scons

A&p2s%S6Y0

wget http://prdownloads.sourceforge.net/scons/scons-2.2.0.tar.gz .

/E@.I5? z&\0

tar zxvf scons-2.2.0.tar.gz51Testing软件测试网#}9YO nL

cd scons-2.2.0

)l,wrN FeH0

python setup.py install51Testing软件测试网r O ?&E8Ic`E

 51Testing软件测试网$V5aLS@g5t

实验环境51Testing软件测试网(i&u7V'@/J]p ?M.Q2Q&Y

mysql1:192.168.141.244

2F1e7mC Z6} b0

mysql2:192.168.141.245

yEDf9o HJ5A0

mysql3:192.168.141.24651Testing软件测试网e/H(OT;`t

 51Testing软件测试网 Qb3@#d@8XS#Z

安装MySQL with wsrep patch

J gk(qa\6h^|0
1.   #先安装依赖库
2.   yum install libaio gcc gcc-c++ boost-devel scons check-devel openssl-devel
3.   ln -sf /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.6
4.   ln -sf /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.6
5.   #下载MySQL with wsrep源码包,目前最新版本是5.5.34-25.9
6.   wget https://launchpad.net/codership-mysql/5.5/5.5.34-25.9/+download/mysql-5.5.34_wsrep_25.9-linux-x86_64.tar.gz
7.   tar zxvf mysql-5.5*
8.   mv mysql-5.5.34_wsrep_25.9-linux-x86_64 /usr/local/mysql
9.   cd /usr/local/mysql/
10.  groupadd mysql
11.  useradd -r -g mysql mysql
12.  chown -R mysql:mysql .
13.  ./scripts/mysql_install_db --no-defaults --datadir=/usr/local/mysql/data/ --user=mysql
14.  chown -R root .
15.  chown -R mysql /usr/local/mysql/data
16.  echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
17.  source /etc/profile
18.  mysqld_safe --wsrep_cluster_address=gcomm:// >/dev/null &

 51Testing软件测试网L(] vL&[+s#Yl

Mysql Galera Cluster 介绍(一) - 苦雨 - 我的博客

+v2B&K?v |0

 51Testing软件测试网5c @GsB

 

;e ]8|[e-}N0

安装Xtrabackup51Testing软件测试网wLA#{Yv;HO4m c

1.  yum install perl-DBD-MySQL perl-Time-HiRes nc
2.  wget http://www.percona.com/redir/downloads/XtraBackup/LATEST/RPM/rhel6/x86_64/percona-xtrabackup-2.1.9-744.rhel6.x86_64.rpm
3.  rpm -ivh percona-xtrabackup-2.1.9-744.rhel6.x86_64.rpm

如果 perl-Time-HiRes 安装不成功,则下载此RPM包51Testing软件测试网0qtIp/TZ\|'V

cd /usr/local

8r(t(|(Q\/O j0

wget http://pkgs.repoforge.org/perl-Time-HiRes/perl-Time-HiRes-1.9707-1.el5.rf.x86_64.rpm

hW*[2{!\#DP0

安装

-l/a4[? V+g/?k4`x0

rpm –ivh perl-Time-HiRes-1.9707-1.el5.rf.x86_64.rpm51Testing软件测试网} k$G9wq"SP

 51Testing软件测试网2{ G)W,^*G$dgQ

 51Testing软件测试网/P2~-s7Td)h

安装Galera复制插件51Testing软件测试网5c2BX*A m5T\y3L*}

1.  cd ~51Testing软件测试网9P6}*\B rY-{/@z

2.  wget https://launchpad.net/galera/3.x/25.3.5/+download/galera-25.3.5-src.tar.gz51Testing软件测试网 o:xd R+p'Ee`n;]

3.  tar zxvf galera-*51Testing软件测试网;mH'u?L%N.d'Ty {0Q

4.  cd galera-*51Testing软件测试网hvxz8V x

5.  scons

c*P/dMNhTCJ0

6.  cp garb/garbd /usr/local/mysql/bin/

G*@3pI6t&sjRH0

7.  cp libgalera_smm.so /usr/local/mysql/lib/plugin/51Testing软件测试网f@M{ Ikl

如果上面安装不成功,在scons编译时候出错,则用下面的方法

Y#K"vAMJ|!e1m0

下载51Testing软件测试网D(f%A:q$|?

wget https://launchpad.net/galera/3.x/25.3.5/+download/galera-25.3.5-1.rhel6.x86_64.rpm51Testing软件测试网+P/h-BnJEy$O

rpm -ivh  galera-25.3.5-1.rhel5.x86_64.rpm51Testing软件测试网v0o0b#N-[/q$Sr

rpm -ql  galera51Testing软件测试网h.QG xq:t H

cp /usr/lib64/galera/libgalera_smm.so /usr/local/mysql/lib/plugin/51Testing软件测试网%r#e8Y]o(f,w

cp /usr/bin/garbd /usr/local/mysql/bin/51Testing软件测试网`A3x}7?xJ9p

 51Testing软件测试网"Vve UCZg&QB&mb

初始化配置51Testing软件测试网"|&XS0o(E{4w5s U

1.  mkdir -p /var/lib/mysql
2.  mkdir -p /etc/mysql/conf.d/
3.  chown mysql:mysql /var/lib/mysql
4.  cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
5.  /usr/local/mysql/bin/mysqld_safe --wsrep_cluster_address=gcomm:// >/dev/null &


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar