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://technet.microsoft.com/zh-cn/library/hh270278.aspx#AlwaysOnWsfcRelationship
REF:
http://blog.csdn.net/niyi0318/article/details/8080974
Next:
Test WSFC、AD、File Share