逍遥一派 发表于 2015-1-14 20:45:58

给大家带来mysql双击热备+amoeba读写分别试验

欢迎大家来到仓酷云论坛!Mysql读写分别是为了进步网站的拜访速度,进步数据库的并发负载才能。


但在现实的临盆情况中,由单台Mysql作为自力的数据库是完整不克不及知足现实需求的,不管是在平安性,高可用性和高并发等各个方面。


是以,普通来讲都是经由过程主从复制(Master-Slave)的方法来同步数据,再经由过程读写分别来晋升数据库的并发负载才能,如许的计划来停止安排与实行的。





留意:先做主从复制,再度读写分别。





MySQL主从复制构造是基于mysqlbin-log日记基本上,从库经由过程翻开IO过程收到主库的bin-log日记增量信息,并保留到当地relaylog,尔后再经由过程翻开MYSQL过程从relaylog上获得的增量信息并翻译成SQL语句后写到从数据库。




试验情况:
主:10.8.0.150
从:10.8.0.151
amoeba:10.8.0.160
PS:为了便利试验,可直接yummysql或许直接剧本履行lnmp。
拓扑图以下:







试验第一步:
上岸主办事器操作敕令
mysql>GRANTREPLICATIONCLIENT,REPLICATIONSLAVEON*.*TOcong151@10.8.0.151IDENTIFIEDBY"123456";
mysql>showmasterstatus;
+------------------+----------+--------------+------------------+
|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|
+------------------+----------+--------------+------------------+
|mysql-bin.000008|5722410|||
+------------------+----------+--------------+------------------+
记住file和Position。
上岸从办事器操作敕令
1、编纂my.ini文件,修正server-id=2(默许为1,因做mysql的主从复制,须要修正ID和主办事器上纷歧样便可,也弗成和同内网mysql办事器其他的ID一样)
2、登入mysql
mysql>changemastertomaster_host=10.8.0.150,master_user=cong151,master_password=123456,master_log_file=mysql-bin.000008,master_log_pos=5722410;
mysql>startslave;
mysql>showslavestatusG
***************************1.row***************************
Slave_IO_State:Waitingformastertosendevent
Master_Host:10.8.0.150
Master_User:cong151
Master_Port:3306
Connect_Retry:60
Master_Log_File:mysql-bin.000008
Read_Master_Log_Pos:5722410
Relay_Log_File:localhost-relay-bin.000061
Relay_Log_Pos:251
Relay_Master_Log_File:mysql-bin.000008
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:0
Last_Error:
Skip_Counter:0
Exec_Master_Log_Pos:5722410
Relay_Log_Space:3466785
Until_Condition:None
Until_Log_File:
Until_Log_Pos:0
Master_SSL_Allowed:No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:0
Master_SSL_Verify_Server_Cert:No
Last_IO_Errno:0
Last_IO_Error:
Last_SQL_Errno:0
Last_SQL_Error:


如许解释从办事器复制主办事器的数据是正常的了,且可以指定复制的库,可以在my.ini外面修正便可。
为了做主从复制,即从复制主且主复制从。
持续在从办事器上操作。
mysql>GRANTREPLICATIONCLIENT,REPLICATIONSLAVEON*.*TOzhu150@10.8.0.150IDENTIFIEDBY"123456";
mysql>showmasterstatus;
+------------------+----------+--------------+------------------+
|File|Position|Binlog_Do_DB|Binlog_Ignore_DB|
+------------------+----------+--------------+------------------+
|mysql-bin.000006|786|||
+------------------+----------+--------------+------------------+


上岸主办事器
mysql>changemastertomaster_host=10.8.0.151,master_user=zhu150,master_password=123456,master_log_file=mysql-bin.000006,master_log_pos=786;
mysql>startslave;
mysql>showslavestatusG
***************************1.row***************************
Slave_IO_State:Waitingformastertosendevent
Master_Host:10.8.0.151
Master_User:zhu150
Master_Port:3306
Connect_Retry:60
Master_Log_File:mysql-bin.000006
Read_Master_Log_Pos:786
Relay_Log_File:localhost-relay-bin.000003
Relay_Log_Pos:251
Relay_Master_Log_File:mysql-bin.000006
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:0
Last_Error:
Skip_Counter:0
Exec_Master_Log_Pos:786
Relay_Log_Space:935
Until_Condition:None
Until_Log_File:
Until_Log_Pos:0
Master_SSL_Allowed:No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:0
Master_SSL_Verify_Server_Cert:No
Last_IO_Errno:0
Last_IO_Error:
Last_SQL_Errno:0
Last_SQL_Error:
如许,mysql的主从复制试验OK。



Amoeba的装置:
装置Amoeba前要先装置JDK,由于Amoeba是用java开辟的所要有JDK支撑。
下载jdk-6u15-linux-i586.bin(shjdk-6u15-linux-i586.bin履行法式)
编纂/etc/profile添加以下代码
exportJAVA_HOME=/usr/local/jdk1.6.0_15
exportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportPATH=$PATH:$JAVA_HOME/bin
#source/etc/profile
#java-version
javaversion"1.6.0_15"
Java(TM)SERuntimeEnvironment(build1.6.0_15-b03)
JavaHotSpot(TM)ClientVM(build14.1-b02,mixedmode,sharing)


下载amoeba-mysql-binary-2.0.1-BETA.tar.gz
#mkdir/usr/local/amoeba&&cd/usr/local/amoeba/&&tar/root/amoeba-mysql-binary-2.0.1-BETA.tar.gz
那末剩上去的就是若何设置装备摆设amoeba(设置装备摆设文件在conf目次下,重要是dbServers.xml和amoeba.xml两个文件)
先编纂dbServers.xml文件



留意此时的用户名和暗码,为后端数据库的用户名和暗码,须要在两台数据库办事器上开启长途,长途的用户名和暗码本身设置,我是为了便利。



添加两个节点,分离是master和slave,同时修正下一个虚拟组,将master和slave参加出来。前面会须要的。


在编纂amoeba.xml文件






建议修正下IP为AMOEBA的署理办事器的IP,不建议写127.0.0.1或许localhost。
上面的用户名和暗码,是对外供给的数据库用户名和暗码,也就是AMOEBA上岸的用户名和暗码,不须要在主从办事器上添加这个用户名和暗码的,我如许设置也是为了便利。





默许的组是master,解释应用amoeba上岸后,实际上是上岸到主办事器上的。
写入组是master,解释数据写入在主办事器上。
读取组是我们之前设置的虚拟组(包含master和slave,带来的后果是,查询两次,分离是在主下面查询一次和从下面查询一次)
以上,amoeba的办事器设置装备摆设OK,剩下的是检讨设置装备摆设,
直接应用/usr/local/amoeba/bin/amoebastart来检讨,假如涌现成绩,请立刻处理。



假如没发明成绩,相似如斯日记,请ctrl+c封闭过程。同时应用/usr/local/amoeba/bin/amoebastart&启动并将法式放入后台。



最初剩下的就是测试。
先须要测试经由过程amoeba衔接办事器,
案例敕令:mysql-uroot-pu2ktgshc#@dq-h10.8.0.160-P8066





第二,直接操作数据库,新建库,新建表,内外写入数据,检查数据能否正常。重要是测试mysql的主从同步后果若何。
最初,封闭主从互相同步,敕令:stopslave;两个后真个办事器都须要操作,如许主从复制被停滞,再次拔出数据,检查两次,看下比较便可。
假如发明了变更,那末您的试验OK了,没发明后果,请检讨amoeba的两个设置装备摆设文件。
留意一点:<--!-->这个表现正文,之前我小我做试验也是由于这个成绩招致第一次没胜利。
望列位好运。
若有胜利者,且实在弄到测试情况中(搭建网站测试),请告诉若何php挪用amoeba,小我没弄定。为感!
后续的试验,可经由过程两个前端办事器来做amoeba,后真个mysql办事器和两台amoeba应用LVS+Keepalived来做集群和热备。
本文出自“幼@童鞋”博客,请务必保存此出处http://yangxiaofei.blog.51cto.com/2910082/1309978


欢迎大家来到仓酷云论坛!

再现理想 发表于 2015-1-16 22:29:18

给大家带来mysql双击热备+amoeba读写分别试验

现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。

分手快乐 发表于 2015-1-24 15:21:59

学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。

不帅 发表于 2015-2-2 06:43:26

说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?

灵魂腐蚀 发表于 2015-2-7 18:50:39

我感觉linux的学习,学习编程~!~!就去学习C语言编程!!

admin 发表于 2015-2-23 09:35:39

硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。

深爱那片海 发表于 2015-3-7 09:01:58

Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。

简单生活 发表于 2015-3-14 22:18:14

随着IT从业人员越来越多,理论上会有更多的人使用Linux,可以肯定,Linux在以后这多时间不会消失。

莫相离 发表于 2015-3-21 17:49:08

发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。它不是技术支持。
页: [1]
查看完整版本: 给大家带来mysql双击热备+amoeba读写分别试验