How to change SQL Server parameters in a clustered environment when SQL Server is not online

Article translations Article translations
Article ID: 953504 - View products that this article applies to.
Expand all | Collapse all

On This Page

INTRODUCTION

When you use Microsoft SQL Server 2008 Configuration Manager, SQL Server 2005 Configuration Manager, SQL Server 2000 Enterprise Manager, or SQL Server 2000 Setup to change SQL Server parameters in a clustered environment, you have to make changes on the active node while the SQL Server cluster resource is online. If SQL Server is not online, you have to bring SQL Server online first. However, in some circumstances, you may be unable to bring SQL Server online.

This article describes how to change SQL Server parameters in a clustered environment when SQL Server is not online or when you cannot bring SQL Server online.

MORE INFORMATION

Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows
To change SQL Server parameters in a clustered environment when SQL Server is not online, use one of the following methods.

Method 1

Note We recommend that you try to use this method first.
  1. Click Start, click Run, type regedit, and then click OK.
  2. Locate the quorum disk. To do this, follow these steps:
    1. Locate the following registry key:
      HKEY_LOCAL_MACHINE\Cluster\Quorum
    2. The Path entry contains the path of the quorum disk. For example, the Path entry contains the following path:
      <QuorumDrive>:\MSCS
  3. Locate the GUID of the SQL Server cluster resource. To do this, follow these steps:
    1. Locate the following registry key:
      HKEY_LOCAL_MACHINE\Cluster\Resources
    2. Examine the Name column of the registry entries.

      Note Several registry entries include "GUID" in the name of the entry.
    3. For the default instance, locate the SQL Server cluster resource that includes "SQL Server" in the Name column.

      For named instances, locate the SQL Server cluster resources that include "SQL Server (<InstanceName>)" in the Name column.
  4. Locate the checkpoint file name. To do this, follow these steps:
    1. Locate the following registry key:
      HKEY_LOCAL_MACHINE\Cluster\Resources\{GUID}\RegSync
    2. In the details pane, view the checkpoint registry hives and the corresponding numbers that resemble the following:
      For the default instance
      00000004 SOFTWARE\Microsoft\Microsoft SQL Server\MSSQLSERVER

      For a named instance
      00000004 SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.X\MSSQLSERVER
      Note For a named instance, X corresponds to the instance ID.

      The number is the checkpoint file name. In this example, the checkpoint file name is 00000004.cpt.
  5. In Registry Editor, click HKEY_LOCAL_MACHINE.
  6. On the File menu, click Load Hive.
  7. In the <QuorumDrive>:\<GUID> folder, locate the checkpoint file that you found in step 4.
  8. In the Key Name box, type 1, and then click OK.
  9. Locate the following registry key to correct the invalid checkpoint registry key value:
    HKEY_LOCAL_MACHINE\1\<YourRegistryKey>
    Note The following examples correct the MSSQLSERVER checkpoint registry key:
    • Example 1
      To correct the invalid path of the Master.mdf file, follow these steps:
      1. Locate the following registry key:
        HKEY_LOCAL_MACHINE\1\Parameters
      2. Correct the
        SQLArg0
        key.
    • Example 2
      To disable the incorrectly enabled VIA protocol, follow these steps:
      1. Locate the following registry key:
        HKEY_LOCAL_MACHINE\1\SuperSocketNetLib\Via
      2. Change the value of the Enabled entry from 1 to 0.
  10. After you correct the registry key, click HKEY_LOCAL_MACHINE\1, click the File menu, and then click Unload Hive.
Note After you follow these steps, this checkpoint is fixed and is replicated to the specific node automatically during failover. You can bring the instance of SQL Server online.

Method 2

Be aware that changes to checkpointed registry keys are saved only when the associated resources are online. When the resources are not online, changes to the checkpointed keys will be overwritten by the last saved values from the checkpointed file. For more information, click the following article number to view the article in the Microsoft Knowledge Base:  
174070 Registry replication in Microsoft Cluster Server

Notes

  • Do not perform SQL cluster group failover between step 2 and step 4. Also, if you do not complete all these steps, you may experience unexpected behavior on failover.
  • For step 2 and step 4, MSSQL.x, MSQL10.x, and MSSQL10_50.x are placeholders for the respective instance ID of the instance of SQL Server. You can determine the corresponding value for the system from the value of the MSSQLSERVER registry entry in the following registry subkey: 

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\SQL\
  • For step 2 and step 4, <InstanceName> is a placeholder for the name of the instance of SQL Server. 

  1. Obtain the list of checkpointed keys by using the following command:
    cluster res /checkpoints
  2. At a command prompt, run one of the following commands to disable the cluster checkpoint for the specific registry subkey:
    • For an instance of SQL Server 2008 R2, run the following command: 

      cluster . resource "SQL Network Name (<InstanceName>)" /removecheckpoints:"Software\Microsoft\Microsoft SQL Server\MSSQL10_50.x\MSSQLSERVER"
    • For an instance of SQL Server 2008, run the following command: 

      cluster . resource "SQL Network Name (<InstanceName>)" /removecheckpoints:"Software\Microsoft\Microsoft SQL Server\MSSQL10.x\MSSQLSERVER"
    • For an instance of SQL Server 2005, run the following command:

      cluster res "SQL Server (<InstanceName>)" /removecheck: "Software\Microsoft\Microsoft SQL Server\MSSQL.x \MSSQLSERVER"
    • For the default instance of SQL Server 2000, run the following commands:

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

      cluster res "SQL Server" /removecheck: "Software\Microsoft\MSSQLServer\Cluster"

      Note You have to run the second command only when you add or remove one or more IP addresses on which SQL Server 2000 listens.
    • For a named instance of SQL Server 2000, run the following commands:

      cluster res "SQL Server (<InstanceName>)" /removecheck: "SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\MSSQLSERVER"

      cluster res "SQL Server (<InstanceName>)" /removecheck: "SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\Cluster"

      Note You have to run the second command only when you add or remove one or more IP addresses on which SQL Server 2000 listens.
  3. Change the parameter for the clustered instance of SQL Server on all nodes.
  4. At a command prompt, run one of the following commands to enable the cluster checkpoint for the specific registry subkey:
    • For an instance of SQL Server 2008, run the following command:

      cluster . resource "SQL Server (<InstanceName>)" /addcheckpoints:"HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLSERVER"
    • For an instance of SQL Server 2005, run the following command:

      cluster res "SQL Server (<InstanceName>)" /addcheck: "Software\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLSERVER"
    • For the default instance of SQL Server 2000, run the following commands:

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

      cluster res "SQL Server" /addcheck: "Software\Microsoft\MSSQLServer\Cluster"
    • For a named instance of SQL Server 2000, run the following commands: cluster res "SQL Server (

      <InstanceName>)" /addcheck: "SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\MSSQLSERVER"


      cluster res "SQL Server (<InstanceName>)" /addcheck: "SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\Cluster"

      Note The resource name "SQL Server (<InstanceName>)" may be different in your case. To confirm the resource name, start Cluster Administrator, click SQL Group, locate the SQL Server resource properties, and then determine the exact name of the resource.
  5. Bring the instance of SQL Server online.

Example output on SQL Server 2008 servers

cluster res /checkpoints

  No resource name specified.

  Listing registry checkpoints for all resources...

  Resource                     Registry Checkpoint

  -------------------- --------------------------------------------------------

SQL Network Name (<Instance name>)   'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.<INSTANCE NAME>\Cluster'

SQL Network Name (<INSTANCE NAME>)    'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.<INSTANCE NAME>\MSSQLServer'

SQL Network Name (<INSTANCE NAME>)   'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.<INSTANCE NAME>\Replication'

SQL Network Name (<INSTANCE NAME>)   'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.<INSTANCE NAME>\Providers'

SQL Network Name (<INSTANCE NAME>)   'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.<INSTANCE NAME>\SQLServerSCP'

SQL Network Name (<INSTANCE NAME>)   'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.<INSTANCE NAME>\CPE'

SQL Network Name (<INSTANCE NAME>)  'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.<INSTANCE NAME>\SQLServerAgent'

SQL IP Address 1 (<INSTANCE NAME>) None

SQL Server (<INSTANCE NAME>)  None

SQL Server Agent (<INSTANCE NAME>) None

C:\Windows\system32>cluster . resource "SQL Network Name (<INSTANCE NAME>)" /removecheckpoints:"Software\Microsoft\Microsoft SQL Server\MSSQL10.<INSTANCE NAME>\MSSQLSERVER"

Removing registry checkpoint 'Software\Microsoft\Microsoft SQL Server\MSSQL10.EI

PRPTDB\MSSQLSERVER' for resource 'SQL Network Name (<INSTANCE NAME>)'...

REFERENCES

For more information about how to configure server startup options in SQL Server Configuration Manager, visit the following Microsoft Developer Network (MSDN) Web site:
http://msdn2.microsoft.com/en-us/library/ms345416.aspx
For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base:
912397 The SQL Server service cannot start when you change a startup parameter for a clustered instance of SQL Server 2000 or of SQL Server 2005 to a value that is not valid
244980 How to change the network IP addresses of SQL Server failover cluster instances

Properties

Article ID: 953504 - Last Review: May 16, 2011 - Revision: 2.0
APPLIES TO
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
Keywords: 
kbpubtypekc kbinfo kbhowto KB953504

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com