MySQL高集群方案
刚入职到公司就有幸参与MySQL集群方案的调研工作。经过将近一个月的调研基本了解了一些常用的集群方案,在此总结下并分享给大家。MySQL支持多种高可用环境的搭建,很难说哪一个是完美的解决方案,只能结合实际应用环境选择合适的解决方案。集群方案的研究内容分为高可用和高性能。
高可用性
最常用的高可用数据库环境就是,搭建双机主备方案,服务和数据都有一个活跃的的系统进程,当故障发生时,飞活跃的进程迅速接管服务,保证DB对外可提供可持续的服务。
Active/Standby MySQL配置
MySQL的技术特性决定我们只能使用单一的进程提供数据库服务,它在商业应用解决方案不能类似ORACLE那么多进程访问同一套数据库,但是MySQL提供Active/Standby模式的高可用。通过块复制或标准的复制搭建;允许Active/Standby都有权限访问共享存储上的数据。
1)、通过标准复制搭建Active/Standby模式
上图即为它的拓扑图。Master处于正常情况下客户端只访问Master。通过HeartBeat心跳监控,当Master停止服务时Slaver立即接管服务。这种部署请使用尽量好的网络环境,MySQL提供的Replication不是同步复制。这也只是能尽量保证数据的一致性。在Slaver服务器中存在两个线程复制Master的数据:IO线程,负责从Master获取在Master中产生的二进制日志文件,并放入中继日志中;SQL线程,在通过中继日志重放Master上的操作达到复制数据的目的。因为做调研时的网络环境较差,当Master写数据压力较大时,Slaver的数据延迟很大。
2)、通过DRBD块复制实现Active-Standby模式
上图即为这种模式的拓扑图。这是一种同步的复制。分布式块复制时基于Linux内核的设备块之间的网络复制技术,它会将按DRBD模式创建的磁盘分区内的所有数据从MasterDRBD块复制到SlaveDRBD块,是一种替代共享存储和提高MySQL复制速度的方案之一。当MasterDRBD故障时,SlaveDRBD会替代MasterDRBD的地位,同时原有MasterDRBD恢复重新加入环境后其还会将新的数据写入原有的MasterDRBD内,保持数据的一致性。
小弟的一点愚见,希望高手们能多多指教。
先写这里吧,有空了再来更新。
页:
[1]