[SQL][问题处理]SQL Server Cluster 安装在 CSV ( Cluster Shared Volumes ) 上的注意事项

[SQL][问题处理]SQL Server Cluster 安装在 CSV ( Cluster Shared Volumes ) 上的注意事项


最近在测试新版本的 SQL Server 2014 的时候,刚好看到 MSDN 上面有篇介绍 Deploying SQL Server 2014 with Cluster Shared Volumes 的文章,可以让新版本的 SQL Server 安装在丛集共享扇区上,而非跟传统一样安装在共享磁盘上,而在 Tech-ed 2014 上,也有专门的一堂课程来介绍这个部分,看起来这应该是未来主推的一种方式,因此我也决定自己架设一个 Lab 环境来测试看看。

基本上跟其他之前的 SQL Server 版本是一样的,我们必须先预备好一个 WSFC ( Windows Server Failover Clustering ) 的环境,为了配合可以使用 gMSA ( Group Managed Service Accounts ),因此我先用 Windows Server 2012 建立一个新的 AD,并且将测试用的 VM 都安装好 Windows Server 2012 R2,完成期初的预备工作。

image

安装好之后,我先把 LUN 1 的部分先设定为“仲裁磁盘”,基本上这个占用的空间并不需要太大,但我的 NAS 在切割 iSCSI LUN 的时候最小要设定 10G,因此就先给他 10GB 来使用。接着我们将 LUN 2 上面,选择“新增至丛集共用磁盘区”

image

设定好之后,我们就会发现原本是共用磁盘 R,会转变成为 “C:ClusterStorageVolumn1” 了

image

扫描二维码关注公众号,回复: 7172831 查看本文章

完成上述步骤之后,我们就可以开始来安装了。基本上安装 SQL Server Cluster ( 在 SQL Server 2012 改称为 SQL Server AlwaysOn Failover Cluster Instances ) 和一般安装 SQL Server 的进程差不多,但要注意安装的时候一开始的选像是不同的。在这个步骤可不要选错了喔~~

image

接下来大部分的步骤都是相同的,我就不再赘述了,因为主要是测试 Cluster 的安装和使用,因此在安装的时候我就只单纯选择数据库引擎服务和管理工具这两个部分

image

接下来会有个比较重要的地方,在这个步骤你要设定一个 “SQL Server 网络名称”,以后你要连接这个 SQL Server 就必须要使用这个名称来连接。

image

这里可以先忽略

image

到这个步骤要稍微注意一下,因为原本我有三个丛集磁盘,但第一个已经分配去当仲裁了,而我是把第二个磁盘设定成为“丛集共享扇区”,因此在这个步骤我要选择安装到丛集磁盘 2 上面。

image

接着在这里要指定刚刚前几个步骤所设定 SQL Server 丛集网络名称所对应的 IP 位址,虽然这个部分是可以设定使用 DHCP,但一般我们都比较常使用固定 IP 来做分配使用。

image

在服务账户的设定上,我个人比较偏号使用 gMSA,这样比较不会有密码被被更改或者是被一值登入而被锁定或者是换密码的问题,如果你不习惯使用 gMSA 的话,那么也可以指定一个网域的使用者账号也是可以的啦。

image

接下来也都没有什么太大的不同

image

接下来要到最后一步要开始安装前,我们可以发现的确 SQL Server 会把数据的目录都安装到 CSV 上面去了。

image

按下“安装”的按钮之后,此时就是考验你设备的等级了,因为我的两个环境是在 Hyper-V 上面的 Guest VM,又是使用普通的 NSA 来当 iSCSI Server,因此整个安装时间大约花上 30mins。

image


当第一个 SQL Server CLuster 节点安装好之后,接下来第 2 个之后的安装步骤就相对简单多了,只是要注意在一开始的安装选项,可不要选错了。

image

接下来大部分都是直接按下“下一步”就可以了,到了这个步骤的时候,要检查一下“丛集网络名称”是否是正确,一般来说如果只有一个 SQL Server 丛集是不会有什么问题的,如果有多个的时候,则要注意一下可别选错了。

image

image

在这里他会自动从 Active 节点上的 SQL Server 设定值给带过来

image

相对第一个节点来说,安装步骤所要设定的东西少了很多,但安装也差不多要花上 20~30 mins 的时间。

image


安装过程算简单,原本以为这样就大功告成了,于是想要挂一个数据库进来测试一下,因此我想透过 SSMS 来还原数据库。

image

很自然的会去选择“加入”来挑选我的备份文件。

image

但悲剧就出现了,居然在这里告诉我权限不足,或者是路径不存在的问题。但看起来这个是默认的目录,在前面安装的过程中,是有建立这个目录,因此应该不会不存在才对。

image

因此决定手动操作先建立一个数据库,然后利用 BACKUP DATABASE 的命令,将数据库备份到那个部分下,看起来都没有问题。但如果在前面的步骤,我们手动输入备份文件的位置,而不要用 GUI 去选择,也都不会有问题,因此到底是什么样的问题造成会有这样的错误呢 ?! 花了一个多月总算找到答案了,原来是 SSMS 的管理工具,并没有考虑到安装 SQL Server Cluster 的时候,有可能没有设定任何共用磁盘,而导致 SSMS 去抓取目录资讯的时候,因为没有取到共用磁盘的资讯,因此就直接送出这样的消息。

既然知道问题了,那我们就可以来做处理了。首先先开启“容错移转丛集管理员”,选择角色下的 “SQL Server”,接着按下鼠标右键,选择“新增存放设备”

image

加入一个丛集磁盘专门给 SQL Server 丛集来使用,后续你不一定要使用他来存放东西,但一定要有一个给 SQL Server 丛集专用的丛集磁盘。

image

案下“确定”之后,在 SQL Server 角色下就可以看到有新增一个“存放设备”

image

此时选择上图中的“其他资源”→“SQL Server”,在其上按下鼠标右键选择“属性”→“相依性”,将刚刚所新增的丛集磁盘 3 给加入到相依性的条件内。

image

此时再重新选择还原数据库的处理,就可以发现可以开启 SQL Server 的默认备份档目录了,而且没有任何的错误消息。

image

或者是要切换到丛集磁盘 S 上也没有问题。

image


一个看似很简单的问题,却反反复复的查了将近一个月,有测试过重装、更换服务账户、调整备份目录权限、利用 Backup Device 等方式,但就是没有成功,后来总算是找到几个关键的 DMV,从这些 DMV 的结果才找到最后的问题。如果想要研究的朋友,可以查看看以下这几个 DMV 的回传结果和说明:

sys.dm_io_cluster_shared_drives

这个检视会返回每个共用磁盘机的磁盘机名称。 如果目前的服务器执行个体不是丛集执行个体,它会返回空的数据列集

sys.dm_os_cluster_nodes

如果目前的执行个体是容错移转丛集执行个体,将会返回定义有此容错移转丛集执行个体之节点的清单,并可以判断哪个节点为目前拥有者

sys.dm_io_cluster_valid_path_names

返回 SQL Server 容错移转丛集执行个体之所有有效共用磁盘的相关资讯,包括丛集共用磁盘区。

原文:大专栏  [SQL][问题处理]SQL Server Cluster 安装在 CSV ( Cluster Shared Volumes ) 上的注意事项


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11458398.html