从0开始部署基础的AlwaysOn

在这个快餐文化盛行的时代,应该没多少人真的会沉下心来看理论和具体步骤,加上我自己也需要一篇可以扩展的快速搭建环境的指引,所以特别写了这篇文章。


我们在这里要做的事情有以下几个:

  1. 安装环境。包括虚拟机和网络配置等。
  2. 安装Windows域、配置必要的账号密码及功能。
  3. 搭建域环境并进行配置。
  4. 安装配置Windows Server Failover Cluster(WSFC)。
  5. 安装SQL Server。
  6. 配置AlwaysON可用性组。
  7. 检查测试。

看到这里,请先拉到最后面浏览一下注意事项,至于放在最下面的原因,是因为大多数人不喜欢看很罗嗦的东西,希望直入话题,但是这些又是非常重要的,所以不得不说。

  我们的最终目的是使用SQL ServerAlwaysOn技术,而这个技术要求WSFC,而WSFC又要求AD,所以,我们需要从AD开始。


1. 安装环境:


首先,我在一台服务器上的Hyper-V中开启3台虚拟机,命名如下:

  • George_New_AG_AD
  • George_New_AG_Node1
  • George_New_AG_Node2


从名字可知是两节点的AlwaysOn。之所以使用New是因为前面实验中的环境已经有了类似的名字,实在不想再想一些新的名字。有强迫症的读者请理解有拖延者的我。

接着,先安装基础环境,三台机器均安装Windows Server 2012 R2中文版。这一步不演示了,实在没什么好演示的。

接下来先配置网络,这个实验的拓扑图如下:

 从0开始部署基础的AlwaysOn_第1张图片

 

通过Hyper-V,对每台虚拟机配置2个网卡,注意,对于AD,实际上只需要一个网卡,另外一个是为了与宿主机互访,可以传输文件进去。因为加了域之后整个环境是密封的。宿主机需要通过一个对外网络访问。


2. 安装Windows域:

先对AD进行安装配置,主要是配置IP地址和防火墙(由于实验关系,这里直接关闭防火墙,但是在生产环境中需要进行精细化控制,一般只开放所需端口。本例用5022端口),通过Hyper-V控制台,添加了一个网卡,这里命名为Private,用于域网络。步骤如下:

1. 关闭防火墙,修改电脑名(本例使用AG-AD为电脑名)略过

2. 配置IP地址:

从0开始部署基础的AlwaysOn_第2张图片

3. 关闭LMHOSTS查找:

从0开始部署基础的AlwaysOn_第3张图片

4. 安装AD活动目录角色:启动【服务器管理器】→启动“添加角色和功能”向导:

从0开始部署基础的AlwaysOn_第4张图片

5. 选择“Active Directory域服务”,同时勾选“DNS服务器”角色:

 从0开始部署基础的AlwaysOn_第5张图片

6. 在【功能】对话框中不需要安装任何东西,注意,这是AD,所以不需要,但是在NODE1、2两台中,由于需要安装SQL Server,所以需要勾选.NET 3.5。另外为了后续故障查找之用,我个人喜欢在这里安装Telnet客户端。然后下一步最后点击【安装】:

从0开始部署基础的AlwaysOn_第6张图片

7. 安装完毕之后,先不要重启,对于WIN 2012 R2来说,AD域的安装是分两步的,所以我们还没实际完成安装:

从0开始部署基础的AlwaysOn_第7张图片

8. 新建林:

从0开始部署基础的AlwaysOn_第8张图片

9. 输入目录服务还原模式(DSRM)密码:

从0开始部署基础的AlwaysOn_第9张图片

10.下一步:

从0开始部署基础的AlwaysOn_第10张图片

11.确认NetBIOS域名无误后下一步:

从0开始部署基础的AlwaysOn_第11张图片

12.配置数据和日志存放位置,本例保持默认:

从0开始部署基础的AlwaysOn_第12张图片

13.检查无误后,开始安装:

从0开始部署基础的AlwaysOn_第13张图片

14.安装完毕后会自动帮你重启,重启完毕,我们的AD域已经完毕。

 

3. 搭建域环境:


接下来我们把NODE1加入域,至于NODE2除了IP地址和机器名之外其他一样:

1.修改机器名,设置网卡为Private并配置IP地址:Node1,192.168.1.11,注意下图的第二个红框是指向AD的IP地址,否则不能加域。另外关闭防火墙!

从0开始部署基础的AlwaysOn_第14张图片

2. 配置用于群集的网卡ClusterIP(命名随意但是建议有标识性):


从0开始部署基础的AlwaysOn_第15张图片

3. 两个网卡均关闭【启用LMHOSTS查找】,并禁用【NetBIOS】:

从0开始部署基础的AlwaysOn_第16张图片

4. 重启机器让机器名生效之后,开始入域。同理把Node2也加进去。


 

4.安装Windows Server Failover Cluster(WSFC):


1. 安装WSFC只需要在参与节点中安装即可,不涉及AD。

 从0开始部署基础的AlwaysOn_第17张图片

2. 在这个过程中顺便把.NET 3.5也安装上:

从0开始部署基础的AlwaysOn_第18张图片

3. 添加备用路径:

从0开始部署基础的AlwaysOn_第19张图片

4. 安装完毕后,打开【故障转移群集管理器】:

从0开始部署基础的AlwaysOn_第20张图片

 

5. 验证群集:

从0开始部署基础的AlwaysOn_第21张图片

 

 从0开始部署基础的AlwaysOn_第22张图片


6. 运行测试:

从0开始部署基础的AlwaysOn_第23张图片


从0开始部署基础的AlwaysOn_第24张图片



从0开始部署基础的AlwaysOn_第25张图片


 7. 创建群集:按步骤创建,这一步比较简单,略过


 从0开始部署基础的AlwaysOn_第26张图片



8. 配置仲裁:


从0开始部署基础的AlwaysOn_第27张图片


从0开始部署基础的AlwaysOn_第28张图片


从0开始部署基础的AlwaysOn_第29张图片


9. 由于这里只有两节点,为了凑够奇数仲裁,所以借助AD上的文件共享作为见证:


从0开始部署基础的AlwaysOn_第30张图片


10. 在AD上创建一个共享文件夹:


从0开始部署基础的AlwaysOn_第31张图片

11. 配置共享文件夹:这一步在Node1上进行:


从0开始部署基础的AlwaysOn_第32张图片



从0开始部署基础的AlwaysOn_第33张图片



从0开始部署基础的AlwaysOn_第34张图片


从0开始部署基础的AlwaysOn_第35张图片

12. 创建新角色:

从0开始部署基础的AlwaysOn_第36张图片




从0开始部署基础的AlwaysOn_第37张图片



13.数据角色名:

从0开始部署基础的AlwaysOn_第38张图片

14. 新建之后,可以看到当前所有者节点为Node2,读者如果是Node1也没关系,到此为止,简单的WSFC已经搭建完毕:


从0开始部署基础的AlwaysOn_第39张图片

15. 测试故障转移:可以手动转移或者把Node2关机测试,下面我们来测试一下,首先我们看到上图当前节点是在Node2,把Node2网络断开,可以看到刷新后所有者节点已经在Node1中:


从0开始部署基础的AlwaysOn_第40张图片

 

 

5.安装SQL Server:


1. 首先先在AD上创建一个新的专用的域账号:这一步方式很多,大家随意或者咨询域管理员


 从0开始部署基础的AlwaysOn_第41张图片


从0开始部署基础的AlwaysOn_第42张图片


从0开始部署基础的AlwaysOn_第43张图片


2. 如果没有安装.NET 3.5,请先安装,因为SQL 2014的安装需要这一步:


从0开始部署基础的AlwaysOn_第44张图片


3. 打开SQL Server 安装文件:


从0开始部署基础的AlwaysOn_第45张图片


4. SQL Server安装不是这里的重点,但是很多人问我要勾选怎么组件,我这里给出最基本的组件:


从0开始部署基础的AlwaysOn_第46张图片


5.SQL Server安装细节不累赘,只提一些注意点:勾选这部分非常重要,不勾选的话我们就只能用命令行来操作:另外我建议所有可以改路径的地方,都要改到非系统盘。


从0开始部署基础的AlwaysOn_第47张图片


从0开始部署基础的AlwaysOn_第48张图片



从0开始部署基础的AlwaysOn_第49张图片

6. 安装完毕后,使用SQL Server配置管理器启用AlwaysOn可用性组功能,注意需要重启服务:


从0开始部署基础的AlwaysOn_第50张图片

6.配置AlwaysOn可用性组:


1. 下面开始配置部署AlwaysOn,首先随便建一个库,比如TestAG,然后按下图打开“新建可用性组向导”:


从0开始部署基础的AlwaysOn_第51张图片


2. 指定可用性组名:这部分是供应用程序或者SSMS连接使用,最好简洁、有标识性


从0开始部署基础的AlwaysOn_第52张图片


3. 我们可以看到下图的提示,需要完整备份,这个必须条件,需要注意的是,由于一切SQL Server 的HA技术(备份除外,有些地方也把备份作为HA的其中一种。)都基于事务日志和完整恢复模式,所以在创建数据库之后,首先我们要把数据库设为完整恢复模式,然后做一次完整备份。


从0开始部署基础的AlwaysOn_第53张图片


4. 随便备份一下,然后刷新对话框:


从0开始部署基础的AlwaysOn_第54张图片


5. 指定副本:注意红框部分的说明:为了能够起到真正的故障转移,我们需要把所有副本设为可读辅助副本,否则故障转移后副本不可读。


从0开始部署基础的AlwaysOn_第55张图片


6.配置侦听器,我们做完AlwaysOn之后,不想应用程序再用副本的实例名来访问。


从0开始部署基础的AlwaysOn_第56张图片


7. 新建侦听器IP地址,这是一个虚拟IP地址,没有落到具体的机器,但是它必须在域内唯一:


从0开始部署基础的AlwaysOn_第57张图片



8. 选择数据同步选项:这是数据初始化的过程,如果是小库,我习惯用第一个,直接由SQL Server帮你完成,但是注意要有共享文件夹。如果是手动处理,就比较麻烦:
a)     停止服务器的所有备份作业和会影响备份的操作。
b)     手动完整备份目标数据库,以NORECOVERY模式还原到副本服务器。
c)     手动日志备份目标速回据库,以NORECOVERY模式还原到副本服务器。
d)     再选择【仅联接】。这个过程看似简单,但是对于几百G的库而言备份还原传输时间均非常久。


从0开始部署基础的AlwaysOn_第58张图片


9. 完成配置:


从0开始部署基础的AlwaysOn_第59张图片


10.到这里,部署步骤已经完毕,下面我们来做各种测试。


7. 检查测试:


a) 使用侦听器名连接:


从0开始部署基础的AlwaysOn_第60张图片

检查当前节点:


从0开始部署基础的AlwaysOn_第61张图片

b)手动T-SQL故障转移:



从0开始部署基础的AlwaysOn_第62张图片

检查当前节点:


从0开始部署基础的AlwaysOn_第63张图片


c)使用Hyper-V控制台强制关闭Node2(现在的当前节点):


从0开始部署基础的AlwaysOn_第64张图片


刷新界面再查看当前服务器,已经自动转到Node1:


从0开始部署基础的AlwaysOn_第65张图片

d) 使用侦听器IP连接:


从0开始部署基础的AlwaysOn_第66张图片



 

 

本文主要是对前面几节进行快速回顾和搭建最最基础的AlwaysOn环境,一些细节问题请翻阅前面部分,本人也会在后续的章节里面丰富AlwaysOn的使用演示。

 

注意事项:这是实验过程中的所得,在后续使用过程中会不断完善。

  1. 先把所有Windows服务器名字改好。
  2. 确保Windows的防火墙关闭或者放行必要端口。
  3. 使用专用的域账号作为SQL Server运行账号。
  4. 安装必要的功能:.NET 3.5、telnet客户端(非必须但是常用)。


你可能感兴趣的:(数据库管理,DBA,Alwayson,SQL,Server,Windows,Server,Failover,Cluster,SQL,Server,DBA)