SQL 2012 always on研究

SQL 2012 always on研究

第一部分:安装SQL Server2

1. 准备服务器2

2. 选择版本3

第二部分高可用性/Always On5

1. SQL Server 2012 高可用性/Always On5

2. SQL Server 2012Always On基于MSCS群集5

3. Always On Availability Groups具有如下优点:6

4.  Always On要求和前提:6

5. 配置Always On Availability Groups7

6. 建立Always On Availability Groups8

7. 监控Always On Availability Groups9

8. 小结Always On Availability Groups:10

9. 附录:10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

           第一部分:安装SQL Server

1. 准备服务器

需要确认硬件、软件和网络配置是否最适于SQL Server2012,理解SQL Server 2012的各个版本以及每个版本所施加的硬件和特性限制。

1.1硬件和软件需求

下表1为最低硬件、软件和操作系统需求

组件

目的

处理器

64位安装:

速度:1.4Ghz或更高

AMD OpteronAthlon 64Intel Pentium IV、支持Intel EM64TXeon

32位安装:

速度:1.0Ghz或更高

Pentium III 兼容CPU

内存

1GB

存储器

安装程序:4GB

数据库引擎服务:986MB

Integration Services: 304MB

Analysis Services: 517MB

Master Data Services: 243MB

Reporting Services(本机模式): 1022MB

Reporting Services(SharePoint集成模式)129MB

管理工具(完整):1551MB

Business Intelligence Development Studio:2145MB

操作系统

64位和32位(WOW64

Windows Server 2008 R2 SP1

Windows Server 2008 SP2

Windows 7 SP1

Windows Vista SP2

框架

NET Framework 3.5 SP1

NET Framework 4 1

SQL Server Native Client

SQL Server Setup支持文件

 

1.2 适当修补

SQL Server2012要求将操作系统和软件组件更新到适当的服务包级别。下表列出了所需的服务包和对应的下载链接。

操作系统和软件修补程序

组件

需求

下载链接

Windows Server 2008

Windows Vista

Service Pack 2

http://technet.microsoft.com/en-us/dd727510

Windows

Server 2008 R2

Service Pack 1

www.microsoft.com/download/en/details.aspx?id=5842

.NET Framework 3.5

Service Pack 1

www.microsoft.com/download/en/details.aspx?id=22

 

1.3 防火墙

部署过程中,需确保网络防火墙配置为允许从SQL Server实例进出的流量。如果没有正确配置网络防火墙,SQL Server实例的连接以及相关的服务就会阻塞。下表列出常见SQL Server 2012服务的默认端口。

                表常见服务默认端口

服务

说明

端口

SQL Server Database Services

默认实例

专用管理连接

TCP 1433

TCP 1434

SQL Server Analysis Services

默认实例

TCP 2383

SQL Server Integration Services

默认

TCP 135

SQL Server Reporting Services

SSLhttp://

SSL(https://)

TCP 80

TCP 443

SQL Server Services Broker

默认

TCP 4022

SQL Server Browser Service

默认

UDP 1433

TCP 2382

 

2. 选择版本

选择正确的SQL Server版本是部署计划中另一个重要的考虑事项,这是因为一些版本具有特性限制和硬件支持要求,而其他版本则专门面向更具体的工作负荷。SQL Server 2012三个主要版本是标准版、商业智能版和企业版。可分类如下:

核心版本――企业版、商业智能版、标准版

专门的版本――开发人员版

免费版本――Express版、Express LocalDB版、精简版

2.1 SQL Server 新特性

SQL Server的每个新发行版都会引入新的特性并改变一些现有的特性。理解每个版本的可用性是部署满足需求的正确版本的关键所在。关于每个版本支持的特性的完整列表,请参阅:http://msdn.microsoft.com/en-us/library/cc645993(v=SQL.110).aspx 。

SQL Server 2012中,添加了新的特性来支持高度可扩展、可用性极高的数据库环境,并加了额外的工具来支持企业信息管理。其中一些新特性如下:

列存储索引

Always On 可用性组

分布式回放

数据质量服务

Analysis Services xVelocity引擎(以前称为Vertipaq

Windows Server Core 安装支持

2.2 SQL Server 版本之间降级

优秀的SQL Server 2012部署计划应该不需要对SQL Server2012安装的配置进行撤销、重做或者执行重大更改。在一些情况下,你可能被迫将现有的安装更改为不同的SQL Server版本。

假设公司的IT许可策略要求所有中间层级的数据库应用程序需要采用SQL Server标准版,在这种情况下,你可能需要将现有的SQL Server企业版降级为标准版。

在另一种情况下,需要降级为以前的版本。例如,现有的应用程序后端数据库实例的SQL Server版本升级可能已在应用程序中显露bug,因此现在必须降级回以前的SQL Server版本。

例如,如果使用附加到SQL Server 2012实例并以兼容模式级别90设置的数据库,则可以运行与SQL Server2005兼容的代码,但不可以将此数据库还原到SQL Server2005实例。下表显示数据库兼容性级别和相应的SQL Server版本。

             表4 SQL Server数据库兼容性级别

SQL Server版本

数据库兼容性级别

SQL Server 2000

80

SQL Server 2005

90

SQL Server 2008

100

SQL Server 2008R2

100

SQL Server 2012

110

SQL Server2012仅支持位于兼容性级别90100110的数据库,这意味着它支持仅追溯到SQL Server 2005的数据库。

要确定特定SQL Server数据库的兼容性级别,可查询master.sys.sysdatabases表,如下所示:

SELECT cmptlevel

FROM master.sys.sysdatabases

WHERE name=AdventureWorks2012

所有附加或还原到较新版本SQL Server的数据库会自动升级到教新SQL Server实例支持的数据库版本号。对于SQL Server 2012,在SQL Server 2012实例中创建、附加或还原的所有数据库都会转换为数据库版本号700

数据库兼容性级别与数据库版本号是不同的概念。两者之间区别:数据库版本号是与数据库系统表的特定结构关联的内部编号,这些系统表包含有关各种对象的元数据,例如表、列、索引、分配单元,并且包含有关数据库的关系和物理结构的元数据。下表列出对应的SQL Server版本。

         表5 SQL Server数据库版本号

SQL Server版本

数据库版本号

SQL Serve 2000

539

SQL Serve 2005

611

SQL Serve 2005 SP2+(启用 vardecimal

612

SQL Serve 2008

661

SQL Serve 2008R2

665

SQL Serve 2012

700

要确定特定SQL Server数据库版本号,可以查询master.sys.sysdatabases表,如下所示:

SELECT version

FROM master.sys.sysdatabases

WHERE name=AdventureWork2012

一般来说,会部署较高层的SQL Server版本,例如企业版,这样就可以进行必要的规模扩大以提升性能和实现可用性,而不必经历环境升级过程。

 

 

 

           第二部分高可用性/Always On

1. SQL Server 2012 高可用性/Always On

SQL Server2012中,可以在一个逻辑容器(称为可用性组)中定义多个数据库,允许把数据库作为一个单元进行故障转移。

除了把数据库组合起来,数据库现在还可以有至多4个可读的辅助副本。这样就可以灵活地从主事务数据库中卸载报表,甚至从辅助副本中建立备份。

2. SQL Server 2012Always On基于MSCS群集

  维护、部署都麻烦点,既要增强可靠性,又要通过读写分离实现一定的负载均衡,SQL Server上个人感觉可以选择使用3个方案中的一个:

2.1. 事务复制或者点对点复制

优点是技术上比较成熟,sql Azure就是使用这种方式实现HA的。

问题是对数据库表有一定的要求,例如主键是必须的;

2.2. SQL Server 2012Always On

优点是配置上确实简单,而且可以实现多个备用节点;

问题是需要在windows域和集群中(现在集群的一个增强是不需要共享磁盘了);日志传送到备用节点上可以配置实时或者异步的。但是在备用节点上读取的时候,还是要依赖日志apply的速度,如果日志apply不能跟上,可能就比较糟糕了。

2.3. 第三方方案

2.3.1 通过goldengate实现类似于复制的技术;

2.3.2 通过内存数据库,例如timesten, soliddb实现缓存的快速读取。

3. Always On Availability Groups具有如下优点:

多个辅助副本(一个主数据库和至多4个辅助副本)

可读的辅助副本

灵活的故障转移策略,更精细地控制导致自动故障转移到可用组的条件

不需要见证服务器就可获得数据库的高可用性/自动故障转移功能

多个可用性模式,包括异步模式和同步模式。异步是一个灾难恢复解决方案,辅助副本分布到很远的地方(例如在WLAN上)时,建议使用这种模式。在异步模式中,主数据库不会等待任何辅助副本,就会固化其日志;相反,它把日志记录在本地写入其日志文件后,就将事务确认信息发送回客户端。在同步提交模式下,主辅数据库总是完全同步的。这表示,主副本必须等待所有的辅助副本在磁盘中固化其日志后,才把事务确认信息返回给客户端。

多个故障转移模式,包括自动故障转移(没有数据损失)、计划的手工故障转移(没有数据损失)和强制的手工故障转移(可能有数据损失)。

可用性组监听器,这些是可用性组的虚拟网络名(VNN),应用程序可以连接到这些监听器上。对于熟悉群集的用户,这与使用群集名替代单个节点名一样。这样应用程序就可以在可用性失败时,快速无缝地进行故障转移。监听器也是支持多子网故障转移的媒介。

自动页面修复。如果页面标记为可能被破坏,SQL Server就会自动尝试从数据库镜像伙伴(主或镜像副本)或可用性副本(主或辅助副本)中恢复页面。

默认情况下,数据在主辅副本之间会压缩并加密。

可以强制Windows Server Failover Cluster(WSFC)仲裁。

 

4.  Always On要求和前提:

要建立Always On Availability Groups,必须考虑许多方面,包括主服务器、Windows Server Failover Cluster(WSFC)群集、服务器实例和可用性组的配置。下面列出建立Always On Availability Groups时应考虑的一些高级前提条件。完整的详细列表可以参考:http://msdn.microsoft.com/en-us/library/ff878487

作为可用性组成员的系统不是域控制器,域控制器不支持可用性组。

可用性组中的每台计算机都必须允许X86(非WOW64)或X64 Windows Server 2008或更高版本。另外,必须使用Windows Server软件的企业版。

可用性组中的每台计算机都必须加入同一个域。

可用性组中的每天计算机都必须是同一个Windows Server Failover Clustering(WSFC)群集中的成员。可用性副本必须由同一个WSFC群集的不同节点拥有。

主服务器必须是一个Windows Server Failover Cluster节点。对于给定的可用性组,包含可用性副本的每个SQL Server实例都必须位于一个WSFC群集的不同节点上。

可用性组中的每个SQL Server2012实例都必须运行企业版,支持SQL Server的核心版本,但不能混合模式(即同一个WSFC中的Windows Server CoreWindows Server完整UI支持一个可用性组)。

可用性组中的每个实例必须使用相同的SQL Server排序规则。

可用性组中的数据库必须是FULL恢复模型。

只有用户数据库可以属于可用性组。

如果使用包含在可用性组中的数据库,对于每个包含了可用性组的可用性副本的实例,该数据库的身份验证服务器选项就必须设置为1

 

注意:

Always On Availability GroupsSQL Server 2012功能集中一个强大的新增功能,它可能很复杂,令人迷惑。有助于澄清许多Always On Availability Groups问题的一个好资源是Clustering MVP Allan Hirt 维护的FAQ页面。这个Always On Availability Groups FAQ页面的地址是http://www.sqlha.com/2012/04/13/allans-alwayson-availability-groups-faq/

 

5. 配置Always On Availability Groups

为部署Always On Availability Groups,必须先建立一个Windows Server Failover Clustering(WSFC)群集。可用性组中的每个可用性副本都必须在同一个WSFC群集的不同节点上。

(1) 确保所有参与群集的节点都启用了.NET Framework 3.5.1Failover Clustering功能。要启用这些功能,在Server Manger中单击Features节点。在Features页面中点击右边的Add Features链接。

(2) 启用.NET 和 Clustering功能后,就可以配置群集了。要配置群集,进入控制面板 管理工具 | Failover Cluster Manger,单击Validate a Configuration

(3) Validate a Configuration Wizard中,提供需要配置的SQL Server 名。提供了服务器名后,选择Run All Tests(Recommended)选项。测试结束后,Failover Cluster Validation Report 会显示配置问题。单击Finish,完成验证。

注意:Failover Cluster Validation Report 

     验证检查可以成功完成,但结果可能包含了大量的警告。如果有验证设置的问题,就应该查看错误,进行必要的补救。警告不能阻止群集的配置,但可以查看这些警告。要了解结果的更多信息,可单击View Report按钮。

(4) 返回Failover Cluster Manger屏幕,单击Create a Cluster

(5) Create Cluster Wizard屏幕上,单击Next。在Select Servers屏幕上,提供WFSC群集中服务器的名称(第3步验证的服务器),单击Next

(6) Access Point for Administrating the Cluster屏幕上,提供群集的唯一名称。这是一个虚拟名称,客户端可以使用它来连接。如果已经给群集指定了静态的IP地址,就可以在这里提供它。如果没有提供IP地址,DHCP就可以提供一个,但这不是推荐的方法。单击Next继续。

注意:

如果服务器在多个网络上配置了多个网卡,在Access Point for Administering the Cluster屏幕上就为每个网卡提供了一个进入选项。只需在该屏幕上选择配置了群集的网络复选框。

(7) 接着,向导验证选项,显示一个包含验证汇总的确认屏幕。单击Next,继续创建群集。这一步骤要花几分钟才能完成。

(8) 群集创建成功后,显示Summary屏幕,点击Finish,完成群集的创建。

 

6. 建立Always On Availability Groups

现在创建了WSFC群集,就必须在SQL Server中建立可用性组。首先需要启用每个节点上的Always On

(1) 打开SQL Server Configuration Manger,进入SQL Server Services节点。

(2) 右击SQL Server 2012实例的服务,从上下文菜单中选择Properties

(3) 单击Always On High Availability选项卡,Windows failover cluster的名称会自动填充。选择Enable Always On Availability Groups复选框,单击OK。为了使它起作用,这需要重启动服务。

(4) 打开Management Studio,连接要用作主副本的实例,在这个实例下,展开Always On High Availability节点,右击Availability Groups文件夹,选择New Availability Group Wizard。在Introduction屏幕中单击Next

(5) 给可用性组提供唯一名称(不是群集名),单击Next

(6) Select Databases屏幕中,选择要放在可用性组中的数据库。在Status列中,它指出数据库是否满足成为可用性组中一员的前提条件。如果需要在数据库上执行操作,进行验证,就可以单击状态链接,获得状态的更多信息。选择需要的数据库复选框,单击Next

(7) Specify Replicas屏幕中,配置可用性组中的辅助副本。在Replicas选项卡上,主副本会自动填充。要添加其他辅助副本,单击Add Replica按钮。在Connect to Server对话框中,输入辅助服务器的名称并连接。给要添加的其他副本重复上述步骤。添加的所有副本都会自动赋予Initial Role列之下的Secondary角色。

(8) 单击Endpoints选项卡,在这里可以为辅助端点配置端口号。端点的默认端口是5022。另外,可以指定是否希望加密端点连接(默认为加密)。

注意:

服务账号和端点:如果实例运行在默认的本地系统账户下,在可用性组尝试在辅助副本上创建登录时,就可能在这个过程的后期遇到错误。强烈建议在专用的Windows服务账户上运行SQL Server服务。

(9) 单击Backup Preferences选项卡。这里配置在哪里建立备份,如下有几个选项卡可供选择:

Prefer Secondary:在辅助副本上进行自动备份。如果没有辅助副本,就在主副本上建立备份。

Secondary Only:必须在辅助副本上进行所有的自动备份。

Primary:必须在主副本上进行所有的自动备份。

Any Replica:可以在可用性组的任何副本上进行备份。

另外,还可以给各个副本建立备份优先级,或者选择指定某些副本不用于备份。

(10) 单击Listener选项卡,就可以指定一个可用性组监听器,为客户端提供连接点。也可以选择在这个屏幕中创建可用性组监听器,或用Add Availability Group Listener对话框以后配置它。

如果选择建立一个监听器,可以指定监听器的DNS名称,指定定制的端口和IP地址。建议静态IP,完成配置后,单击Next.

(11) Select Initial Data Synchronization屏幕中,有如下可以选择在可用性组初始化数据库。

Full:对所选的数据库执行完整的数据库和日期备份。之后把这些数据库还原到每个加入可用性组的辅助副本中。如果选择这个选项,还必须在网络上指定一个所有副本都可以访问的文件共享。数据库和日志备份会发送到这个文件共享中,开始同步。

Join Only:假定已经在辅助副本中还原了数据库的一个副本,并开始对它们同步。接着把所选的数据库加入到可用性组中。

Skip Initial Data Synchronization:如果希望手工执行每个主数据库的数据库和日志备份,就选择这个选项。

(12) 选择了同步选项,单击Next后,Validation Wizard就会验证所有指定的选项是否正确有效。如果在配置中有问题,单击结果链接,以便了解更多细节。单击Next,进入Summary屏幕。

(13) Summary屏幕上,可以查看前面指定的所有选项。另外,还可以选择单击Script按钮,生成这个过程的脚本,查看完毕后,单击Finish,开始创建和初始化可用性组。

完成配置后,新配置的可用性组就显示在Management Studio中,到这里配置就告一段落了。

 

7. 监控Always On Availability Groups

启动并运行了可用性组后,就需要监控可用性组及其可用性副本的健康状况。为此,可使用Always On Dashboard。要启用这个仪表板,可在Object Explorer中展开Always On High Availability节点,右击Availability Groups节点,并单击Show Dashboard

仪表板显示可用性组的汇总屏幕,该屏幕显示了在连接的实例上配置的所有可用性组,单击一个可用性组的名称,就会打开可用性组的详细界面。

可用性副本细目页面有许多有用的信息,例如:

组中每个副本的故障转移模式

副本及其关联的数据库的同步状态

与组或数据库相关的问题。通过基于策略的管理策略来确定这些问题。这些策略的更多信息可参考: http://msdn.microsoft.com/en-us/library/hh510235.aspx

副本的可用性模式(默认为隐藏)

提示:

在这个页面上,还可以在页面右上角的链接中访问:

Start Failover Wizard:打开Failover Wizard,允许对组进行手工的故障转移,把可用性组中已有的辅助副本变成主副本。

View Always On Health Status:打开Extended Events查看器,查看服务器触发的Always On相关事件。

View Cluster Quorum Information:打开Cluster Quorum信息屏幕,该屏幕显示了群集的成员、成员的状态和仲裁投票数。

 

8. 小结Always On Availability Groups:

Always On Availability Groups是一个健壮的高可用性解决方案,为数据提供了可伸缩性的灵活体系结构。Always On Availability Groups使用Windows Failover Cluster Service(WSFC),可以在网络上维持高可用性和可伸缩性。

 

9. 附录:

介绍:http://www.canway.net/Lists/CanwayOriginalArticels/DispForm.aspx?ID=476

 

详细介绍:SQL Server AlwaysOn高可用性

http://wenku.baidu.com/link?url=Ax5nndNMPUq59wVAguJEyV9urwKjeNkhxpOLgnnZOXnDrRw01GZ2S5OY5w5XTOzNmDqFpzW9hx-8cF7LfdEDjHXjiWt3RAQx02L1WaaEJkO

 

安装图解:http://blog.sina.com.cn/s/blog_7d10f9fa0101amds.html

 

 

 

 

 

 

 

你可能感兴趣的:(服务器,Always)