Sql-server – Remove an IP address from server config

configurationNetworksql-server-2008-r2

What is the safe way to remove an old IP address from SQL Server configuration?

The scenario is, I have a server with 2 NIC's that should have been configured for teaming but weren't at the time SQL was installed. Each had a different IP so SQL picked up on that and added each IP to its configuration.

The NICs are now teamed and the box is down to a single IP. I want to remove from SQL configuration the IP that is no longer assigned to the server. I don't want to just deactivate it, but rather I want to completely remove it.

Is there a safe way to do this? Or does one just delete the keys under HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.[Instance Name]\MSSQLServer\SuperSocketNetLib\Tcp\ related to the IP in question and restart?

Best Answer

Having searched quite a bit and come up empty I decided to just go ahead and remove the registry keys for the IP address I wanted to delete from the configuration.

Steps:

  1. Backup the registry key HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\
  2. Stop SQL services
  3. Go to HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.[Instance Name]\MSSQLServer\SuperSocketNetLib\Tcp\ (must do this for each SQL instances on the server)
  4. Find the IP# key that contains the IpAddress value of the address you want to remove where # is a number from 1 to the number of IP addresses SQL found on your machine during install
  5. Delete the IP# key found in step 4
  6. If the number in the keyname is not the last one, rename the remaining IP# keys to be sequential starting with 1.
  7. Restart SQL Services

After doing this the old IP address was no longer available in SQL Server Configuration Manager and SQL Server no longer tried to listen on that IP address. There were no longer any "Listening on [old address]" entries in the SQL Log and netstat -an showed no listeners as well.