更换Cluster磁盘阵列导致1034错误的解决

用户情况:
1.在Windows Server 2003集群上安装有两个SQL Server 虚拟服务器
2.SQL采用主动/主动工作方式,原有两个磁盘阵列划分为Q、M、E盘符和F盘符(该磁盘划分是根据现场情况分析得出,客户已经无法回忆当初的设置)
3.Q为仲裁盘,E和F分别为两个SQL实例的数据共享盘,M为DTC
4.客户将几个共享磁盘的数据都复制到了新的阵列上面,然后将新的阵列连接到了cluster上,再启动服务器后,发现阵列不能被识别,Cluster Service停止
5.错误事件代码为1034,该错误在微软KB280425中有描述:
http://support.microsoft.com/kb/280425/en-us
6.新的磁盘阵列可以在集群中被识别,在磁盘管理中可以看到4个磁盘
用户要求:
尽快识别新的磁盘阵列,将集群服务启动起来
完成数据库文件的迁移,并启动数据库
操作过程:
第一阶段:完成数据库文件复制
1.将新的磁盘阵列连接到其他服务器,设置共享,保证在集群服务器上可以访问
2.将集群上的SQL Server停掉,然后复制磁盘上的数据到新阵列的对应盘符
3.该操作花费2个小时(数据量大概140G左右)
第二阶段:修复 1034 错误
1.将新的磁盘阵列安装到群集上并启动主节点(保持另一个节点仍然关闭状态),用管理员账号登录
2.打开事件查看器查看event id为1034的日志,记录日志中描述的盘符和磁盘数字签名:Q:BF1C7B07
3.打开磁盘管理器,查看所有的磁盘均被识别,并记录磁盘编号为Q:disk4,M:disk3,E:disk1,F:disk2
4.打开注册表编辑器,查看
HKLM/System/CurrentControlSet/Services/Clusdisk/Parameters/Signatures的键值,记录所有的磁盘数字编号:BF1C7B07,BF21A145
5.初步判断Q盘数字签名为BF1C7B07,F盘数字签名为BF21A145
6.使用dumpcfg.exe工具进行修复(该工具包含在微软Windows 2000 Resource Kit tools中),运行命令:
dumpcfg -S BF1C7B07 4
dumpcfg -S BF21A145 2
7.成功启动cluster service服务,启动另一个节点,通过failover检查
第三阶段: DTC 服务无法启动
1.在修复1034错误,成功启动cluster service后,发现集群资源中DTC服务器无法启动,根据错误提示找到
http://support.microsoft.com/kb/916926/en-us
2.在注册表HKLM/cluster/resources下找到DTC的GUID,然后授予network service帐号full权限
3.运行命令
msdtc �Cresetlog
net start msdtc
4.DTC服务可以正常启动
第四阶段:解决 M E 盘符和 failover 问题
1.修复了DTC服务问题后,又发现M盘和E盘可以在两个节点上同时访问,而在“我的电脑”中无法发现所有磁盘盘符
2.初步判断是由于原来阵列是由2个磁盘构成(Q、E、M应该使用一个磁盘),而新阵列有4个磁盘,原有数字签名服务完全匹配现有磁盘,用dumpcfg.exe命令检查:M、E盘没有磁盘数字签名
3.手动在磁盘管理器中创建盘符也无法解决该问题
4.重新创建物理磁盘资源M和E,无法完成正常的failover!
5.关闭一个节点,删除现有M和E磁盘资源,重新创建后打开另一个节点,可以进行failover
6.在failover后主节点可以访问磁盘,备用节点无法访问(正常)
操作结果:
1. 群集服务可以正常启动,并进行failover
2. 所有磁盘和资源可以进行failover,并正常访问
3. 迁移后的数据库工作正常,前台应用程序可以正常访问
 
Windows Server 2003 Resource Kit tools 中没有dumpcfg工具,我从2000中提取出来,放在附件中,供使用。

你可能感兴趣的:(cluster,职场,休闲,windows群集)