AlwaysOn介绍MaxMicrosoft议程•什么是AlwaysOn•为什么选择AlwaysOn解决方案•AlwaysOnVSMirror•AlwaysOnVSCluster•AlwaysOnVSLogShipping•AlwaysOnVSReplication•AlwaysOn进阶•AlwaysOn解决方案注意事项•案例什么是AlwaysOn参考:优点•支持最多五个可用性副本•支持替代可用性模式(同步、异步)•支持几种形式的可用性组故障转移:自动故障转移、计划的手动故障转移(通常简称为“手动故障转移”)和强制的手动故障转移(通常简称为“强制故障转移”)。•支持2种辅助功能,只读副本访问/辅助副本执行备份操作•支持每个可用性组的可用性组侦听器•支持灵活的故障转移策略以便更好地控制可用性组故障转移•支持用于避免页损坏的自动页修复•支持加密和压缩•提供了一组集成的工具来简化部署和管理可用性组故障转移灵活设置副本可用性模式和故障转移模式设置A同步提交模式(自动故障转移)B同步提交模式(自动故障转移)C同步提交模式(仅限计划的手动故障转移)D异步提交模式(仅限强制故障转移)故障转移模型为什么选择AlwaysOn解决方案AlwaysOn解决方案优势AlwaysOn与MirrorAlwaysOnMirrorAutoFailover支持支持需第三节点支持WindowsCluster支持必须无需域控制器必须可选保护存储支持5套副本支持2套副本快速切换SecSec备节点可读可读2同步只读2异步只读可读需要数据库快照支持共享监听支持多个共享监听1主IP1Failover(备)IP实例名可不一致可不一致仲裁服务器主数据库镜像数据库主服务器辅助节点服务器同步节点1辅助节点服务器同步节点2辅助节点服务器异步节点2辅助节点服务器异步节点1数据库快照如果客户有两个或以上节点考虑的情况下最佳解决方案选择AlwaysOn注意事项:•数据库日志文件问题•创建初期给予一个较大LogFile文件•定期备份事务日志文件•定期全备数据库•InstanceLogin问题•普通关系型数据库•两种解决方案都需要做创建Login和SID映射•包含数据库•不需要重新创建Login和SID映射•包含数据库的功能比普通关系型数据库弱,做方案时需注意取舍AlwaysOn解决方案优势AlwaysOn与ClusterAlwaysOnClusterAutoFailover支持支持WindowsCluster支持必须必须保护存储支持5套副本不支持1套副本快速切换SecMin备节点可读可读不可使用共享监听共享监听共享监听实例名可不一致必须一致分布式事务服务支持MSDTC不用必须辅助节点服务器同步节点1数据库副本主服务器数据库副本辅助节点服务器同步节点2数据库副本辅助节点服务器异步节点2数据库副本辅助节点服务器异步节点1数据库副本主节点共享存储数据库副本备节点Failover备节点主节点共享存储数据库副本如果客户有两个或以上节点考虑的情况下最佳解决方案选择AlwaysOnAlwaysOn解决方案优势AlwaysOn与LogShippingAlwaysOnLogShippingAutoFailover支持不直接支持,需自定义脚本保护存储支持5套副本不完全支持多套副本快速切换Sec手工干预备节点可读可读不完全支持需设置共享监听共享监听无实例名可不一致可不一致域控制器必须同网段内非必须辅助节点服务器同步节点1数据库副本主服务器数据库副本辅助节点服务器同步节点2数据库副本辅助节点服务器异步节点2数据库副本辅助节点服务器异步节点1数据库副本主服务器节点数据库副本还原服务器节点数据库副本KeepRestoreCrash主服务器节点数据库副本还原服务器节点数据库副本•备份主数据库尾日志•还原尾日志•切换应用程序数据库连接IP如果客户有两个或以上节点考虑的情况下最佳解决方案选择AlwaysOnAlwaysOn解决方案优势AlwaysOn与ReplicationAlwaysOnReplicationAutoFailover支持不支持WindowsCluster支持必须不需要保护存储支持5套副本不完全支持保护特定的数据对象快速切换Sec不可切换备节点可读可读可读写共享监听共享监听无实例名可不一致可不一致辅助节点服务器同步节点1数据库副本主服务器数据库副本辅助节点服务器同步节点2数据库副本辅助节点服务器异步节点2数据库副本辅助节点服务器异步节点1数据库副本发布服务器数据副本订阅服务器数据副本Crash•重建发布服务器•重建订阅关系•刷新订阅发布服务器数据副本订阅服务器数据副本如果客户有两个或以上节点考虑的情况下最佳解决方案选择AlwaysOnAlwaysOn进阶AlwaysOn解决方案进阶TwoNodeLocalSolutionRemoteSolution主节点服务器数据库副本主节点服务器数据库副本辅助节点服务器同步节点数据库副本辅助节点服务器异步节点数据库副本收益•自动故障转移•0数据丢失•实时数据读写分离•备份压力分摊•自动页坏块修复收益•手动故障转移•异步数据读写分离•异地容灾AlwaysOn解决方案进阶ThreeNodeLocalSolutionL\RMixSolution主节点服务器数据库副本主节点服务器数据库副本辅助节点服务器同步节点数据库副本辅助节点服务器异步节点数据库副本收益•自动故障转移•0数据丢失•实时数据读写分离•任意服务器宕机不增加其他服务器负载收益•自动故障转移+手动故障转移•0数据丢失+异步节点容忍短期数据丢失•同步/异步数据读写分离•异地容灾辅助节点服务器同步节点数据库副本辅助节点服务器同步节点数据库副本AlwaysOn解决方案进阶(一)多子网AlwaysOn解决方案-网络拓扑图主服务器数据库副本辅助节点服务器同步节点1数据库副本辅助节点服务器同步节点2数据库副本辅助节点服务器异步节点1数据库副本辅助节点服务器异步节点2数据库副本路由器DC1DC2共享文件服务器Cluster文件夹仲裁Local192.168.10.0/24Remote192.168.20.0/24AlwaysOn解决方案进阶(一)多子网AlwaysOn解决方案-部署关键点•Router–子网间心跳网络路由–子网间Domain网络路由•WindowsCluster–多子网WindowsCluster,从Windows2008R2开始由操作系统原生支持•DoubleDomainController–在考虑多子网远程数据库容灾的解决方案中,使用到的域控制器也一定要做到容灾,防止短板发生•FileServer–用于提供Cluster仲裁文件夹–用于提供AlwaysOn所需的备份集共享存储•ShareListener–监听位于192.168.10.0/24网络数据包–监听位于192.168.20.0/24网络数据包AlwaysOn解决方案进阶(二)多子网复杂AlwaysOn解决方案-网络拓扑图SQL02Node02SQL03Node03SQL04Node04RoutelocalandRemoteStorage02Storage01SQL01Node01AlwaysOnSQLCluster01SQLCluster02RemotemirrorAlwaysOnSQL群集故障转移(自动)AlwaysOn故障转移(手动)SQL群集故障转移(自动)AlwaysOn故障转移(手动)异地容灾生产环境AlwaysOn解决方案进阶小结•单实例激活AlwaysOn是为了以后扩展节点时不造成停机的预留手段,一般情况用不到,但如果客户在短期内有扩容需求则可以考虑进整体解决方案•4个节点、5个节点的情况都属于以上两种基础解决方案的变形•如果准备多节点情况下,需要明确是否有使用MSSQL的其他服务例如:AnalysisService、IntegrationService等,如果有且需要共用这些服务器,则将这部分Feature独立出AlwaysOn所在实例,新建其他实例使用MSSQLCluster同时为这些服务提供Failover能力•建议不在Hyper-VHost构建LiveMigration的VM中部署AlwaysOn,至少不使用该HostCluster作为AlwaysOnCluster,当HostCluster发生Failover时,可能导致VM中AlwaysOn漂移AlwaysOn解决方案注意事项AlwaysOn解决方案注意事项(一)•SQLServer2012没有负载均衡特性•SQLServer2012Mirror备节点没有实时只读能力•SQLServer2012Mirror节点能够进行数据库备份AlwaysOn解决方案注意事项(二)•AlwaysOn搭建以后无法读写分离的问题解决方案:•为服务器上每个Instance配置对应的监听端口•在可用性组中为只读副本配置可读参数•配置只读路由表:•PowerShell•T-SQL为可用性组配置只读路由(SQLServer)解决方案注意事项(三)•DNS轮询方式解决AlwaysOn只能两节点使用的问题注意事项:•DNS轮询不是完美的负载均衡解决方案•实施DNS轮询解决该问题时需要将Application节点的DNSCache禁用,否则无法实现所需的节点漂移功能•DNSCache被Disable后每次连接或Ping都会重新向DNS服务器进行请求,这将加大DNS服务器的压力•实施DNS轮询配置时一定要设置过期时间,否则某节点宕机后App节点请求到的DNS列表将依然包含该节点IP,导致链接失败,就算设置过期也需要一定时延(1秒),所以设计App时也需要考虑到这点•由于AlwaysOn是1主+2同步,剩余2异步节点自身的数据同步时间是不可控的,最好做两组DNS轮询,以便直接将其隔离开升级紧迫性案例TradeStationGreatWesternBank香港赛马会RackspaceHosting挪威DNV金蝶软件携程中海航案例四川工商信用系统四川电教馆中国电信南方航空广东国税广东省人民法院深圳标准技术研究院完美国际超图软件中国南方航空公司对于航空运输行业而言,效率和安全性是关乎企业生存的两大因素,因此,IT系统的高可用性对于南方航空而言极其重要。微软SQLServer2012所提供的AlwaysOn功能为南方航空实现了基于服务器集群的系统高可用性,提升了系统的安全性;同时SQLServer2012的商业智能功能协助南方航空实现了增强的报表功能,提升了全员的运作效率。南方航空股份有限公司Thanks