部署SQL2012 AlwaysOn可用性组<二>

!!!接上篇部署SQL2012 AlwaysOn可用性组<一>

一、向现有可用性组添加可读副本辅助服务器

1、新增一台w68服务器(IP:192.168.2.68/24),准备安装环境同w67

1)更新windows 2008 R2补丁

2)安装framework 3.5 sp1、故障转移集群组件

3)安装SQL 2012

2、w65服务器故障转移集群把w68服务器添加到集群中

1)打开“故障转移集群管理器”--选择SQLCluter.sz1card1.com集群--点击节点,右键添加节点,进入向导。

2)选择要进入服务器添加到集群,填入“w68”服务器名称,并添加

3)确认添加w68服务器到当前集群中去

4)确认加入集群完成信息

3、w68服务器SQL Server 2012配置启用高可用性组AlwaysOn

1)在“开始”菜单中点击“所有程序”-“Microsoft SQL Server 2012”-“配置工具”,打开“SQL Server配置管理器”,点击“SQL Server服务”节点,在右边窗口中右击“SQL Server (MSSQLSERVER)”,在上下文菜单中选择“属性”。修改登录账号为sz1card1\administrator,并启用AlwaysOn组,需要重启SQL Server服务才能生效

4、在w65服务器主副本上AlwaysOn添加可读辅助副本w68

1)"AlwaysOn高可用组"--高可用组--AGSQL01,右键“添加副本”,进入向导

2)连接到现有复制副本

3)指定副本,选择"添加副本"

4)设置w68副本为不同步提交,为可读副本,端点、备份首选项、侦听器(默认现在不创建),均默认。点击下一步

5)选择初始化数据,链接到\\w65\BackUp,备份目录

6)验证,并完成

7)检查w68服务器test数据库,状态为"正在同步"(由于没有选择同步条件方式),查询username表数据库

8)验证w68 test数据库是否可以插入/删除记录操作

INSERT INTO username VALUES(68,‘Make‘)

4、重新设定仲裁,使用多数节点(推荐用于含有奇数个节点的群集,其他仲裁方式请操作官网或https://technet.microsoft.com/zh-cn/library/cc731739.aspx)

注意:可以承受的故障节点数为节点数的一半(四舍五入)减去一。

1)w65服务器打开"故障转移集群管理器"--选择当前的SQLCluter.sz1card1.com集群--右键打开“更多操作”--选择“配置集群仲裁设置”,进入向导

2)选择合适自身集群的仲裁配置,默认系统集群会判断适合当前的的仲裁选择,并确认

3)完成集群仲裁配置,这时这种仲裁方式,可允许当前集群1台节点故障

4)验证,这时停止集群节点中w68禁用网卡,观察集群是否停止正常运行?alwayson可用性组正常?

以上说明,当3个节点出现故障时,其中一个节点故障时不影响整个集群以及可用性组的可用性,即客户端访问数据

5、部署SQL2012 AlwaysOn可用性组<一>上篇只测试故障的手动切换,如果主副本出现故障时自动切换至辅助副本呢?在可用性副本中提供故障转移模式有自动和手动。

1)修改故障转移模式为自动。AlwaysOn高可用性组--可用性组AGSQL01,右键--属性,故障转移模式为自动,其他并确认

2)查看可用性组AGSQL01,显示面板当前组的状态,这时如果主副本w65节点宕机或离线,会自动故障转移至w67,事实是这样子的吗?下面验证一下。

3)验证故障自动转移,模拟w65节点故障(停止SQL server实例服务),自动转移至w67,并且观察w67节点可用性组AGSQL01是否自动提升为主副本。

以上说明故障自动转移,注意当前为3个节点,如果这时再出现一个节点故障,整个集群将无法使用!!!!!

二、SQL2012 AlwaysOn配置侦听器

1、可用性组侦听器概述

可用性组侦听器(由域名系统 (DNS)侦听器名称、指定的侦听器端口以及一个或多个 IP 地址组成,仅支持 TCP 协议)来提供到给定可用性组的数据库的客户端连接。可用性组侦听器是一个虚拟网络名称 (VNN),客户端可连接到此名称以访问 AlwaysOn 可用性组的主副本或辅助副本中的数据库。可用性组侦听器使客户端无需知道它要连接到的 SQL Server 物理实例的名称,即可连接到某个可用性副本。 无需修改客户端连接字符串,即可连接到当前主副本的当前位置。如果为一个或多个可读辅助副本配置了只读路由,则将主副本的读意向客户端连接重定向到可读辅助副本。 此外,如果主副本在某个 SQL Server 实例上脱机,且新的主副本在另一个 SQL Server 实例上联机,则可用性组侦听器允许客户端连接到新的主副本。

即可理解为SQL配置AlwaysOn可用性组后对外提供的是侦听器的IP和FQD让其他系统连接数据库时输入的是侦听器的IP和FQDN。

详细参考链接:https://technet.microsoft.com/zh-cn/library/hh213417(v=sql.110)

2、作为客户端,有以下几种访问方式

1)侦听器

客户端指向侦听器,侦听器无论何时都会将主副本的地址返回给客户端,因此,客户端应用程序可以像访问普通的数据库一样正常读取、写入 AlwaysOn 可用性组中的数据库。这是最常用的一种访问方式,因为不用关心当前的主副本在哪一个故障转移节点上以及何时发生故障转移。

2)副本的实例名称

客户端也可以指向副本的实例名称。如果当前实例的角色是主副本,则客户端连接不会遇到问题。在实际环境中,当前实例的角色可能发生故障转移从而成为辅助副本,这时候客户端连接可能会遇到错误。这种访问方式应当在明确目标副本的角色后才可以选用,并尽量避免因故障转移带来的影响。

例如,目标副本当前是辅助副本,且“可读辅助副本”选项为“否”,则客户端的连接将失败。又如,目标副本当前是辅助副本,且可以提供只读访问,但是当客户端发出修改数据的请求时,也会报错。

3)“只读意向”

客户端指向侦听器,并且在连接字符串中明确连接的目的为“只读意向”。侦听器则会将其中一个辅助副本的地址返回给客户端,而后客户端通过这个地址访问这个只读的辅助副本。

详细参考链接:http://www.mssqlmct.cn/dba/?post=100

3、创建可用性组侦听器(由于上篇部署SQL2012 AlwaysOn可用性组<一>,未进行侦听器配置,所以我们继续补充配置说明)

1)w65主副本服务器,AlwaysOn可用性组--AGSQL01右键,点击”添加侦听器“,进入配置向导

2)输入侦听器名称(AGSQL)和端口(1433,一般默认),ip为静态ip,点击”添加“,地址为192.168.2.71、24,确定并完成

3)添加完之后AD域控制器/DNS(192.168.2.218),会在AD中自动生成相应的对象和DNS自动生成相应的DNS记录

4、配置只读路由

1)主副本w65上高可用性组--右键属性,配置w65,w68的“可读辅助副本”设为“是”,w67的“可读辅助副本”设为“仅读意向”,使辅助副本能够响应从侦听器转来的“只读意向”。

也可以脚本如下:

USE [master]
GO
ALTER AVAILABILITY GROUP [AGSQL01] MODIFY REPLICA ON N‘w65‘ 
WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL))
GO
ALTER AVAILABILITY GROUP [AGSQL01] MODIFY REPLICA ON N‘w68‘ 
WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL))
GO
ALTER AVAILABILITY GROUP [AGSQL01] MODIFY REPLICA ON N‘w67‘ 
WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS =READ_ONLY ))
GO
--AGSQL01  #可用性组名称
--MODIFY REPLICA ON N‘w65‘ #副本名称

2)在主副本w65服务器上执行以下脚本,添加只读路由 URL。每个只读路由 URL 都用于将只读意向请求路由到一个特定的可读辅助副本。通常,向每个可读辅助副本分配一个只读路由 URL。

脚本如下:

USE master
GO
ALTER AVAILABILITY GROUP AGSQL01 MODIFY REPLICA ON N‘w65‘ 
WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_URL=N‘TCP://w65.sz1card1.com:1433‘));
GO
ALTER AVAILABILITY GROUP AGSQL01 MODIFY REPLICA ON N‘w67‘ 
WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_URL=N‘TCP://w67.sz1card1.com:1433‘));
GO
ALTER AVAILABILITY GROUP AGSQL01 MODIFY REPLICA ON N‘w68‘ 
WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_URL=N‘TCP://w68.sz1card1.com:1433‘));
GO
--TCP://w68.sz1card1.com:1433 #自行设定的域名和端口

3)然后还要添加只读路由表,告诉侦听器按照怎样的先后顺序将辅助副本的地址返回给客户端。分别为每个副本设置作为主副本时的只读路由 URL。每个副本上配置的只读路由列表中的最后一个成员都是自己,表明当前面所有的只读副本都发生故障后,则还可以由主副本自己来响应这些“只读意向”。

脚本如下:

USE master
GO
ALTER AVAILABILITY GROUP [AGSQL01] MODIFY REPLICA ON N‘w65‘ 
WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST=(‘w68‘,‘w67‘,‘w65‘)));
GO
ALTER AVAILABILITY GROUP [AGSQL01] MODIFY REPLICA ON N‘w68‘ 
WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST=(‘w65‘,‘w67‘,‘w68‘)));
GO
ALTER AVAILABILITY GROUP [AGSQL01] MODIFY REPLICA ON N‘w67‘ 
WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST=(‘w65‘,‘w68‘,‘w67‘)));
GO

5、测试只读路由(客户端必须使用TCP协议连接到支持只读路由的AlwaysOn可用性组的侦听器,并且在连接字符串中将应用程序意向特性/属性设置为只读,而且必须引用该可用性组中的数据库)。

例如:

  Server=tcp:AGSQL,1433; Database=test; IntegratedSecurity=SSPI;ApplicationIntent=ReadOnly;MultiSubnetFailover=True
  --AGSQL #侦听器名称
  --Database #数据库

1)直接连接到侦听器

不附加任何连接字符串,直接连接到侦听器。然后通过查询 @@SERVERNAME 全局变量确认当前连接的实例。

2)连接到侦听器,并且使用连接参数

在 SSMS 登录界面,在“服务器名称”中输入侦听器的名称或 IP 地址。然后单击右下角的“选项”按钮。

在“其他连接参数”中输入连接字符串,指定目标数据库名称,指定只读意向。

参数为

Server=tcp:AGSQL,1433; Database=test;ApplicationIntent=ReadOnly;MultiSubnetFailover=True

连接到数据库引擎后,查看当前连接的实际节点。

三、删除AlwaysOn可用性组

1、必须先删除所有辅助副本,用 SSMS 连接到主副本w65,右键--属性,在“可用性副本”列表中选择一个辅助副本,然后单击右下方的“删除”按钮,最后单击“确定”按钮即可删除该辅助副本。

注:主副本不可以被删除。如果需要删除的副本当前是主副本,则需要先执行故障转移使其成为辅助副本。

2、再删除可用性数据库,w65在可用性组AGSQL01的树状列表中选择一个可用性数据库test库,右键单击它,然后在右键菜单中选择“从可用性组删除数据库”,单击“确定”按钮,完成删除。

3、再删除侦听器,w65在可用性组AGSQL01的树状列表中可用性组侦听器--AGSQL,右键单击它,然后在右键菜单中选择“删除”,单击“确定”按钮,完成删除。

4、最后删除可用性组,w65在可用性组AGSQL01,右键单击它,然后在右键菜单中选择“删除”,单击“确定”按钮,完成删除。

至此,整个AlwaysOn高可用性组安装部署、故障转移、只读路由、删除alwayson可用性组完结!!!同时也研究能把整个过程进行脚本化,提高部署管理AlwaysOn效率!!!

参考链接:https://technet.microsoft.com/zh-cn/library/hh213417(v=sql.110)

http://www.mssqlmct.cn/dba/?post=95

https://technet.microsoft.com/zh-cn/library/hh213002(v=sql.110).aspx

https://msdn.microsoft.com/zh-cn/library/ff877884(v=sql.110).aspx

https://msdn.microsoft.com/zh-cn/library/ff877884.aspx

时间: 2024-10-27 11:20:42

部署SQL2012 AlwaysOn可用性组<二>的相关文章

部署SQL2012 AlwaysOn可用性组&lt;一&gt;

一.准备环境 1.准备3台计算机 操作系统均为windows server 2008 R2 数据库:test 域控制器,IP:192.168.2.218/24 主节点w65,IP:192.168.2.65/24 辅助节点w67:IP:192.168.2.67/24 测试关闭相关防火墙,安装相关组件如:framew 3.5 sp1,同时windows server 2008 R2安装SQL 2012 需要安装组件"Windows Server 2008 R2 Service Pack 1补丁包&q

Skype for Business后端服务器部署AlwaysOn可用性组实战篇

企业内部自建的Lync Server 2013统一通信平台,在Skype for Business Server 2015发布后,通过就地升级方式已经完成升级,原来后端数据库高可用架构保持不变,仍采用镜像和见证的自动故障转移方式.当要改变后端数据库服务器高可用架构方式,采用AlwaysOn可用性组,如何顺利部署实施呢?且看下文详细的实战部署,阅读后可以顺利改造现有后端高可用架构. 前面讲到,现有SfB后端数据库采用镜像的高可用,如何顺利的从镜像方式改为AlwaysOn可用性组,本实验环境涉及到部

AlwaysOn 可用性组方案

AlwaysOn 可用性组方案 1.可用性组 "可用性组"(Availability Group,简称 AG)针对一组离散的用户数据库(称为"可用性数据库",它们共同实现故障转移)支持故障转移环境.一个可用性组支持一组主数据库以及多组对应的辅助数据库. 每组可用性数据库都由一个"可用性副本"承载.有以下两种类型的可用性副本: (1)一个"主副本" 主副本用于承载主数据库.主副本使一组主数据库可用于客户端的读写连接. (2)多个

005.SQLServer AlwaysOn可用性组高可用简介

一 AlwaysOn 可用性组 1.1 AlwaysOn 可用性组概述 AlwaysOn 可用性组功能是一个提供替代数据库镜像的企业级方案的高可用性和灾难恢复解决方案.SQL Server 2012 中引入了 AlwaysOn 可用性组功能,此功能可最大程度地提高一组用户数据库对企业的可用性. "可用性组"针对一组离散的用户数据库(称为"可用性数据库",它们共同实现故障转移)支持故障转移环境. 一个可用性组支持一组读写主数据库以及一至四组对应的辅助数据库.可使辅助数

sql server 2014 alwayson 可用性组 特性

一个"主副本",主副本用于承载主数据库.主副本使一组主数据库可用于客户端的读写连接. 可以配置一个或多个辅助副本以支持对辅助数据库进行只读访问,并且可以将任何辅助副本配置为允许对辅助数据库进行备份. 支持最多八个辅助副本, 包括一个主副本和两个同步提交辅助副本(即三个同步节点),(可用性组的辅助副本在还原事务日志时不需要断开客户端的已有连接,区别与logshipping) 其中1个主副本和另一个辅助副本之间可以设置为自动故障转移(即两个同步提交的辅助副本中选择一个). 一个辅助数据库可

目录:第16章 AlwaysOn 可用性组

第16章  AlwaysOn 可用性组 16.1  实现 AlwaysOn 可用性组  http://mssqlmct.blog.51cto.com/9951484/1661520 16.2  添加副本和数据库  http://mssqlmct.blog.51cto.com/9951484/1661528 16.3  添加侦听器 http://mssqlmct.blog.51cto.com/9951484/1661533 16.4  监视 AlwaysOn 可用性组  http://mssqlm

16.1 实现 AlwaysOn 可用性组

16.1  实现 AlwaysOn 可用性组 以下通过实验说明配置 AlwaysOn 可用性组的过程. 现有环境如下: 服务器名称 角色 SQLSVR1 WSFC 节点,默认实例 SQLSVR2 WSFC 节点,默认实例 SQLSVR3 WSFC 节点,默认实例 需要添加到 AlwaysOn 可用性组的数据库为 SQLDB01 和 SQLDB02. 16.1.1 先决条件 SQL Server 2012及后续产品才支持 AlwaysOn 可用性组,而且只有企业版才可以使用此功能. 加入 Alwa

16.4 监视 AlwaysOn 可用性组

16.4  监视 AlwaysOn 可用性组 16.4.1 打开显示面板 在 SSMS 中,选择一个可用性组,右键单击它,然后在右键菜单中选择"显示面板". 面板显示的信息主要分为3部分. 第一部分显示当前可用性组的基本信息,包括:当前状态.主实例位于哪个节点.故障转移模式.群集状态. 第二部分为可用性副本概略列表. 第三部分为可用性副本的详细列表.可以单击"添加/删除列"右边的图标(向上的三角形),从而隐藏这个详细列表. 概略列表和详细列表可以手动添加或删除列.其

SQL群集下安装多实例并启用AlwaysOn可用性组功能

SQL群集+安装新实例+启用AlwaysOn可用性组功能 主要内容 并行安装运行SQL server 的不同版本和实例 启用AlwaysOn可用性组功能 实验环境 并行安装SQL Server 2012 +SQL Server 2016 场景1:基于SQL Server 2012搭建了Cluster01-SQL群集.   hostname IP 实例名 端口 说明 AD dc1.contoso.com 192.168.136.150       SQL SQL1.contoso.com 192.