环境:
一.架构及服务器信息
IP | SQL Cluster Name | Hostname | Original Storage | SIZE | New Storage | Size | Comments |
| SHADCPWSQLxxx | Shadcpwscl06a | E | 300G | I | 800G | data |
| F | 100G | H | 200G | data | ||
| Shadcpwscl06b | M | 2G | R | 5G | DTC | |
| Q | 1G | W | 4G | Quorum |
二.备份所有群集服务器及其数据库
过程略
三.新盘存储准备及更换
3.1.确保所有节点都可以正常访问新的存储
VMware添加共享存储并将新存储加入cluster的storage中:
右键点击存储,选择添加磁盘,勾选这新磁盘并将其加入群集(下图仅供参考)
【注】
将新存储的仲裁盘挂载到群集节点前。确保这新磁盘已经初始化,格式化并在群集节点上都可以上线。请给这新磁盘配置临时的驱动器号
如新仲裁盘临时配为W盘,DTC盘临时配为R盘,数据库新盘为I盘和H盘。
3.2.将SQL资源组脱机,并禁用SQL服务
在SQLserver集群资源中SQLserver和SQLserver Agent 2个服务offline
注意:禁用service中所有SQL server服务
3.3.仲裁盘更换
在群集管理器中右键点击需要更改的群集,选择更多操作 ->配置群集仲裁设置。
在配置群集仲裁向导中选择节点和磁盘多数,然后勾选新添加的用于仲裁的新磁盘。
例如:
选择需要替换的新盘:
按照该向导即可完成配置:
在确认群集功能正常后,可以在群集节点中移除原来仲裁盘以释放对应的驱动器号。
在群集管理器中选中该群集,在中间栏展开群集核心资源,右键点击仲裁盘,选择更改驱动器号。这里我们可以将仲裁盘更改回之前的仲裁盘的驱动器号。
如Q盘:
3.4.数据盘更换
假设我们需要替换的数据盘的信息如下:
Hostname | Original Storage | SIZE | New Storage | Size | Comments |
Shadcpwsclxxa | E | 300G | I | 800G | data |
F | 100G | H | 200G | data | |
Shadcpwsclxxb | M | 2G | R | 5G | DTC |
Q | 1G | W | 4G | Quorum |
我们已经将2块新盘I,H盘加入到群集中并指定driver letter。
3.4.1 ROBOCOPY命令来复制数据到新盘
D:\>robocopy F:\MSSQL11.MSSQLSERVER T:\MSSQL11.MSSQLSERVER /E /SEC /MIR/LOG:D:\F_migrate.LOG
D:\>robocopy E:\MSSQL11.MSSQLSERVER H:\MSSQL11.MSSQLSERVER /E /SEC /MIR /LOG:D:\E_to_s.LOG
3.4.2 执行新老盘的替换
1) 将新盘I从“available storage“组中删除。
2)从群集管理器里面将老盘E下线,这个时候由于没有存储,状态应该是failed.
3)右键选择这块盘并进行repair, repair只有在磁盘资源是offline或者Failed状态才会出现。
4) 如果不是failed状态,请选择”simulate failure of this resource”来触发到failed状态。
5) 群集已经自动绑定到这块新盘,并将老盘从群集里面剔除。
6) 对 D盘执行同样的步骤(每次只从”available storage”组中拿出一块新盘,这样我们在替换的时候能够比较容易的找到需要替换的盘)
7)将新的盘更改成之前的盘符,这样SQL连接的时候不会有问题。
8) Online后,对Cluster Group和应用的群集进行故障转移测试。
3.5 MSDTC盘迁移
1)将MSDCT资源和对应的磁盘都移除群集,然后添加新盘,添加MSDTC资源和配置依赖关系。这种不用关心权限。
2)采用将新盘加入,ROBOCOPY拷贝数据,然后用Repair选项替换。这种可能会有权限问题,我们可以用msdtc–resetlog命令重置权限。
此次采取第二种方案,并重置权限完成DTC盘的迁移。