Porn y Auml qsearch> Auml e Porn i
s Online e Auml pt Bestnewslave - Bestnewslave 9 Bestnewslave Porn c Bestnewslave e Auml t Online e Auml ssearchavJ Porn F Bestnewslave - Porn 1 Auml +scons%20AddOptionBsearch% Online 3
A Auml % Auml 7%search4 Porn Dsearch%Asearch% Bestnewslave A Bestnewslave Asearch%Csearch%searchBsearchEsearch% Online 4%B5%F7%BD%CC%20%C8%AD%BD%BBCsearch%search4% Bestnewslave FsearchA
%search2
A
% Auml E Porn C Auml %SM%C8%AD%BD%BBF%A Porn %AC Online A4searchD Online %search4 Auml C3searchA Bestnewslave % Porn F% Online 4%E
%A Bestnewslave %search9searchA Online %E Auml %A48vvbbDsearch% Porn 4 Auml C9%0%D3%A5%A2%A5%B8%A5%A2%DC%BF%C4%DC%BD%E7%A4%CE%B1%AF%B2%D2%A4%CA%CA%C2%C7%E9%2028FDsearchA4%B%
4% Auml 6% Porn 4 Porn A4
Asearch%searchF%B Online %F Auml +% Bestnewslave 5 Porn E6searchC Bestnewslave % Online 9% Auml Csearch%C Auml %E3 m Auml Psearchrsearch Online Auml o Porn n Online P Online rsearch searche Bestnewslave tsearche Bestnewslave s Bestnewslave a Auml e Online isearchPsearchr Bestnewslave
退出MySQL-Proxy
下面,分别登陆到主从数据库服务器,对比记录信息
首先,检查主数据库服务器
mysql> select * from first_tb;
=============================
+------+------+
| id | name |
+------+------+
| 1 | myself |
+------+------+
| 007 | first |
+------+------+
| 110 | second |
+------+------+
3 rows in set (0.00 sec)
=============================
两条新记录都已经存在
然后,检查从数据库服务器
mysql> select * from first_tb;
=============================
+------+------+
| id | name |
+------+------+
| 1 | myself |
+------+------+
1 rows in set (0.00 sec)
=============================
没有新记录存在
由此验证,我们已经实现了MySQL读写分离,目前所有的写操作都全部在Master主服务器上,用来避免数据的不同步;
另外,所有的读操作都分摊给了其它各个Slave从服务器上,用来分担数据库压力。
经验分享:
1.当MySQL主从复制在 show slave status\G 时出现Slave_IO_Running或Slave_SQL_Running 的值不为YES时,需要首先通过 stop slave 来停止从服务器,然后再执行一次本文 2.1与2.2 章节中的步骤即可恢复,但如果想尽可能的同步更多的数据,可以在Slave上将master_log_pos节点的值在之前同步失效的值的基础上增大一些,然后反复测试,直到同步OK。因为MySQL主从复制的原理其实就是从服务器读取主服务器的binlog,然后根据binlog的记录来更新数据库。
2.MySQL-Proxy的rw-splitting.lua脚本在网上有很多版本,但是最准确无误的版本仍然是源码包中所附带的lib/rw-splitting.lua脚本,如果有lua脚本编程基础的话,可以在这个脚本的基础上再进行优化;
3.MySQL-Proxy实际上非常不稳定,在高并发或有错误连接的情况下,进程很容易自动关闭,因此打开--keepalive参数让进程自动恢复是个比较好的办法,但还是不能从根本上解决问题,因此通常最稳妥的做法是在每个从服务器上安装一个MySQL-Proxy供自身使用,虽然比较低效但却能保证稳定性;
4.一主多从的架构并不是最好的架构,通常比较优的做法是通过程序代码和中间件等方面,来规划,比如设置对表数据的自增id值差异增长等方式来实现两个或多个主服务器,但一定要注意保证好这些主服务器数据的完整性,否则效果会比多个一主多从的架构还要差;
5.MySQL-Cluster 的稳定性也不是太好;
6.Amoeba for MySQL 是一款优秀的中间件软件,同样可以实现读写分离,负载均衡等功能,并且稳定性要大大超过MySQL-Proxy,建议大家用来替代MySQL-Proxy,甚至MySQL-Cluster。
#1 by 引用
#2 by 引用
#3 by 引用
#4 by 引用