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

两年前的《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的实现和使用。

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

二、实现SQL Server 2012高可用性组必须的WSFC环境

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

1、安装WSFC群集组件

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

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

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

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

2、配置WSFC

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13)完成WSFC的仲裁配置。

至此,为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节点共享同一个数据存储副本。

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

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

4)接受许可协议

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

与之前版本相同,需要对SQL Server必要的端口打开Windows防火墙的入站规则,比如TCP- 1433端口等。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

四、创建配置高可用性组

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

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

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

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

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

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

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

1)在“开始”菜单中点击“所有程序”-“Microsoft SQL Server 2012”-“配置工具”,打开“SQL Server Management Studio”。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(0)

相关推荐

  • windows server 2008/2012安装php iis7 mysql环境搭建教程

    windows server 2008/2012安装php iis7 mysql环境搭建教程,具体内容如下 1.安装IIS windows server 2008的IIS版本为7.0,包括fastcgi,安装十分方便. 打开"开始"菜单→"服务器管理",出现服务器管理界面(图1) 图1 - 服务器管理 滚动条下翻,或者点击主菜单的"角色",然后点击"添加角色",出现向导页面后点击下一步,选择"web服务器(IIS)&

  • Sql Server 2008R2升级Sql Server 2012图文教程

    环境: Windows server 2008 r2 Standard +SqlServer2008R2 内网环境需要升级为SQL server 2012 升级安装时提示版本不支持 网上查询相关问题, 必须是SQL server2008 r2 sp1以上及需要安装Sp2补丁包才能升级为SQL server 2012 1)下载地址:微软官网 https://www.microsoft.com/zh-CN/download/details.aspx?id=30437 2)选择你对应的安装SQL se

  • Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法

    对比下面两个脚本的速度: Windows 7 用 localhost 连接本地 MySQL,速度会很慢. Windows 7 用 127.0.0.1 连接本地 MySQL,速度则是正常的. my.ini里配置了 bind-address=127.0.0.1 用localhost连接本地MySQL: 速度慢 <?php $start = microtime(true); $mysqli = new mysqli('127.0.0.1', 'root', '', 'mysql'); //连接耗时仅为

  • SQL Server 2012降级至2008R2的方法

    一.背景 前段时间某医院由于群集服务器的兼容性问题需要将数据库由2012降至2008R2,所以决定把数据库暂时切换至镜像服务器,同时开启应用层面的DML缓存以便实现不停机降级. 由于2012备份无法直接还原至2008R2(MSSQL数据库还原 高>>低 不兼容),类似复制的其他功能也无法使用,OGG也不适合全库迁移,因此决定使用导入导出降级. 二.步骤 1.导出数据库对象架构(右键数据库--任务--生成脚本) 需要注意的是在高级脚本编写选项中需要选择好为2008R2版本生成的全库脚本,将索引触

  • 图文详解Windows Server2012 R2中安装SQL Server2008

    入手一台Windows Server2012云服务器,搭建一下服务环境,选用SQL Server2008 直奔主题,下好安装镜像后,直接双击 选择运行程序而不获取帮助 如图: 进入安装中心后选择 安装 再选择全新安装 同样选择运行程序而不获取帮助 选择后如图: 程序会检测一下系统,没警告等大问题就可以点确定 输入产品秘钥,也可以选择试用版本:试用版本简直不能忍,我直接上秘钥,关于秘钥我会在最下面给出一个方案 接受条款,下一步 点安装即可 软件又检测一遍,没有警告就可以点下一步 选择第一项即可 你

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

    两年前的<SQL Server 2008 R2数据库镜像部署>,今天"再续前缘"-- 微软新一代数据库产品SQL Server 2012已经面世一段时间了,不管从功能上讲还是性能上的体现,较之其早期产品都有了很大提升.特别是其引入高可用性组(AlwaysOn Group, AG)这一概念和功能,大大增强和提高了SQL Server的可用性,在之前的镜像数据库的基础上有了质的变化. SQL Server 2012高可用性组在实现过程中较之早起的SQL Server故障转移群集

  • win2008 enterprise R2 x64 中安装SQL server 2008的方法

    一.服务器环境: 硬环境:DeLL T1700工作站,i3-4150,4GDDR3-1600,500G-HDD, 软环境:Windows Server 2008 R2 x64 VL Enterprise SP1,DHCP,IE8, 任务:为应用环境安装  SQL server 2000 sp4 二.版本支持: 由于 Windows Server 2008 r2 原生不支持 SQL server 2000,解决的方法又太过复杂,遂笔者决定直接安装 SQL server 2008 http://ww

  • SQL Server 2012 安装图解教程(附sql2012下载地址)

    在安装微软最新数据库SQL Server 2012之前,编者先确定一下安装环境:Windonws 7 SP1,32位操作系统.CPU是2.1GHz赛扬双核T3500,内存2.93GB. sql2012下载 http://www.jb51.net/softs/79861.html 安装SQL Server 2012的软硬件环境参数 根据微软的下载提示,32位的Windows 7操作系统,只需下载列表最下面的CHSx86SQLFULL_x86_CHS_Core.box. CHSx86SQLFULL_

  • SQL Server 2012 FileTable 新特性详解

    FileTable是基于FILESTREAM的一个特性.有以下一些功能: •一行表示一个文件或者目录. •每行包含以下信息: • •file_Stream流数据,stream_id标示符(GUID). •用户表示和维护文件及目录层次关系的path_locator和parent_path_locator •有10个文件属性 •支持对文件和文档的全文搜索和语义搜索的类型列. •filetable强制执行某些系统定义的约束和触发器来维护命名空间的语义 •针对非事务访问时,SQL Server配置FIL

  • SQL Server 2012 安全概述

    在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间. 从让人眼花缭乱的客户端使用连接,通过到处分布的网络,尤其是互联网,关系数据库在各种应用程序里广泛使用.这使数据对任何人,在任何地方都可访问.数据库可以保存人类知识的很大部分,包括高度敏感的个人信息和让国际商务工作的关

  • 如何安装SQL Server 2012群集

    在前面的博文中,我们介绍了如何通过软件模拟实现共享磁盘(//www.jb51.net/network/592807.html),也介绍了搭建Windows 2008群集的方法(//www.jb51.net/os/windows/win2008/592817.html),接下来,我们就要在此基础上安装SQL Server 2012群集. 一.环境准备 1.准备3台计算机 DC1:IP地址192.168.1.1,子网掩码255.255.255.0,默认网关192.168.1.254,DNS为192.

  • SQL SERVER 2012新增函数之逻辑函数CHOOSE详解

    SQL SERVER 2012中新增了CHOOSE,该函数可以从值列表返回指定索引处的项. 例如: select CHOOSE(3,'A','B','C','D') as R1 /* R1 ---- C */ CHOOSE并不能这么用,例如有个字符串'A,B,C,D',我们并不能用choose得到其中的某个值: select choose(2,'A,B,C,D') /* null */ CHOOSE的主要功能和CASE WHEN类似,例如数据库中有字段Sex:1表示男,2表示女. if obje

  • Sql Server 2012 转换函数的比较(Cast、Convert和Parse)

    语法结构: 1. Cast 语法结构:CAST ( expression AS data_type [ ( length ) ] ) 2. Convert 语法结构:CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) 3. Parse 语法结构:PARSE ( string_value AS data_type [ USING culture ] ) 其中,Parse 为 Sql Server 的新特性 expression

  • SQL Server 2012使用Offset/Fetch Next实现分页数据查询

    在Sql Server 2012之前,实现分页主要是使用ROW_NUMBER(),在SQL Server2012,可以使用Offset ...Rows  Fetch Next ... Rows only的方式去实现分页数据查询. select [column1] ,[column2] ... ,[columnN] from [tableName] order by [columnM] offset (pageIndex-1)*pageSize rows fetch next pageSize r

随机推荐