构建SQL Server高可用
高可用是当前IT信息系统架构中的热点方向,越多越多的系统追求更高的数据保护和更低的停机时间。作为支撑后台业务运行的数据库系统,不同的数据库厂家也提供了不同的高可用保护方案。结合自身的维护经验和认知,简单谈谈SQL Server在高可用方面的一些选型举措。
1.Failover Cluster(HA集群)
Failover Cluster是依赖于集群软件的一种故障转移方案,物理架构上需要2台以上的主机+一套共享存储。几乎所有的主流数据库都有相应成熟的集群HA解决方案,可以避免因单台服务器硬件以及操作系统环境的故障而带来的单点隐患。HA方案的核心在于,通过集群软件判断集群中资源的状态,故障时刻能够将服务资源自动切换。在Sql Server中,借助于Windows平台上的MSCS,SQL server也提供了一套failover解决方案。该方案成本较高,但有较高的故障转移能力和较低的停机时间,能提供非存储故障引起的故障保护。
2.Database mirroring(数据库镜像)
镜像技术是SQL Server 2005引入的一套软件层的高可用方案。直观的讲,它能够实现类似Oracle Standby的功能。SQL server 镜像提供database级别的保护,需要数据库运行在FULL恢复模式下,最小化的物理架构只需要2台主机即可。它通过同步或异步提交主库上的事务更改到备库,来实现主备库的数据同步,支持快速的平滑角色切换和故障切换。个人认为,镜像功能在企业高可用运用中是有极高的可用度。投入低,维护也相对简单。需要注意的是,由于SQL server架构上的特点,镜像功能并不能提供用户和作业等数据库角色和对象的转移,需要做一定的预处理。对于使用发布/订阅等复制的环境,也需要做一些单独的处理。
3.Log shipping(日志传送)
日志传送能够提供异步的数据保护功能,它通过主库日志的定时传送,然后在辅助库自动进行日志还原。因此,根据企业数据库的应用性质和负载程度,合理的规划日志备份和传送的时间跨度,如何在性能与数据保护中间寻找一个平衡点,是运用日志传送的一个重点所在。个人认为,日志传送已不适合做高可用的数据同步保护,但是可以利用日志传送主库和辅助库有时间差的这个特性,作为数据保护的一种补充,比如:用于快速的处理数据的误操作和基于时间点的不完全恢复。
4.发布与订阅
发布与订阅作为一种复制技术,严格说并不能算是一种高可用的解决方案。发布与订阅的强项在于多源数据的互交与共享,并支持一定的事务处理。但我们依然利用发布与订阅做一些数据的同步和保护。
