数据处理是企业绝大多数应用的核心,在生产环境中,数据库总是扮演着非常重要的角色。在微软的SQL Server中主要通过四个传统的高可用性和灾难恢复技术:故障转移群集(Cluster)、日志传送(Log Shipping)、复制(Replication)、和数据库镜像(Database Mirroring)来保障业务的连续性。在SQL Server 2012中微软新增一种高可用性技术来保证生产环境下的业务连续性—SQL Server Always On。
AlwaysOn可用性组功能是一个提供替代数据库镜像的企业级方案的高可用性和灾难恢复解决方案。SQL Server 2012 中引入了AlwaysOn 可用性组功能,此功能可最大程度地提高一组用户数据库对企业的可用性。“可用性组”针对一组离散的用户数据库(称为“可用性数据库”,它们共同实现故障转移)支持故障转移环境。一个可用性组支持一组读写主数据库以及一至四组对应的辅助数据库。(可选)可使辅助数据库能进行只读访问和/或某些备份操作。
AlwaysOn利用了Windows故障转移群集的健康监测和自动故障转移的特性,因此它必须建立在Windows故障转移群集之上。但是和SQLServer群集不同的是,可用性组里的数据库并不是一定要求存放在共享存储(SharedDisk)上的,它们也可以存储在本地磁盘上。另外,可用性组是以用户数据库的集合为单位进行健康检测和故障转移的,而不像SQLServer群集那样是以整个实例为单位。
AlwaysOn 可用性组提供了一组丰富的选项来提高数据库的可用性并改进资源使用情况。
1. 支持最多五个可用性副本。 “可用性副本”是可用性组的实例化,此可用性组由特定的 SQL Server 实例承载,该实例维护属于此可用性组的每个可用性数据库的本地副本。每个可用性组支持一个主副本和最多四个辅助副本。
2. 支持替代可用性模式:
1) 异步提交模式。此可用性模式是一种灾难恢复解决方案,适合于可用性副本的分布距离较远的情况。
2) 同步提交模式。此可用性模式相对于性能而言更强调高可用性和数据保护,为此付出的代价是事务延迟时间增加。一个给定的可用性组可支持最多三个同步提交可用性副本(包括当前主副本)。
3. 支持几种形式的可用性组故障转移:自动故障转移、计划的手动故障转移(通常简称为“手动故障转移”)和强制的手动故障转移(通常简称为“强制故障转移”)。
4. 支持每个可用性组的可用性组侦听器。“可用性组侦听器”是一个服务器名称,客户端可连接到此服务器以访问 AlwaysOn 可用性组的主副本或辅助副本中的数据库。 可用性组侦听器将传入连接定向到主副本或只读辅助副本。侦听器在可用性组故障转移后提供快速应用程序故障转移。
5. 支持用于避免页损坏的自动页修复。
6. 支持灵活的故障转移策略以便更好地控制可用性组故障转移。
7. 支持加密和压缩,这提供了安全且高性能的传输方式。
8. 提供了一组集成的工具来简化部署和管理可用性组,这些工具包括:
1) 用于创建和管理可用性组的 Transact-SQL DDL 语句。
2) SQL Server Management Studio 工具:
a) 新建可用性组向导 创建和配置可用性组;
b) 将数据库添加到可用性组向导 向现有可用性组添加一个或多个主数据库。在某些环境中,此向导还可以自动准备辅助数据库并且为每个数据库启动数据同步;
c) 将副本添加到可用性组向导 向现有可用性组添加一个或多个辅助副本。在某些环境中,此向导还可以自动准备辅助数据库并且为每个数据库启动数据同步;
d) 故障转移可用性组向导 启动对可用性组的手动故障转移。根据您指定为故障转移目标的辅助副本的配置和状态,该向导可以指定计划的手动故障转移或强制手动故障转移。
3) AlwaysOn 面板 监视 AlwaysOn 可用性组、可用性副本和可用性数据库,并且评估 AlwaysOn 策略的结果。
9. “对象资源管理器详细信息”窗格显示有关现有可用性组的基本信息。
10.PowerShell cmdlet。
下演示如何配置SQL Server 2012 Always On
1. 登陆SH-SQL-01服务器,插入安装介质,双击setup.exe文件。安装模式选择基于全新SQL Server独立安装。
2. SQL Server组件安装页面,我选择全部安装,生产环境下不建议此操作
3. 服务器配置页面,点击排序规则,选择“SQL_Latin1_General_CP1_CI_AS”
4. 关于SQL Server的安装,请参见之前写的《安装System Center 2012 R2 数据库》
http://ericxuting.blog.51cto.com/8995534/1440305
5. 等待SQL Server安装完成
6. 为了方便测试,创建两个Database,DB01以及DB02
7. 登陆SH-SQL-02服务器重复上述,等待SQL Serve安装完成
8. 在SH-SQL-01/02服务器中安装Windows Server Failover Cluster(WSFC)功能
9. 新建Windows Server Failover Cluster(WSFC),命名为SH-SQL-CLU。但是此WSFC不需要配置共享磁盘。
10.点击开始按钮,在开始屏幕中点击SQL Server配置管理器
11.在右侧的面板中,右击SQL Server(MSSQLSERVER),然后选择属性
12.在SQL Server(MSSQLSERVER)属性对话框中的AlwaysOn高可用性标签中,选中启用AlwaysOn可用性组(E)选项,然后点击确定
13.在警告的消息框中点击确定
14.在SQL Server配置管理器中右击SQL Server(MSSQLSERVER),然后选择重新启动
15.登陆SH-SQL-02服务器重复上述操作
16.返回SH-SQL-01服务器,使用SQL Server Management Studio登陆SQL
17.在SQL Server Management Studio中的对象资源管理器 面板中,展开AlwaysOn高可用性节点
18.右键可用性组,选择新建可用性向导
19.新建可用性组向导页面,阅读相关信息后点击下一步
20.指定可用性组名称页面,键入可用性组名称“SH-SQL-AG”
21.选择数据库页面,选择可用性组的用户数据库
22.要想配置AlwaysOn数据库,需要注意以下事项:是用户数据库、是读/写数据库、是多重用户数据库、不使用 AUTO_CLOSE、使用完整备份模式、拥有完整数据库备份、位于 SQL Server 实例中,在该实例中您将创建可用性组并且可以对其进行访问、不属于另外一个可用性组、没有配置过数据库镜像。
根据提示,此时需要备份数据库
23.选择DB01、DB02,点击下一步
24.指定副本页面,点击添加副本
25.连接到服务器页面,选择连接到SH-SQL-02服务器
26.根据需要指定SQL的主副本、自动故障转移数量、同步提交数量以及是否为可读辅助副本
27.选择初始数据同步页面,选择仅连接
28.验证页面,确保所有验证通过。此处的警告为检测是否已配置AlwaysOn侦听器。点击下一步
29.摘要页面,确认无误后点击完成
30.等待配置完成。
31.在对象资源管理器面板中展开可用性组,展开SH-SQL-AG可用性组,然后查看可用性组的配置信息。
32.右键可用性侦听器,选择添加侦听器
33.新的可用性组侦听器页面,键入侦听器DNS名称、端口以及网络
34.等待可用性组侦听器创建完成
35.登陆SH-SQL-02服务器,打开SQL管理控制台
36.右键DB01,选择还原数据库
37.还原数据库页面,指定备份文件路径
38.此时系统会提示正在还原数据库
39.在可用性数据库页面,右键database选择连接到可用性组
40.新建数据库引擎连接
41.连接到服务器页面,键入SH-SQL-AG1
42.展开数据库,查看数据库同步状态
43.右击SH-SQL-AG,点击显示面板,查看AlwaysOn状态
这里我选择的使用手动故障转移,在生产环境下建议配置为自动鼓掌转移
44.右键SH-SQL-AG,选择故障转移,将启动SQL故障转移向导