I recently had the need to move the MSDTC for a cluster to a new SAN drive. It’s a quite simple thing to do, but you can’t redirect the MSDTC resource to a new drive. Let’s just walk through the basic steps.
The first thing you need to do is get the new drive added to the cluster and put into the proper group. If the drive is being presented from a SAN and you have multiple paths to that SAN, then you will need to setup whatever multi-pathing software you have. If you’re not sure, then an easy test is to open Window Disk Management and see how many new drives are there. If there are more drives there than you are supposed to have, then you need to setup your multi-pathing. Once you get that setup and reboot, you should now see the correct number of drives. If you are on a cluster, you need to do this on each node in the cluster.
Now that your drives are correctly presented to the OS, it’s time to bring them online and format them. You can do this from the node in the cluster that your services are currently running on and you only have to do this on that one node. Right click the drive in Windows Disk Management and select online. Now that the drive is online you need to right click it again and select initialize. Finally you need to format it by right clicking the drive and selecting New Simple Volume. Walk through the wizard giving it a drive letter and formatting it with a label. Don’t worry about what drive letter you assign as we can change that later.
You are now ready to add the drive to the cluster. Open the Cluster Manager MMC, expand the cluster, and select storage in the left hand pane. In the right hand pane you will see all of your cluster groups with their assigned storage below the group. Select Add Disk in the actions pane and select the disk to add. You will now see a group called Available Storage where you will find your new drive. Right click the drive to which you plan to move the MSDTC, go to more options, and select Move this resource to another service or application. You want to select your MSDTC group.
At this point everything is now setup and ready for the move. Unfortunately you can’t simply change the MSDTC resource object to point to a new drive. You have to delete the resource and create a new one. In Cluster Manager, expand your MSDTC group, right click the MSDTC resource and select Delete. In the actions pane on the right, click Add Resource and under More Resources select Add Distributed Transaction Coordinator. Do not bring the resource online yet as we need to define its dependencies. Double click the resource and go to the dependencies tab. Here you need to make it dependent on both the network name and the new cluster disk you just added. Click OK and bring the resource online. You have now successfully moved your cluster MSDTC to another drive, but let’s verify it. Open Windows explorer and view the new drive. You should now see a folder called MSDTC, which verifies the move.
The last thing you want to do is some clean up. Go back into Cluster Manager and select the Storage node in the left hand pane. Under your MSDTC group, right click the old MSDTC disk and select Remove. This will remove the old storage drive from the cluster group and put it back into the available storage group.
If you want to reuse the old drive letter (Typically M:\), then right click the old drive under the Available Storage group and select Change Drive Letter. Now you can right click the old drive and select delete, which will remove it from the Available Storage group in Cluster Manager. In order to assign your new drive to the previously used drive letter, simply right click it in Cluster Manager and select Change Drive Letter. The old drive letter will now be available, so simply select it. After changing the drive letter you now need to restart the MSDTC group.
More Information – If you are moving your cluster MSDTC drive you might want to check out the following posts:
How to move cluster Quorum drive
How to move the Master database
How to move the Model database
How to move the MSDB database
How to move the TempDB database
SQLAgent Error 435