sqlserver高可用概述
高可用方案概述
AlwaysOn的引入
AlwaysOn Group是微软最新的、用于替代数据库镜像的、企业级的高可用性和灾难恢复解决方案,提供多节点高可用,并且辅助副本可读和备份。
高可用方案概述
方案 | 自动切换 | 自动切换条件 | 从库数据访问 | 主要优缺点 |
---|---|---|---|---|
复制 | 不支持 | --- | 订阅db可读写 | 以表为单位,链路复杂 运维复杂,延迟频发 |
日志传送 | 不支持 | --- | 同步时连接会中断 | 追加日志有间隔,做不到实时 |
数据库镜像 | 半支持 | 仲裁实例(3节点) | 镜像db不可读 | 以库为单位,运维方便 备机不可读,浪费2台机器 |
故障转移集群 | 支持 | 仲裁盘(必须) 共享存储(必须) 心跳网络 |
备用节点不可读 获取不到共享存储 |
对应用完全透明 共享存储存在单点故障 备机不可读,浪费1台机器 |
Alwayson Group | 支持 | 仲裁盘(非必须) 共享存储(非必须) 心跳网络(非必须) |
实时数据 | 对应用完全透明 辅助节点可读(读写分离) 最多支持1主8从(异地容灾) 支持辅助节点备份(降低主库磁盘io) 不需要共享存储(不存在单点故障) |
几点建议与注意
- SQL Server的高可用方案首推 Alwayson Group(以下简称ag),从 SQL Server 2016 开始已提示后续版本将删除数据库镜像
- 搭建ag要求SQL版本为64位 SQL Server 2012及以上版本,且必须为企业版(x86不支持ag)
- 搭建ag要求OS版本为64位 Windows Server 2012 中文标准版及以上版本(建议数据中心版)
- SQL Server 2012及2014搭建ag必须要有域环境,但SQL Server 2016及以上可以不需要域环境
参考
基于ag的读写分离
对于实时性要求不高的业务,可以把读流量切到从库,降低主库压力。附上一个最佳实践的设计方案。