AlwaysOn是MSSQL Server 2012的一个高可用性方案,它可以使用Windows Server Failover Clustering (WSFC)来提供数据库级别的高可用性保护。这个方案可以确保故障转移时业务服务的连续性,为企业提供低成本、高可靠、容错能力强的解决办法。
1. AlwaysOn的概述
Microsoft SQL Server AlwaysOn解决方案是一种基于故障转移集群技术的高可用性和灾害恢复解决方案。通过使用AlwaysOn技术,可以使SQL Server的多个实例在单个项目中实现故障转移,并确保可用性最大化。
1.1 AlwaysOn功能组件
AlwaysOn分为两个组件:
1. AlwaysOn高可用性功能组件:由AlwaysOn故障转移、AlwaysOn可用性组、资源组、可用性副本和可扩展性组件组成。
2. AlwaysOn灾难恢复功能组件:由AlwaysOn全局负载平衡器和AlwaysOn复制组件组成。
1.2 AlwaysOn解决方案的特点
AlwaysOn解决方案是SQL Server高可用性和灾害恢复最佳方案之一,具有以下特点:
1. 可以实现快速故障转移,几乎不会影响到生产环境。
2. AlwaysOn支持多个实例,每个实例支持多个数据库。
3. AlwaysOn支持异地容错、数据中心容错和镜像模式等多个高可用性和灾难恢复解决方案。
2. AlwaysOn故障转移的介绍
AlwaysOn故障转移是SQL Server 2012的一项新功能,可避免SQL Server发生单点故障,同时能够提供一种快速、可靠的容错机制,从而保障关键应用程序在出现故障时的持续性。
2.1 AlwaysOn故障转移的优势
1. 可避免SQL Server出现单点故障,保证关键应用程序的持续性。
2. 可提供灵活的容错机制,从而加快数据中心的恢复时间。
2.2 实现故障转移的步骤
在SQL Server 2012中实现AlwaysOn故障转移,需要遵循以下步骤。
1. 确保所有参与故障转移的节点运行的是SQL Server 2012及以上版本。
2. 创建一个Windows Server Failover Clustering(WSFC)集群,用于管理故障转移。
3. 在WSFC上创建一个可用性组,以及相应的可用性副本和资源组。
4. 创建故障转移组/监听器。
5. 创建数据库,选择以同步模式启用。
6. 将数据库添加到可用性组中。
7. 设置各种故障转移的参数和属性。
2.3 SQL Server AlwaysOn的优化建议
在使用AlwaysOn的过程中,也需要注意一些优化和调整建议。以下是一些关键的优化建议:
1. 确保使用了无缝的故障转移。 AlwaysOn的故障转移功能应该能够无缝地转移到新的节点,以最大化可用性。
2. 规划传输、日志记录等任务的计划和周期。 根据不同的需求和类型来定期和充分规划传输、日志记录等任务的计划和周期。
3. 保持网络连接的持续活动,目的是避免故障或延迟。 AlwaysOn依靠网络连接,因此保持持续的网络连接也是确保高可用性和灾难恢复的关键。
3. AlwaysOn可用性组和可用性副本介绍
可用性副本是AlwaysOn的一个基本组成部分,是指可用性组的实例或副本。可用性组是一组关联的数据库,其中至少有一个可用性副本。可用性副本与特定数据库的其他副本保持同步,以确保在故障转移过程中可用性组的整体稳定性。
3.1 可用性组和可用性副本的架构
可用性副本是通过可用性组来组织的。其中,可用性组可以包含多个副本(从副本或者辅助副本)。每个可用性组至少有一个主副本,并且可以定义多个辅助副本。
3.2 可用性副本的类型
SQL Server AlwaysOn可用性副本主要有以下几种类型:
1. 主副本:负责处理写入操作。只有一个数据库可以拥有一个主副本。
2. 次要副本:可以读取可用性组中所有数据库的数据,但只能处理可用性组的部分写操作(如读取操作)。
3. 从副本:异步的辅助副本,一般不用于读取操作。可以用来支持异地容错。
3.3 配置可用性副本
在SQL Server 2012中,可用性副本是通过以下步骤来配置的:
1. 在SQL Server Management Studio中选择“现有节点添加到可用性组”创建一个可用性组。
2. 在可用性组中选择各个副本,并为每个副本定义属性。
3. 配置主副本和其他副本的可用性模式。
4. 将各个数据库添加到可用性组中。
5. 根据具体的需求定义其他属性和选项。
4. AlwaysOn参数配置
AlwaysOn的高可用性是由一系列参数来保证的。这些参数覆盖了许多方面,包括网络、存储、CPU、内存和I/O等。以下是一些必须配置的参数:
1. 自动故障转移:这是必须开启的,以确保在可能的失败情况下进行快速故障转移,避免数据丢失。
2. 启用复制方案:这是确保可用性和灾难恢复正确恢复的关键。
3. 自动读取偏好设置:这是确保可用性副本之间最佳读取体验的关键。
4. 远程读取设置:这是必须开启的,以确保在可用性副本数量多时能够保留快速读取的体验。
5. AlwaysOn的最佳实践
以下是有关AlwaysOn的最佳实践:
1. 初始化期间留意错误:在SQL Server实例之间进行初始同步(启动或恢复操作)时,必须时刻留意错误和异常情况,以确保正确的配置和操作。
2. 容错群集/网络保持活动: 维持快速容错和自动故障转移的实现,避免所有成员之间的网络不通。
3. 升级操作系统:在升级操作系统时,必须正确处理升级后的AlwaysOn配置。
结论
AlwaysOn是一种高可用性方案,它可以确保故障转移时业务服务的连续性。MSSQL Server 2012的AlwaysOn可以使SQL Server的多个实例在单个项目中实现故障转移,并确保可用性最大化。通过正确的配置和操作,可以保障SQL Server关键应用程序的持续性,增加数据中心的恢复时间。