Cambiar el nombre del servidor conteniendo una instalación de SQLServer


Hace tiempo vi varios errores aunque en naturaleza distintos, tenían una intima relación. Esto era que el nombre del servidor donde estaba instalado SQL Server fue cambiado de nombre sin avisar al DBA (o de menos espero que así sea). La instancia aun inicia de manera normal, no tenemos problema al conectarnos o lanzar consultas.


Lo que pasa es que SQL Server toma el nombre una vez que inicia el motor pero almacena siempre el dato y es lo que normalmente consultamos con el @@SERVERNAME, aunque esto no impide el trabajo directo si impide conexiones remotas realizadas por replicación, log shipping (solo con replicación), mirror, linked servers, y jobs que usen el nombre del server, trayendo errores en ocasiones algo crípticos que no son fáciles de ver.

Esto lo podemos ver de 2 maneras distintas.

Esta opción nos traera el nombre como fue dado y de la ultima vez que se reinicio la instancia.

SELECT @@servername AS _@@servername, * 
FROM sys.servers 
WHERE server_id = 0

Mientras que esta consulta nos proporciona el nombre actual sin importar cual fue declarado.

SELECT SERVERPROPERTY ('ServerName'), SERVERPROPERTY ('MachineName')

Ahora como hacer esto, tomando como base el documento de Microsoft que esta en los links al final.

sp_dropserver <old_name>;
GO
sp_addserver <new_name>, local;
GO

Para instancia nombrada

sp_dropserver <old_name\instancename>;
GO
sp_addserver <new_name\instancename>, local;
GO

Nota: Es necesario el reinicio de la instancia de SQL Server para que el nuevo nombre sea tomado, ya que como mencionamos esto es tomado al inicio de la instancia, y esto solo afecta a SQL Server 2005 a 2014.

Ahora como vemos existen varias restricciones, y como se comento anteriormente, replicación, mirror, linked servers tendrán que ser deshabilitados y recreados antes de hacer un cambio en el nombre del servidor  y luego recreados, lamentablemente no existe otra manera de poder realizar esto.

Una ultima consideración es el hecho que named pipes, puede verse afectado por el cambio de nombre, esto lo podemos ver al final del documento.

Más información:

Comentarios

Entradas más populares de este blog

Mover indices no clustered a un nuevo filegroup