当使用主从时,实际已经放弃了强一致性了。(既然题主只问单点问题,就不考虑访问量问题。即假设主从复制完全能支撑目前的系统访问。)
一般数据库主从设置:
主库可读可写
从库只读即系统既可以从主库获取数据,也可以从从库获取数据。数据写入主库后,自动同步到从库。
这构成了一个简单的分布式系统。根据cap定理,只能三选一。主从之间是最终一致,如果强一致,不但不会提高系统可用性,反而降低了系统可用性。
大家看上面的主从结构可能会出现哪些问题:
系统写入主库,再从主库查询。这就是个单点数据库,没有什么影响。
系统写入主库,再从从库查:– 如果数据已经同步,则没有影响
– 如果数据还未同步,则查询的是老数据
– 如果同步出现了问题,则主从断开。如果系统无法感知,则查询到的可能一直是老数据。这里就需要对同步进行监控,当同步出现问题时,及时处理
主库挂掉。从库需要及时感知,并替换主库。同时需要再通知运维人员处理,否则又变成了单点。
从库挂掉。主库数据无法同步到从库。同样需要及时通知处理
如果主从切换自动化,那单点故障的概率也只是降低50%而已(主库或备库挂掉没人恢复的话)。
测试mysql连接,mysql不用索引情形,mysql指定数值排序,mysql5.7 超级用户,开发环境mysql,spoon mysql连接