在这个快餐文化盛行的时代,应该没多少人真的会沉下心来看理论和具体步骤,加上我自己也需要一篇可以扩展的快速搭建环境的指引,所以特别写了这篇文章。
我们在这里要做的事情有以下几个:
看到这里,请先拉到最后面浏览一下注意事项,至于放在最下面的原因,是因为大多数人不喜欢看很罗嗦的东西,希望直入话题,但是这些又是非常重要的,所以不得不说。
我们的最终目的是使用SQL ServerAlwaysOn技术,而这个技术要求WSFC,而WSFC又要求AD,所以,我们需要从AD开始。
首先,我在一台服务器上的Hyper-V中开启3台虚拟机,命名如下:
从名字可知是两节点的AlwaysOn。之所以使用New是因为前面实验中的环境已经有了类似的名字,实在不想再想一些新的名字。有强迫症的读者请理解有拖延者的我。
接着,先安装基础环境,三台机器均安装Windows Server 2012 R2中文版。这一步不演示了,实在没什么好演示的。
接下来先配置网络,这个实验的拓扑图如下:
通过Hyper-V,对每台虚拟机配置2个网卡,注意,对于AD,实际上只需要一个网卡,另外一个是为了与宿主机互访,可以传输文件进去。因为加了域之后整个环境是密封的。宿主机需要通过一个对外网络访问。
先对AD进行安装配置,主要是配置IP地址和防火墙(由于实验关系,这里直接关闭防火墙,但是在生产环境中需要进行精细化控制,一般只开放所需端口。本例用5022端口),通过Hyper-V控制台,添加了一个网卡,这里命名为Private,用于域网络。步骤如下:
1. 关闭防火墙,修改电脑名(本例使用AG-AD为电脑名)略过
2. 配置IP地址:
3. 关闭LMHOSTS查找:
4. 安装AD活动目录角色:启动【服务器管理器】→启动“添加角色和功能”向导:
5. 选择“Active Directory域服务”,同时勾选“DNS服务器”角色:
6. 在【功能】对话框中不需要安装任何东西,注意,这是AD,所以不需要,但是在NODE1、2两台中,由于需要安装SQL Server,所以需要勾选.NET 3.5。另外为了后续故障查找之用,我个人喜欢在这里安装Telnet客户端。然后下一步最后点击【安装】:
7. 安装完毕之后,先不要重启,对于WIN 2012 R2来说,AD域的安装是分两步的,所以我们还没实际完成安装:
8. 新建林:
9. 输入目录服务还原模式(DSRM)密码:
10.下一步:
11.确认NetBIOS域名无误后下一步:
12.配置数据和日志存放位置,本例保持默认:
13.检查无误后,开始安装:
14.安装完毕后会自动帮你重启,重启完毕,我们的AD域已经完毕。
接下来我们把NODE1加入域,至于NODE2除了IP地址和机器名之外其他一样:
1.修改机器名,设置网卡为Private并配置IP地址:Node1,192.168.1.11,注意下图的第二个红框是指向AD的IP地址,否则不能加域。另外关闭防火墙!
2. 配置用于群集的网卡ClusterIP(命名随意但是建议有标识性):
3. 两个网卡均关闭【启用LMHOSTS查找】,并禁用【NetBIOS】:
4. 重启机器让机器名生效之后,开始入域。同理把Node2也加进去。
1. 安装WSFC只需要在参与节点中安装即可,不涉及AD。
2. 在这个过程中顺便把.NET 3.5也安装上:
3. 添加备用路径:
4. 安装完毕后,打开【故障转移群集管理器】:
5. 验证群集:
6. 运行测试:
7. 创建群集:按步骤创建,这一步比较简单,略过
8. 配置仲裁:
9. 由于这里只有两节点,为了凑够奇数仲裁,所以借助AD上的文件共享作为见证:
10. 在AD上创建一个共享文件夹:
11. 配置共享文件夹:这一步在Node1上进行:
12. 创建新角色:
13.数据角色名:
14. 新建之后,可以看到当前所有者节点为Node2,读者如果是Node1也没关系,到此为止,简单的WSFC已经搭建完毕:
15. 测试故障转移:可以手动转移或者把Node2关机测试,下面我们来测试一下,首先我们看到上图当前节点是在Node2,把Node2网络断开,可以看到刷新后所有者节点已经在Node1中:
2. 如果没有安装.NET 3.5,请先安装,因为SQL 2014的安装需要这一步:
3. 打开SQL Server 安装文件:
4. SQL Server安装不是这里的重点,但是很多人问我要勾选怎么组件,我这里给出最基本的组件:
5.SQL Server安装细节不累赘,只提一些注意点:勾选这部分非常重要,不勾选的话我们就只能用命令行来操作:另外我建议所有可以改路径的地方,都要改到非系统盘。
6. 安装完毕后,使用SQL Server配置管理器启用AlwaysOn可用性组功能,注意需要重启服务:
1. 下面开始配置部署AlwaysOn,首先随便建一个库,比如TestAG,然后按下图打开“新建可用性组向导”:
2. 指定可用性组名:这部分是供应用程序或者SSMS连接使用,最好简洁、有标识性
3. 我们可以看到下图的提示,需要完整备份,这个必须条件,需要注意的是,由于一切SQL Server 的HA技术(备份除外,有些地方也把备份作为HA的其中一种。)都基于事务日志和完整恢复模式,所以在创建数据库之后,首先我们要把数据库设为完整恢复模式,然后做一次完整备份。
4. 随便备份一下,然后刷新对话框:
6.配置侦听器,我们做完AlwaysOn之后,不想应用程序再用副本的实例名来访问。
7. 新建侦听器IP地址,这是一个虚拟IP地址,没有落到具体的机器,但是它必须在域内唯一:
9. 完成配置:
10.到这里,部署步骤已经完毕,下面我们来做各种测试。
a) 使用侦听器名连接:
检查当前节点:
b)手动T-SQL故障转移:
检查当前节点:
c)使用Hyper-V控制台强制关闭Node2(现在的当前节点):
刷新界面再查看当前服务器,已经自动转到Node1:
d) 使用侦听器IP连接:
本文主要是对前面几节进行快速回顾和搭建最最基础的AlwaysOn环境,一些细节问题请翻阅前面部分,本人也会在后续的章节里面丰富AlwaysOn的使用演示。
注意事项:这是实验过程中的所得,在后续使用过程中会不断完善。