|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
欢迎大家来到仓酷云论坛!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
[root@localhost~]#source/etc/profile
[root@localhost~]#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
[root@localhost~]#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
欢迎大家来到仓酷云论坛! |
|