MSSQLServer集群技术的探讨北京格瑞趋势科技有限公司议程一、为什么需要集群二、可用性集群三、可扩展性集群四、我们在集群方面的尝试为什么需要集群持续扩展性能问题特点:针对某一问题单独解决,问题是在数据库上往往不是只遇到其中的一个问题,有没有一个合适的统一办法?宏观:业务分拆读写分离硬件升级系统迁移微观:代码优化系统调优目前:向上扩展未来:向外扩展可用性安全性搭建HA集群或镜像HA集群数据备份冗余数据数据备份搭建灾备系统(灾备软件)数据备份SQLServer失败转移集群(Active/Passive)PrimaryNodeSecondaryNode\\VirtualServer1ClientSQLServerRAIDArraySQLServer失败转移集群(Active/Active)PrimaryNodefor//VirtualServer1SecondaryNodefor//VirtualServer2PrimaryNodefor//VirtualServer2SecondaryNodefor//VirtualServer1//VirtualServer1ClientClient//VirtualServer2SQLServerSQLServerSQLServerMirror(异步模式)镜像服务器日志SQLServerSQLServer21数据数据日志22223提交2主服务器ClientSQLServerMirror(同步模式)镜像服务器主服务器日志SQLServerSQLServer22.141数据数据日志3235提交见证服务器Client第三方HA集群文件复制客户端备用工作写操作负载均衡器客户端CentralDB数据复制读操作MSCS客户端SQLServer事务复制分布式分区视图MoebiusforSQLServer31ClientMoebiusSQLServerMoebiusSQLServer可扩展至多台提交42为什么要同步复制an...a2a1异步复制frontrear入队出队MoebiusSQLServerMoebiusSQLServer同步复制在SQLServer执行环境下同步序列化SQLDirectorforSQLServerClientMoebiusSQLServerMoebiusSQLServerMoebiusSQLServerSQLDirectorSQLDirectorforSQLServerCentralDB复制/订阅MSCSSQLDirectorGreenCloudforSQLServer客户端GreenCloudControllerNodeGreenCloudforSQLServerINSERTdbo.UserInfo(UserID,Username,Age)VALUES(1,‘zhou’,31)UPDATEdbo.UserInfoSETUsername=‘dazhou’WHEREUserID=1UPDATEdbo.UserInfoSETAge=Age+1WHEREUsername=‘zhou’SELECT*FROMdbo.UserInfoWHEREUserID=1SELECT*FROMdbo.UserInfoWHEREAge=30SELECTTOP20*FROMdbo.UserInfoWHEREAge=30GreenCloudforSQLServerMoebiusforSQLServerGreenCloudControllerNode