Add/Remove Checkpoints manually on a Cluster

I had blogged about the Cluster Service Checkpoint Manager sometime back. One of the questions that I recently came across made me write about Checkpoint one more time.

Let us consider this example. On a SQL Server instance running on Clustered Environment, a change in the configuration was done. Post that change the SQL Server instance does not come up. Suppose the path of master database was wrongly entered. Since the instance is running in Clustered Environment the Checkpoint Manager will automatically propagate these changes to the other nodes on the cluster. The master database details are stored in the registry as in the below screenshot.

The changes done to the master database path were rolled back, but due to some reasons the changes are reflecting on the other nodes. Apart from the Active Node all the other nodes display the old value in the registry.

In this case the cluster.exe comes to the rescue. Using this utility the already checkpointed values can be deleted and the new checkpoint can be forced. For this example the below command can be used.

Removing the Checkpoint

cluster res "SQL Server" /removecheck: "Software\Microsoft\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQLSERVER"

Adding the Checkpoint

cluster res "SQL Server" /addcheck: "Software\Microsoft\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQLSERVER"

In most of the cases, the Checkpoint Manager does a great of syncing the changes across all the nodes. However this command is good to have in one’s arsenal for the worst case scenario.