SQL Server 2012中最经常提到的就是AlwaysOn可用性组,通过允许多个数据库副本的高可用(也可以配置只读和离线管理,例如备份),它提升了SQL Server的高可用和灾难恢复水平。

可用性组(AG)允许用户将一组数据库作为一个实体进行失效恢复。

下面我们一步一步来创建一个SQL Server 2012 AlwaysOn可用性组:

1、前提条件:

1)Windows Server Failover Cluster(WSFC)

AlwaysOn可用性组(以下简称AG)需要WSFC来检测失效以及对可用性组副本(replica)的管理。windows server版本在2008以下的,需要共享存储来做故障转移集群的仲裁盘,2008及以上可以选择利用文件共享来做仲裁配置(当然,如果要使用SQL Server FCI作为AG中的副本,则是另外一个故事)。这里我们仅仅使用单独的SQL Server 2012缺省实例来测试。


2)下载SQL Server 2012企业版

AlwaysOn AG是企业版功能。注意那些用于只读或者备份的replica,也是需要license的。


3)对于所有replica,选择一样的collation


4)2-5个作为replica的SQL Server实例

用作HA后备或者灾备的实例叫做replica,AG允许用户在5个replica上运行5个数据库副本(两种模式的replica,异步提交模式和同步提交模式)


A. 安装Windows Failover Cluster功能

由于AG需要WSFC,我们第一步需要为所有即将配置为replica的SQL Server实例所在的机器添加Windows Failover Cluster功能。

--Server Manager,Add roles and features

--在Select Features提示框中,选择Failover Clustering,当提示Add features that are required for Failover Clustering,点击Add Features

--点击Install开始安装Failover Clustering功能


B. 为AG配置Failover Clustering

在配置WSFC之前,需要确定是否在AD中你有合适的权限。

--在Server Manager上启动Failover Cluster Manager

--点击Validate Configuration...

--Next

--在Select Servers or a Cluster中,添加SQL Server实例的服务器hostname,Next

--在Testing Options中,Run all tests(recommended),Next

--Summary,Finish开始创建WFC

FC Validation向导会出现许多报警信息,特别是当我们没有使用共享存储的时候。

--在Access Point for Administering the Cluster,输入虚拟服务器名字和虚拟IP地址

配置集群仲裁

--在More Actions中选择Configure Cluster Quorum Settings...

--在Select Quorum Configuration,选择Add or change the quorum witness,Next

--Select Quorum Witness,选择Configure a file share witness(recommended for special configuration),Next

--在Configure File Share Witness,输入文件共享的路径,Next


C. 开启SQL Server 2012 AlwaysOn AG功能

在创建完WSFC以后,我们现在可以启用AG功能了。需要在所有想要配置成replica的SQL Server实例上启动

--打开SQL Server Configuration Manager,双击SQLServer(MSSQLSERVER)服务打开属性

--选择AlwaysOn HA tab,选择Enable AlwaysOn AG,此时会重启SQL Server服务,ok

--重启SQL Server服务


D. 创建和配置SQL Server 2012 AlwaysOn AG

AG可以在已有DB上创建。

--开启SQL Server Management Studio,连接到实例

--展开AlwaysOn HA,右键AG,选择New Availability Group Wizard...

--输入AG名称

--在Select DB,选择想要加到AG里面的数据库(在加入以前,db要进入完全恢复模式

--在Specify Replicas页面,Replicas tab里面,点击Add Replicas并连接到其他SQL Server实例,配置:

Automatic Failover--checked

Synchronous Commit--checked

Readable Secondary--No

--在Endpoint,确保端口是5022

--在Listener,选择Create an availability group listener,输入

listener dns name:在应用的连接字符串里面使用

port:1433

--点击Add提供一个IP地址,在IPv4 地址输入虚拟IP地址

--在Select Initial Data Synchronization,选择Full,提供一个共享文件夹,该共享文件夹只是一个临时文件夹,用于存储数据库备份,这些备份在一个AG中用于初始化数据库。对于大型数据库,建议你手动初始化,因为可能对网络带宽有影响

--最后是验证,总结和结果等等



总结:

1、AlwaysOn组件都需要WSFC(AlwaysOn包括AG和FCI)

2、AG是DB级高可用,AlwaysOn FCI是实例级高可用

3、AG可以没有共享存储(可用文件共享),FCI必须有

4、异步提交模式:主数据库事务提交不会受到辅助数据库的影响而产生等待,意味着辅助数据库的更新可能会有滞后,如果发生Failover,可能会有数据丢失

同步提交模式:主数据库在提交事务之前主副本要等待同步提交辅助副本确认它已将日志固化到磁盘上。只要辅助副本还没有告诉主副本日志固化完成,主副本上的事务就不能提交。这样就保证两边的数据始终是同步的。相对于性能,这个模式更强调高可用性。


SOURCE:

http://blogs.technet.com/b/canitpro/archive/2013/08/20/step-by-step-creating-a-sql-server-2012-alwayson-availability-group.aspx

http://technet.microsoft.com/zh-cn/library/hh270278.aspx#AlwaysOnWsfcRelationship

http://www.dotblogs.com.tw/mis2000lab/archive/2013/12/16/sql_2012_alwayson_availability_group-again.aspx


REF:

http://blog.csdn.net/niyi0318/article/details/8080974


Next:

Test WSFC、AD、File Share