mysql转mysql cluster_转:Mysql Galera Cluster 介绍

​Mysql Galera Cluster 介绍3N @(gV@0

2785194894569543883.png51Testing软件测试网;p5m"?$N{V(U

6m1b/@#W$K

{0

Galera Cluster for MySQL是一套基于同步复制的多主MySQL集群解决方案,使用简单,没有单点故障,可用性高,能很好保证业务不断增长时我们数据的安全和随时的扩展,主要特点:3XOI!nnV;?0

同步复制51Testing软件测试网~l U%U:LnE8\H

多主服务器的拓扑结构51Testing软件测试网3~PADBx

可以在任意节点上进行读写51Testing软件测试网3Rg~n4tf"_nZP

自动剔除故障节点51Testing软件测试网D%J5y

fI%x]&Q

自动加入新节点51Testing软件测试网 _BH.j;Q[l

真正行级别的并发复制h J,df6sE*G1a4y8~;L0

客户端连接跟操作单台MySQL数据库的体验一致XPc}'].Z0

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

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

51Testing软件测试网"zQ%cZkh

使用前十项注意aZ*m&|9LS9sdUZ3q0

1、使用Galera必须要给MySQL-Server打wsrep补丁。可以直接使用官方提供的已经打好补丁的MySQL安装包,如果服务器上已经安装了标准版MYSQL,需要先卸载再重新安装。卸载前注意备份数据。51Testing软件测试网/L$VF&xK8x.]0@

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

3、MySQL 5.5及以下的InnoDB引擎不支持全文索引(FULLTEXT indexes),如果之前使用MyISAM并建了全文索引字段的话,只能安装MySQL 5.6 with wsrep patch。"rMe+x:H |,\!t@0

4、所有数据表必须要有主键(PRIMARY),如果没有主键可以建一条AUTO_INCREMENT列。*w*S4g2xGU8k0

5、MySQL/Galera集群不支持下面的查询:LOCK/UNLOCK TABLES,不支持下面的系统变量:character_set_server、utf16、utf32及ucs2。0Y$J#eq3I0T G

F#xM0

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

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

8、在高并发的情况下,多主同时写入时可能会发生事务冲突,此时只有一个事务请求会成功,其他的全部失败。可以在写入/更新失败时,自动重试一次,再返回结果。51Testing软件测试网8p(G7pQ!\dz"]e

9、节点中每个节点的地位是平等的,没有主次,向任何一个节点读写效果都是一样的。实际可以配合VIP/LVS或HA使用,实现高可用性。51Testing软件测试网6k@\2x7l(G`:L/Y

10、如果集群中的机器全部重启,如机房断电,第一台启动的服务器必须以空地址启动:mysqld_safe –wsrep_cluster_address=gcomm:// >/dev/null &51Testing软件测试网D3ufx;Fx!]!e

Ma0WW\loUQ$b0

pSG0S*@8`,m&Q0

典型的Galera集群场景3jpyAc,M0M0

6608526677818265814.png/Aq&f%a6BC,cP0

A.uD)Q~4~0

51Testing软件测试网8qkYx/t*O7Ad

安装51Testing软件测试网A*R.Z#{/wB!Nb0l

1、安装前的准备7k2Jc+ZP&C0

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

2)如果是对现有环境做galera集群,需要对mysql现有表做检查,包括表,表引擎,是否无主键:51Testing软件测试网7X.k8q I8yaw-c

需安装scons%qi7X(n

^H7[;b0

wget http://prdownloads.sourceforge.net/scons/scons-2.2.0.tar.gz .rNr(~~$j3LY7Y:G#i0

tar zxvf scons-2.2.0.tar.gz5s(N1X|k%qI(^@7o0

cd scons-2.2.0;H-f@|N-Ls0

python setup.py install51Testing软件测试网;Wkdm~_

51Testing软件测试网v!S)g&W^8|

实验环境51Testing软件测试网1d]V'W3xM&{s4I

mysql1:192.168.141.24451Testing软件测试网F5k)L9bo'E!e3Y

mysql2:192.168.141.245;@V7B#d*y#_,z0

mysql3:192.168.141.246/c6H xQV0

51Testing软件测试网&Y!T:?9oW.aFUW

安装MySQL with wsrep patch51Testing软件测试网7t4r-R$O*D#C7^0Nf7l1.   #先安装依赖库2.   yum install libaio gcc gcc-c++ boost-devel scons check-devel openssl-devel3.   ln -sf /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.64.   ln -sf /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.65.   #下载MySQL with wsrep源码包,目前最新版本是5.5.34-25.96.   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.gz7.   tar zxvf mysql-5.5*8.   mv mysql-5.5.34_wsrep_25.9-linux-x86_64 /usr/local/mysql9.   cd /usr/local/mysql/10.  groupadd mysql11.  useradd -r -g mysql mysql12.  chown -R mysql:mysql .13.  ./scripts/mysql_install_db --no-defaults --datadir=/usr/local/mysql/data/ --user=mysql14.  chown -R root .15.  chown -R mysql /usr/local/mysql/data16.  echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile17.  source /etc/profile18.  mysqld_safe --wsrep_cluster_address=gcomm:// >/dev/null &

51Testing软件测试网!ETOS4x3vu$A

6619136965026079237.pngKk[p&hi0

B{F'^ T0

51Testing软件测试网m_An_F;\ [

安装Xtrabackup/i~~M Rh*|1?01.  yum install perl-DBD-MySQL perl-Time-HiRes nc2.  wget http://www.percona.com/redir/downloads/XtraBackup/LATEST/RPM/rhel6/x86_64/percona-xtrabackup-2.1.9-744.rhel6.x86_64.rpm3.  rpm -ivh percona-xtrabackup-2.1.9-744.rhel6.x86_64.rpm

如果 perl-Time-HiRes 安装不成功,则下载此RPM包51Testing软件测试网?E$o]&PBN

cd /usr/local51Testing软件测试网4g,j)p`

F

安装51Testing软件测试网M3V4C8fs dZ8m;SQ6Z

rpm –ivh perl-Time-HiRes-1.9707-1.el5.rf.x86_64.rpmjTG/Mu8Qttus0

_!UTCTBMX0

`3ODt N%B?AX0

安装Galera复制插件,s9\um+`w0

1.  cd ~51Testing软件测试网_8z;~uh9l9^}$i5sj

2.  wget https://launchpad.net/galera/3.x/25.3.5/+download/galera-25.3.5-src.tar.gz]{,~M6y0

3.  tar zxvf galera-*51Testing软件测试网v8s7P#i/p

4.  cd galera-**W5[aug&Mx0

5.  sconsHEt,[q~%|Sy0

6.  cp garb/garbd /usr/local/mysql/bin/h^dilj/d^t0

7.  cp libgalera_smm.so /usr/local/mysql/lib/plugin/51Testing软件测试网Th(?*O9CC

如果上面安装不成功,在scons编译时候出错,则用下面的方法7uL9n!rw)W)MxQ0

下载51Testing软件测试网Y;PO$y(r|b$[

wget https://launchpad.net/galera/3.x/25.3.5/+download/galera-25.3.5-1.rhel6.x86_64.rpm51Testing软件测试网$X]E3JN

rpm -ivh  galera-25.3.5-1.rhel5.x86_64.rpmdv}/Mp0a1s0

rpm -ql  galera*@Y,QX!_y0

cp /usr/lib64/galera/libgalera_smm.so /usr/local/mysql/lib/plugin/51Testing软件测试网9a9\z

R.U8pF

cp /usr/bin/garbd /usr/local/mysql/bin/51Testing软件测试网s^#Z4B"^[mE,N

51Testing软件测试网'cL]#R2|g

初始化配置z+w5rb7K4n[01.  mkdir -p /var/lib/mysql2.  mkdir -p /etc/mysql/conf.d/3.  chown mysql:mysql /var/lib/mysql4.  cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql5.  /usr/local/mysql/bin/mysqld_safe --wsrep_cluster_address=gcomm:// >/dev/null &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值