[SQL SERVER][Denali]SQL Server 2012: AlwaysOn Availability Groups

[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。

设定防火墙

image

请使用Administrator权限执行。

ps:其他服务器需重复相同步骤设定防火墙,才能确保服务器之间网络沟通没有问题(可互相存取执行个体)。

执行Failover Cluster Manager

image

执行Validate a Configruation

image

加入相关服务器

image

查看验证测试报告

image

完成组态验证后且没有问题后即可建立Cluster。

点选 Create a cluster

image

选择相关服务器

image

输入丛集名称

image

确认丛集状态

image

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连接三个执行个体

image

展开 AlwaysOn High Availability 会出现以下错误消息

image

因为没有启用AlwaysOn Availability Groups。

针对三台服务器启用AlwaysOn Availability Groups。

image

记得重新启动 SQL Server Service,否则相关变更不会套用。

新增可用性群组

image

输入可用性群组名称

image

下一步你会发现无法选择数据库,

因为Availability Group中的数据库必须满足以下条件

1.需为使用者数据库

2.数据库需可读和写

3.数据库不行为单一使用者模式

4.数据库不可设定自动关闭(Auto_Close)

5.数据库需使用完整复原模式

6.至少有一个完整备份

7.位于建立可用性群组的 SQL Server 执行个体上,且服务器执行个体能够存取它。

8.数据库不能存在其他可用性群组中

9.不可设定数据库镜像(DB Mirroring)

执行以下陈述式更改复原模式并执行完整备份

image

重新整理即可选择符合条件的数据库

image

设定可用性副本

image

设定SQLTWO 可读取的副本=Yes、SQLSIX=只读连接存取。

透过可用性副本可以改善次要硬件资源,并降低成本同时提高IT效率,对于主要复本的性能会有明显的改善。

查看端点资讯

image

建立完成

image

这次练习并未设定Listener所以有警告是正常的,

下面的练习将来设定Listener。

Exercise 3: Configuring AlwaysOnGroup Listener

本次练习你将了解如何设定AlwaysON Availability Group Listener

新增监听器

image

输入监听器名称和监听Port

image

子网络请依环境选择。

开启 cmd 使用ping 功能,确认可以正常响应

image

响应正常(其他服务器也需确认是否响应正常)。

Exercise 4: Manual Failover of the Availability Group

本次练习你将了解如何手动操作容错移转精灵执行容错移转工作,

稍后也会手动使用TSQL陈述式操作容错移转。

选择show dashboard(显示仪表板)

image

确认可用性群组状态

image

查看群组中所有数据库同步状态、容错移转数据遗失状态

image

接下来手动操作容错移转

image

点选 start failover wizard。

勾选SQLTWO

image

选择连接验证方法和账户

image

执行成功

image

开启仪表板再次确认可用性群组状态

image

可以看到主要执行个体从原本的SQLONE转移到SQLTWO了。

Exercise 5: Read-Write Application Failover

这次练习你将学到在可用性群组中如何设定读-写应用程序重新连接到新的主要数据库

设定OLTP应用程序连接来源(透过监听器达到重新连接)

image

开启C:alwaysonconfig.xml并修改datasource,这里输入监听器名称Awlablsn,

执行OLTP测试应用程序负载

image

一开始是连接SQLTWO。

现在我们手动执行容错移转看看OLTP应用程序是否可以透过监听器导向SQLONE

image

执行容错移转。

可以看到连接的执行个体由SQLTWO转为SQLONE

image

执行容错移转过程中,OLAP会一直自动尝试重新连接可用的节点。

Exercise 6: Active Secondary and Read-Only Application Failover

企业经常抱怨高用可性加灾难复原的硬件需求成本过高,

但AlwaysOn Availability Groups提供管理者设定次要副本来提供读取存取,

这可以改善性能和成本,同时提供应用程序另一个基础架构功能。

练习结束后你将了解次要副本的设定以及对应的应用程序行为、设定应用程序为只读应用程序、设定服务器上只读取的应用程序自动连接导向的路径。

执行OLAP

image

一开始是连接SQLONE(主要数据库)。

更改data source=SQLTWO并点选Change

image

可以看到OLTP改连接SQLTWO执行个体。

上面没有出现错误是因为先前我们已经设定SQLTWO为可读取的副本。

image

如果readable secondary设定No,就会出现无法连线的错误

image

连接成功后即可再次测试负载直到完成为止,然后查看最后结果。

SQL Server 2012 可用性群组提供丰富的设定选项,而且整体高可用性的设定一点都不复杂,

管理方面可以透过强大的SSMS和PS工具,因为支持多个数据库为容错移转的单位,

更能减少多个数据库的停机时间,大大提高前端应用程序的可用性,

真是一项相当棒的高可用性技术。

参考

AlwaysOn 可用性群组 (SQL Server)

AlwaysOn 可用性群组的必要条件、限制和建议 (SQL Server)

原文:大专栏  [SQL SERVER][Denali]SQL Server 2012: AlwaysOn Availability Groups


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11446359.html