[SQL SERVER][Denali]SQL Server 2012: AlwaysOn Availability Groups
SQL Server 2012 好文比赛得奖公布
文章参考来源:SQL SERVER 好文比赛
主题:SQL Server 2012: AlwaysOn Availability Groups (SQL 142)
写这篇突然让我想起备份真的很重要~~~~><"
去年我参加ITHOME铁人赛连续30天分享SQL2012新特性文章,
当时本打算分享AlwaysOn新特性,
所以我在自己的电脑上建立3个VM自我练习架设AlwaysOn,
但连操一个礼拜后(测试500GB数据库执行Failover是否正常、应用程序自动导向、select 、Inser性能....等),
服役一年多的WD硬盘无预警挂点(Bios都抓不到@@),
相关VM文件我也没备份,还有一些之前管理的Scripts和电子书也都没了(...郁闷),
所以之后我就很少去摸AlwaysOn相关特性和操作(因为我不敢再操硬盘和同时执行多VM...),
得知微软有提供VirtualLab环境,所以再次引起我对AlwaysOn的热情,
也继续加强自己对AlwaysOn熟悉度。
前言
SQL Server AlwaysOn 是SQL Server 2012新的高可用性方案,它结合高可用和灾难复原的特性,
也提高数据库和执行个体层级的可用性,同时针对企业重要的应用程序提供整体架构必需的9(5个9=>99.999%)。
AlwaysOn Availability Group在SQL Server 2012是一项新特性,
它加强Cluster架构下针对SQL Server执行个体操作FailOver的可用性和有效性。
透过这次学习你将知道如何使用SQL Server AlwaysOn设定高用可性解决方案。
学习目标
这次我们将学到使用AlwaysOn Availability Group来对应用程序数据库提供高可用性,
你将依序练习以下每个部分
*针对已启用Availability Groups的SQL Server设定Windows Server Failover Cluster
*在SSMS中使用Availability Group 精灵来设定Availability Group
*设定 Availability Group 监听器并针对OLTP应用程序测试启用透过监听器自动重新连接导向。
*设定应用程序为只读应用程序,并且将应用程序导向到第二个活动中节点。
Exercise 1: Configuring a Windows Failover Cluster
使用Availability Group先决条件就是每个可用性复本都必须位在单一 Windows Server 容错移转丛集 (WSFC) 丛集的不同节点。
你将学习如何依照Availability Group 特性来建立windows cluster,
练习结束后你将了解建立一个Windows Failover Cluster 节点需要那些组件、
如何安装Windows Cluster Service及如何设定多节点的Windows Failover Cluster。
设定防火墙
请使用Administrator权限执行。
ps:其他服务器需重复相同步骤设定防火墙,才能确保服务器之间网络沟通没有问题(可互相存取执行个体)。
执行Failover Cluster Manager
执行Validate a Configruation
加入相关服务器
查看验证测试报告
完成组态验证后且没有问题后即可建立Cluster。
点选 Create a cluster
选择相关服务器
输入丛集名称
确认丛集状态
IP Address请依Lab环境确认。
Exercise 2: Configuring an Availability Group
SQL Server 2012 AlwaysOn Availability Groups针对你的应用程序数据库提供高可用性方案,
Availability Group 提供以群组为单位的故障转移(也可以设定多个执行个体),可说将应用程序数据库的可用性提高到最大化。
Availablity Group包含SQL Server执行个体的本机可用副本,群组中只能有一个主要复本,每个可用性群组支持1个主要复本和4个次要副本,
主要数据库是主要提供使用者读写存取作业。
这次练习你将学到使用Availability Group精灵执行相关设定、启动SQLONE为主要数据库...等。
开启SSMS连接三个执行个体
展开 AlwaysOn High Availability 会出现以下错误消息
因为没有启用AlwaysOn Availability Groups。
针对三台服务器启用AlwaysOn Availability Groups。
记得重新启动 SQL Server Service,否则相关变更不会套用。
新增可用性群组
输入可用性群组名称
下一步你会发现无法选择数据库,
因为Availability Group中的数据库必须满足以下条件
1.需为使用者数据库
2.数据库需可读和写
3.数据库不行为单一使用者模式
4.数据库不可设定自动关闭(Auto_Close)
5.数据库需使用完整复原模式
6.至少有一个完整备份
7.位于建立可用性群组的 SQL Server 执行个体上,且服务器执行个体能够存取它。
8.数据库不能存在其他可用性群组中
9.不可设定数据库镜像(DB Mirroring)
执行以下陈述式更改复原模式并执行完整备份
重新整理即可选择符合条件的数据库
设定可用性副本
设定SQLTWO 可读取的副本=Yes、SQLSIX=只读连接存取。
透过可用性副本可以改善次要硬件资源,并降低成本同时提高IT效率,对于主要复本的性能会有明显的改善。
查看端点资讯
建立完成
这次练习并未设定Listener所以有警告是正常的,
下面的练习将来设定Listener。
Exercise 3: Configuring AlwaysOnGroup Listener
本次练习你将了解如何设定AlwaysON Availability Group Listener
新增监听器
输入监听器名称和监听Port
子网络请依环境选择。
开启 cmd 使用ping 功能,确认可以正常响应
响应正常(其他服务器也需确认是否响应正常)。
Exercise 4: Manual Failover of the Availability Group
本次练习你将了解如何手动操作容错移转精灵执行容错移转工作,
稍后也会手动使用TSQL陈述式操作容错移转。
选择show dashboard(显示仪表板)
确认可用性群组状态
查看群组中所有数据库同步状态、容错移转数据遗失状态
接下来手动操作容错移转
点选 start failover wizard。
勾选SQLTWO
选择连接验证方法和账户
执行成功
开启仪表板再次确认可用性群组状态
可以看到主要执行个体从原本的SQLONE转移到SQLTWO了。
Exercise 5: Read-Write Application Failover
这次练习你将学到在可用性群组中如何设定读-写应用程序重新连接到新的主要数据库
设定OLTP应用程序连接来源(透过监听器达到重新连接)
开启C:alwaysonconfig.xml并修改datasource,这里输入监听器名称Awlablsn,
执行OLTP测试应用程序负载
一开始是连接SQLTWO。
现在我们手动执行容错移转看看OLTP应用程序是否可以透过监听器导向SQLONE
执行容错移转。
可以看到连接的执行个体由SQLTWO转为SQLONE
执行容错移转过程中,OLAP会一直自动尝试重新连接可用的节点。
Exercise 6: Active Secondary and Read-Only Application Failover
企业经常抱怨高用可性加灾难复原的硬件需求成本过高,
但AlwaysOn Availability Groups提供管理者设定次要副本来提供读取存取,
这可以改善性能和成本,同时提供应用程序另一个基础架构功能。
练习结束后你将了解次要副本的设定以及对应的应用程序行为、设定应用程序为只读应用程序、设定服务器上只读取的应用程序自动连接导向的路径。
执行OLAP
一开始是连接SQLONE(主要数据库)。
更改data source=SQLTWO并点选Change
可以看到OLTP改连接SQLTWO执行个体。
上面没有出现错误是因为先前我们已经设定SQLTWO为可读取的副本。
如果readable secondary设定No,就会出现无法连线的错误
连接成功后即可再次测试负载直到完成为止,然后查看最后结果。
SQL Server 2012 可用性群组提供丰富的设定选项,而且整体高可用性的设定一点都不复杂,
管理方面可以透过强大的SSMS和PS工具,因为支持多个数据库为容错移转的单位,
更能减少多个数据库的停机时间,大大提高前端应用程序的可用性,
真是一项相当棒的高可用性技术。
参考
AlwaysOn 可用性群组 (SQL Server)
AlwaysOn 可用性群组的必要条件、限制和建议 (SQL Server)
原文:大专栏 [SQL SERVER][Denali]SQL Server 2012: AlwaysOn Availability Groups