一、摘要:

   本文主要讲述如何在windows server 2008 R2 系统上安装 SQL server 2008 的集群配置。

二、准备:

   最少事先需准备三台服务器(理由看这里https://support.microsoft.com/zh-cn/kb/2795523),我此次的实验是在台式机电脑上面安装的,系统安装这里不讲。如果没有主机设备的,此实验可在vmware虚拟机上面安装实现。基本上大同小异,虚拟机这块我在这就不讲了。

   因为手上没有存储服务器,所有只能用微软的iscsiTarget软件模拟出iscsi存储服务器出来。所有事实上我是用了这台设备装了域控制器也用他模拟iscsi存储磁盘。其中主备服务器节点需要两个网口,心跳线与集群通信线。

   博文最后是我在安装的过程中遇到的一些错误信息,以及解决办法,如果你安装过程出现了错误可以看看,是否有相同的错误。


简单结构图如下:

wKiom1cRm4TQQZYHAAC6LHaHgNw663.jpg

三、服务器信息说明  

    名字         IP          说明 

   iscsilist     192.168.13.25    域控制器/存储服务器 

   win-uftr6lr1upm 192.168.13.26    SQL Server群集节点1  

   win-bs4t5cujca2 192.168.13.27    SQL Server群集节点2  

   mycluster     192.168.13.22    win server故障转移集群虚拟IP

   cluster2008r2  192.168.13.18    SQL Server群集虚拟IP

   mycluster-DTC  192.168.13.21    SQL Server群集DTC虚拟IP


在这只是简单的描述安装的过程,如果要正式使用还需跟进具体情况进行适当修改与配置。

四、虚拟iscsi存储配置。

   安装的过程我就不讲了,文件下载链接:http://pan.baidu.com/s/1c17x25U 密码:v3gs

根据你的系统安装相应的版本就好。

   具体安装配置步骤参阅另一个博文 iscsi模拟磁盘安装

五、域控制器安装

   要想配置win server的故障转移集群需要先安装AD域。这里有篇文章有很好的说明,传送门:域控制器在域中的作用。域控制器的安装还是比较简单的,但是如果你要用到权限管理的话,就需要好好研究研究了。集群只能通过域控制器来管理,节点是无法设置集群的。sql server 2008之后是不支持集群服务与域控制器在同一台设备上的。(也就是说你如果安装了域控制器,那你在这台电脑上面就无法安装sql server 的集群服务。)

   安装过程查看另一篇博文  域控制器简单安装步骤

六、集群配置

   1、添加故障转移集群功能,选择好后点下一步,在选择安装就好。两个节点都要加入域,同时也都要安装故障转移集群。

  wKiom1cNxO3B1F9MAAISdj9Ogk4051.png

  

   2、安装完故障转移集群之后,打开故障转移集群管理器,第一步需要做的事情是验证配置,这个步骤是检验你的集群节点是否满足集群的要求。

wKiom1cQV--R5URmAAQK_z2ZYZ8282.jpg


   3、下图中没有选中的一台主机是我的域控制器。

wKioL1cQWKuyKhXcAAQmhCei8Ac118.jpg

   4、这个主机名称在加入域之前最好事先修改下,不然比较难记。我这个没有修改在我后面维护的时候不好记。

wKiom1cQV_PCxmmWAAE7S7OIfpY106.jpg

wKioL1cQWKzSq633AAFe2670w-s799.jpg

wKiom1cQV_XgrjrHAAHN1MqensA422.jpg

   5、测试完后你要查询下报告,看看是否那些内容无法满足需求,根据提示进行相应的调整。

wKiom1cQV_aTzrbUAAFydtvIi_M407.jpg


   6、配置验证完成后,开始创建集群。

wKiom1cQV_jw3KnLAAPlNXGU1B0753.jpg


wKioL1cQWLPjEhzkAAOI8aJuOqI808.jpg

   

   7、向集群添加相应节点。

wKioL1cQWLTBdc14AAEk59XPltI407.jpg


   8、集群名称,根据自己的需求填写集群名称,然后输入集群的虚拟IP。

wKioL1cQWLWze1mNAAGKtlIOXcs142.jpg

wKiom1cQV_2xcDfrAAE5q-4pccY952.jpg

wKioL1cQWLejHhhwAAFFefIHqJE065.jpg


   9、一个集群就创建了。集群的使用和配置我这就不多说了,自己安装完用一用,熟悉下配置。

wKiom1cQWALx6XxPAAVzB-E6oZo070.jpg

   这里有个地方需要设置下,心跳线的的群集网络通信给他禁用掉,为嘛?你自己去实验,拔掉外网线、拔掉心跳线。各种方式去尝试集群能否正常转移,你会明白的。

wKioL1cRnTXDQzmlAANgWUNQzcM154.jpg


   

   10、集群创建完,在安装sql sever 集群之前,我们需要安装一个应用叫MS DTC(分布式事物协调器)。这个是干嘛用的?为什么要装这个应用?

   随着网络普及,分布式数据库的应用也越来越普遍。在分布式数据库中逻辑上作为一个整体的数据被存储在多个服务器上。一家大的商业银行可能将客户的信用卡消费信息和支票消费信息存储在不同的服务器上,但是用户的存款账户只有一个,当用户用任何一种形式进行了消费以后,计算机必须同时对存储在不同服务器上的信息进行更新。

   为了更好地协调和处理这种分布式事务,sql sever 2000使用了MS DTC。MS DTC 是一个事务管理器,它允许客户的应用程序在一个事务中对分布在多个服务器上的数据源进行操作。MS DTC通过两段式提交的方法来实施分布式事务,针对多个服务器的更新要么全部成功执行,要么全部不执行,从而有效保证数据的一致性和完整性。

   OK,明白了MS DTC是什么之后我们开始安装这个集群应用。

wKioL1cQWLuzKQOhAAC94w_QSlk048.jpg


wKioL1cQWLyjS1PNAAGbbHDPWKU308.jpg


wKioL1cQWL2g2V2-AAHMIDOYSzc032.jpg


   11、这个名称是自动生成的,可改可不改,可根据个人需求。当然这里同样要配置一个虚拟的IP地址。

wKioL1cQWL6DgglCAAGWTas0ucQ969.jpg

wKiom1cQWAaS1efvAAE0jAbB0tg315.jpg

wKiom1cQWAfRmOtBAAFwPz-WCYo203.jpg

   

   12、在集群和DTC安装完成后,我可以测试下这两个IP是否能通。

wKiom1cQWAmhP3ZNAAKLPz4-qns649.jpg




好的,我们现在要开始安装数据库了,我这里准备安装sql 2008

    13、第一个安装的节点选择故障转移集群安装,只有先装这个后才能进行集群节点添加。

wKiom1cQYgez8XQdAAJ9hOPtAD0264.jpg

wKioL1cQYsHQEtM2AAJ8WDpm6f8043.jpg

wKioL1cQYsKC2aalAAHotPlIm58851.jpg

wKioL1cQY***MxqNAAMJgajZfrM804.jpg

wKioL1cQYsXREkwAAAGE_QGkjrA317.jpg

wKiom1cQYg_TRc-lAAObdJFzJkA909.jpg


    14、这个功能安装可以根据需求选择,一般选择数据库引擎服务(复制和全文检索也要)、客户端工具连接、管理工具选项。当然如果不知道需求是什么可以全选。功能目录也可以修改,建议不要和系统盘安装在同一个磁盘。

wKioL1cQYsnSPqWeAAK8rDn-Nr4118.jpg


    15、网络名称需要你填写下,这个就是数据库集群的名称,实例有两种,默认实例和命名实例。一台电脑上面只能有一个默认实例,可以有多个命名实例。

    注:我在截这个图的时候安装失败了。后面有的图的集群名称变成了cluser2008r2,那是因为我重新安装了,安装过程反正不变。出错的原因后面说明。

wKiom1cQYhKQkpq9AAMd1nX-bJ0493.jpg

wKiom1cQYhSQEQTbAAI1uy01NNU446.jpg

wKioL1cQYs6zG1A8AALWg947Oiw071.jpg


   16、这里需要一个可用的群集磁盘,意思就是说在你的win server 集群中要有一块可用的存储,到目前为止我总共用到三个磁盘,win server集群使用的是一个仲裁盘,MS DTC一个磁盘,现在数据库一个磁盘,这个磁盘是拿来存集群放数据库数据用的,不是存放软件的。

wKiom1cQYhfh9xnyAAK1ppyW5ds513.jpg

wKiom1cQYhnj4HpTAAHx6ZL17Vc129.jpg

wKiom1cQYhriVGvnAAJgo_XiVQk586.jpg

wKiom1cQYhzwr0mnAAOKhZxj0Mg012.jpg


   16、数据存放在集群盘。

wKiom1cQYh7ghOLRAALczqtlnUY835.jpg

wKiom1cQYiCjymxhAALpc7hQQZU718.jpg

wKiom1cQYiHyOMMqAAJYLKlG3zs885.jpg

wKioL1cQYtzSxS4cAALT22jml7E453.jpg

wKiom1cQYiWiG-r7AALu005EaEU356.jpg

wKiom1cQYieAfdQNAAMHb-_36zs664.jpg

wKioL1cQYuGQhc67AAMp7a9hXkA261.jpg


   17、数据库集群安装完成后,我们可以去域控制器服务器查看,会发现在服用和应用程序中会有sql server 的集群名称。我们可以看到都处于联机状态。这个图数据库集群名称和上面写的不一样,是因为我之前安装出错了,后面重装了数据库集群,然后名字没对好。


wKiom1cRkOmTWurKAAHJnU1mcCw734.jpg



现在开始安装集群节点。这个安装要简单很多。选择添加节点。

    18、这里我就没有一步一步的截图了,只是截了几张不一样的地方。

wKioL1cRkzCRqBQiAAJ2bWAUDuQ771.jpg


    19、当检测结束后,他会出现这个选项,直接选择下一步就好。

wKiom1cRkOqCzLSKAAHLDFqFk1Q953.jpg


    20、这里需要稍微注意下,因为对所有sql server服务使用相同的账户这个选项是灰色的,你要手动在sql server 代理和sql server database engine 这两个密码栏内输入密码。

wKioL1cRkaazkyfGAAKyMDWjYPk593.jpg

   21、上一张图只所以会有错误信息是因为我在下图中没有输入密码就直接点击下一步了。

wKiom1cRkO3C71VAAAIfS5sG4vA128.jpg

   22、然后等待安装完成。这样SQL 集群安装就完成了。

wKiom1cRkO_yaw8tAAJgrtS5jlw686.jpg


装完之后我们要验证下是否能正常迁移应用。

    第一个简单的方法就是将应用迁移至另一个节点。当你完全可以搭建一个简单的网站来测试能否进行故障转移。

wKioL1cRoDbQMfx8AAKSi31rYiI269.jpg


下面的是我在安装过程中出现的错误和解决办法。

   错误1、

wKioL1cRlbeSGZfWAACni6mN1tc596.jpg


   解决方法:

方法1.

把 SQL SERVER 安装中心的 “选项”- “处理器类型” 选X86 问题解决。我的系统是64位。

方法2.

在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。

原因是,VC 2010的一个服务程序mscorsvw.exe进程调用Invoke导致的,结束这个进程,即可。

方法3.

关闭360安全卫士和杀毒软件,重新运行安装。

方法4.

出现错误后,找到注册表的 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager" 并将其下面的"PendingFileRenameOperations" 的值删掉。

然后重新运行安装。


  错误2、

   将资源"SQL Network Name(sqlcluster)"的私有属性"RequireKerberos"设置为值"1"时出错

出现这个错误的原因是,sql server 2008 安装包没有集成sp1补丁导致的安装失败。网络是有这样的解决方案:http://www.ttkc.net/knowlage/444.htm 

   反正我看了半天没弄懂怎么解决。最后我是更换了安装包,安装了serl server 2008 R2。然后解决问题。

  错误3、

   可能你在安装MS DTC或者其他集群的时候会提示没有可用存储,可是事实上你在集群中有看到可用存储,原因是你的磁盘没有分配盘符给集群磁盘。

   wKiom1cRl03jSR4eAAEf0ZpiPLE069.jpg 

    还有一个是如果你的系统是安装win server 2008 R2 数据库安装的是08之后的,那么你需要打上系统的sp1补丁。

    另外还有一些其他问题,相对都比较好解决。