
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
数据库架构开发是大多数软件开发程序员都需要重点掌握的一个互联网编程技术,下面我们就通过案例分析来了解一下,数据库架构主从复制常见问题分析。
1.主从同步的延迟的原因
我们知道,一个服务器开放N个链接给客户端来连接的, 这样有会有大并发的更新操作,但是从服务器的里面读取binlog的线程仅有一个,当某个SQL在从服务器上执行的时间稍长或者由于某个SQL要进行锁表就会导致,主服务器的SQL大量积压,未被同步到从服务器里。这就导致了主从不一致,也就是主从延迟。
2.主从同步延迟的解决办法
实际上主从同步延迟根本没有什么一招制敌的办法,因为所有的SQL必须都要在从服务器里面执行一遍,但是主服务器如果不断的有更新操作源源不断的写入,那么一旦有延迟产生,那么延迟加重的可能性就会原来越大。当然我们可以做一些缓解的措施。
a.我们知道因为主服务器要负责更新操作,他对安全性的要求比从服务器高,所有有些设置可以修改,比如sync_binlog=1,innodb_flush_log_at_trx_commit=1之类的设置,而slave则不需要这么高的数据安全,完全可以讲sync_binlog设置为0或者关闭binlog,innodb_flushlog,innodb_flush_log_at_trx_commit也可以设置为0来提高sql的执行效率这个能很大程度上提高效率。另外就是使用比主库更好的硬件设备作为slave。
b.就是把,一台从服务器当度作为备份使用,而不提供查询,那边他的负载下来了,执行relaylog里面的SQL效率自然就高了。
c.增加从服务器喽,这个目的还是分散读的压力,从而降低服务器负载。
3.判断主从延迟的方法
MySQL提供了从服务器状态命令,可以通过showslavestatus进行查看,比如可以看看Seconds_Behind_Master参数的值来判断,是否有发生主从延时。
其值有这么几种:
NULL-表示io_thread或是sql_thread有任何一个发生故障,也就是该线程的Running状态是No,而非Yes.
0-该值为零,是我们极为渴望看到的情况,表示主从复制状态正常
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。