欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

程序员文章站 2024-01-31 23:55:34
两年前的《sql server 2008 r2数据库镜像部署》,今天“再续前缘”—— 微软新一代数据库产品sql server 2012已经面世一段时间了,不管从功能上讲...

两年前的《sql server 2008 r2数据库镜像部署》,今天“再续前缘”——

微软新一代数据库产品sql server 2012已经面世一段时间了,不管从功能上讲还是性能上的体现,较之其早期产品都有了很大提升。特别是其引入高可用性组(alwayson group, ag)这一概念和功能,大大增强和提高了sql server的可用性,在之前的镜像数据库的基础上有了质的变化。

 sql server 2012高可用性组在实现过程中较之早起的sql server故障转移群集来讲,不依赖特别提供共享存储磁盘阵列,每个节点独立存储一份数据库的副本。其较之早起的镜像数据库来讲,提供多节点高可用,并且针对数据库辅助节点副本可读;此外,在当前可读节点出现故障时,能通过ag自身的机制保证数据库正常访问,而不需要像之前的镜像数据库一样,需要通过访问端来进行切换。

因此,以下将对sql server 2012高可用性组的实现进行详细介绍。

一、具体的环境如下

在windows域中,部署3台成员服务器用作sql server服务器,因为sql server 2012的高可用性组需要windows的群集服务支持,所以必须预先在这些成员服务器上实现wsfc。服务器的操作系统均为windows server 2008 r2,因此其wsfc的仲裁配置有多数(奇数)节点、节点(偶数)和磁盘多数、多数节点(偶数)和文件共享、非多数:仅磁盘等4种。在此,为了体现sql server ag无需要各节点共享存储设备这一特性,准备使用3个节点实现。由于是奇数,所以选择多数节点仲裁配置。虽然这种仲裁配置不是被sql server 2012 ag推荐的,但是并不影响ag的实现和使用。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

另外,由于本文着重讲述sql server 2012 ag的实现,所以对于服务器基本配置和网络设置,以及windows活动目录和域的实现在此略去。

二、实现sql server 2012高可用性组必须的wsfc环境

首先在每台成员服务器上安装并配置wsfc,以配置sql03为例:

1、安装wsfc群集组件

1)打开服务器管理器,选择“功能”,在右边窗口中点击“添加功能”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

2)在添加功能向导中,勾选“故障转移群集”,点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

3)在“确认安装选择”页面中,点击“安装”,进行安装操作。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

4)完成并关闭“故障转移群集”的安装。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

2、配置wsfc

为所有节点均安装完“故障转移群集”服务后,在任意节点服务器的“服务器管理器”中展开“故障转移群集管理器”对wsfc进行配置。

1)通过“故障转移群集管理器”窗口点击“创建一个群集”打开“创建群集向导”

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

2)在“开始之前”页中,点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

3)添加所有服务器节点,即将环境中的3台成员服务器添加为群集节点服务器。点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

4)在“验证警告”页面中,如果需要对基本环境(包括硬件)进行wsfc需求验证,可以选择“是”。在本示例中由于不必需进行验证,所以选择“否”。点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

5)定义“用于管理群集的访问点”,为群集进行名,并指定群集ip地址。点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

6)确认之前配置信息,若无误,点击“下一步”,开始群集创建。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

7)完成群集创建,点击“完成”关闭向导。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

8)在“故障转移群集管理器”会显示成功创建的群集,展开其“节点”,显示现有节点情况。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

9)右击群集节点,在上下文菜单中点击“更多操作”,在扩展菜单中选择“配置群集仲裁设置”为该群集配置仲裁。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

10)在“开始之前”页面中点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

11)根据此前的设计,由于是奇数节点,并且没有共享磁盘存储和共享文件夹存在,所以可以选择“多数节点”,点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

详细请参考:http://technet.microsoft.com/zh-cn/library/cc731739.aspx

12)在“确认”页面中,点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

13)完成wsfc的仲裁配置。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

至此,为sql server 2012 ag准备的wsfc环境已经完成。

三、为各节点服务器安装并配置sql server 2012,以sql03为例进行如下操作。

1、安装sql server 2012

1)在节点服务器上,插入sql server 2012安装介质。运行“sql server安装中心”,选择“安装”,点击“全新sql server独立安装或向现有安装添加功能”。

注意:这里不要选择新的sql server故障转移群集安装,如果是故障转移群集安装的话最终将实现的是早起的sql数据库群集,并且需要共享数据存储磁盘整列,导致所有sql节点共享同一个数据存储副本。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

2)使用安装程序支持规则验证是否通过。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

3)指定产品密钥,或选择evaluation版本。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

4)接受许可协议

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

5)运行检查“安装程序支持规则”,验证sql server 2012运行环境是否符合要求。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

与之前版本相同,需要对sql server必要的端口打开windows防火墙的入站规则,比如tcp- 1433端口等。

特别注意:由于ag默认需要用到tcp-5022端口,所以该端口务必保证在windows防火墙中开启,允许其入站访问。

6)设置sql server 2012服务器角色为“具有默认值的所有功能”,点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

7)在“功能选择”列表中选择实际所需功能,在此,为了简便不再进行自定义。直接使用默认选中组件。并且,需要指定相应的“共享功能目录”,即sql server的安装位置。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

8)再次检查安装规则是否能正常执行通过。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

9)选择并指定实例名,在此使用默认实例来进行示范,并且指定“实例根目录”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

10)检查磁盘空间要求是否达到sql server 2012的安装需求,点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

11)指定“服务账户”和“排序规则”,在此选择默认设置。如果需要在完成安装后进行自定义配置,点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

12)在“数据库引擎配置”页面中,指定服务器配置身份验证为默认的“windows身份验证模式”,“添加当前用户”为sql server的管理员,若有需要可进行响应的自定义配置。此外还可在“数据目录”选项卡中指定相应该实例默认的数据库文件存储路径。点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

13)在“analysis services配置”页面进行和“数据库引擎配置”页面中类似的配置。点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

14)在“reporting services配置”页面中,选择默认设置,点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

15)“添加当前用户”为“分布式重播控制器”的管理员。点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

16)为“分布式重播客户端”指定相应控制器和数据库目录。在此,采用默认配置,控制器名称可不填写。点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

注意:以上第13-16步根据第7步中所选功能不同,配置情况有所差异。

17)是否发送错误报告页面中可选择是否将错误报告发送给微软。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

18)在进行安装前,执行最后一次“安装配置规则”检查,确认是否符合安装需求。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

19)在“准备安装”页面中,确认之前进行的各种参数配置是否正确,如果无误,点击“安装”,启动安装进程。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

20)安装完成后,得到成功完成的页面。如果在该页面中显示所有功能均为绿色对勾,那么证明sql server 2012安装无误。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

21)可能在某些环境中安装,会收到如下提示,只需重启服务器操作系统即可。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

2、为高可用性组配置sql server 2012数据库引擎服务。

1)在“开始”菜单中点击“所有程序”-“microsoft sql server 2012”-“配置工具”,打开“sql server配置管理器”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

2)在控制台中点击“sql server服务”节点,在右边窗口中右击“sql server (mssqlserver)”,在上下文菜单中选择“属性”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

3)在弹出窗口中选择“alwayson 高可用性”选项卡中勾选“启用alwayson 可用性组”。点击“确认”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

4)在弹出警告对话框中提示该修改需要重启sql server数据库引擎服务才能生效,点击“确定”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

5)再次右击“sql server (mssqlserver)”,在上下文菜单中选择“重新启动”,对数据库引擎执行重启操作。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

6)为了避免在实现alwayson group时带来复杂的权限设置,建议将相关的sql服务(如:sql server数据库引擎服务)启动登录身份由默认的“内置账户”改为指定的域账户。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

7)建议为该域账户授予各节点sql server登录权限,并将各节点服务器账户指派为sql server登录账户。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

以上步骤在sql01/02上均进行相同的操作即可。

四、创建配置高可用性组

高可用性组的创建操作可以有三种方式:向导方式、对话框方式和脚本方式,在此以向导方式sql03上创建的db01作为主数据库为例进行介绍。

1、为高可用性组创建配置数据库

要使用向导创建高可用性组,必须要有符合条件的数据库存在,才能进行相关的操作。那么数据库要符合怎样的条件才能满足条件呢?

1)主数据库的恢复模式必须是“完整”恢复模式。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

2)主数据库已进行了一次完整备份。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

3)需要一个共享路径提供给备份包存储,并允许所有节点服务器(sql server数据库引擎服务登录账户)能够通过unc路劲进行可读写访问。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

2、利用向导新建高可用性组

1)在“开始”菜单中点击“所有程序”-“microsoft sql server 2012”-“配置工具”,打开“sql server management studio”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

2)展开“alwayson高可用性”节点,右击“可用性组”,在上下文菜单中,选择“新建可用性组向导”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

3)在“简介”页面点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

4)为将要创建的高可用性组指定名称。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

5)选择满足加入高可用性组条件的数据库,点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

6)为高可用性组添加其它sql server服务器节点为副本。点击“添加副本”按钮,一次添加所需sql server服务器,并且指定初始角色为“主”或“辅助”。最多可选2个副本实现自动故障转移,这两个副本将同时使用同步提交可用性模式。最多可支持3个副本进行同步提交可用性模式,若使用异步提交必须强制手动故障转移。对于可读辅助副本设置来讲,可选择其为是否可读或仅读意向,需要注意只有主数据库副本才可写。

详细请参考:http://msdn.microsoft.com/zh-cn/library/ff877931.aspx

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

7)点击“端点”选项卡,可以设置高可用性组的端点url。使用默认设置即可。

详细请参考:http://msdn.microsoft.com/zh-cn/library/ff878441.aspx

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

8)在“备份首选项”中,指定作为备份副本的节点。默认是在“首选辅助副本”中进行备份。可以通过副本备份优先级来指定首选。默认所有节点均为50。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

9)为高可用性组创建侦听器,指定其dns名称的host name和端口,建议ip地址使用静态ip,并且添加新的群集ip作为高可用性组使用,如此可以指定sql server的默认端口1443,以便简化客户端访问的配置。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

10)初始化数据同步首选项,建议选择“完整”,并指定之前创建的unc共享路径。点击“下一步”

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

11)验证是否满足高可用性组创建需求,如果结果全为绿色对勾,点击“下一步”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

12)检查并确认之前的配置信息,若无误,点击“完成”。另外,此处也可保存建组脚本,以便分步诊断故障之用。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

13)等待向导完成创建sql server 2012高可用性组。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

14)知道最终完成,所有摘要均成功完成,显示绿色对勾。如果出现黄色警告,则需进行进一步判断是否成功。若出现红色错误,表示创建ag不成功。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

在此,出现了黄色告警,点击“警告”,在弹出对话框中显示如下:

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

可以表明高可用性组成功创建,但wsfc的“多数节点”仲裁模式不是被推荐的。

15)返回ssms窗口,在“可用性组”节点下显示“ag01”的面板,可以观察该高可用性组的状态。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

3、高可用性组的基本管理

创建完成高可用性组后,可用通过ssms对高可用性组进行基本的管理。

1)直接右击需要管理的高可用性组,在上下文菜单中可以选择为其“添加新数据库”、“添加副本”、“添加侦听器”及手动执行“故障转移”等操作。点击“属性”,也可以编辑该ag的各种属性值。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

2)在高可用性组的属性“常规”选项卡中,可以为其添加/删除数据库、副本节点,并配置各可用性副本节点的参数设定值。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

3)在“备份首选项”选项卡中,可以修改相应副本节点的备份优先级和备份执行的位置。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

4)针对高可用性组中具体的副本节点配置,可以展开该组中“可用性副本”,右击需要配置的副本节点,在上下文菜单中点击“属性”。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

5)在其“常规”选项卡中可以修改配置当前副本节点“可用性模式”、“故障转移模式”以及“会话超时”时间等。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

6)可以通过右击“可用性组侦听器”中的具体侦听器,打开其“属性”,对侦听器进行相应配置。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

7)可以修改侦听器的侦听端口,从而指定客户端访问ag中数据库所需要连接的服务端口。

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)

关于这些问题暂时先讨论到这里,有时间再后续。

本文出自 “胖哥技术堂” 博客