jueves, 3 de marzo de 2011

Renombrando instancias en Microsoft SQL 2005

Pues hoy aprenderemos como renombrar una instancia de servidor de base de datos utilizando como plataforma el Microsoft SQL 2005. Es algo que quizas ya hayan hecho muchos en otras versiones y que, en los personal, a mi jamás me habia presentado problema alguno. Salvo quizás por este caso en Sql Server 2000.

El escenario es el siguiente: Se tiene un servidor de bases de datos al que llamaremos coloquialmente Guarro-DB durante su fase de instalación, obviamente una vez que se vaya a un entorno productivo ya deberá tener un nombre menos extravagante. La cuestión es que una vez que hayamos hecho el cambio de nombre por digamos NoTanGuarro-DB nuestro servidor va ser un absoluto quilombo ya que internamente seguirá apareciendo el nombre anterior causando que las aplicaciones fallen. Esto lo pueden comprobar accediendo al query analizer y ejecutando lo siguiente:

exec sp_helpserver

Cuyo resultado, en nuestro caso seria lo siguiente:



Es probable que se presenten fallas tratando de acceder a este servidor desde cualquier aplicación que extraiga datos directamente o bien a través de un vinculo (Linked Server). Para evitar tener que reinstalar el SQL desde cero y dejar todo correctamente configurado se puede ejecutar el siguiente workaround:

Vamos al servidor y comprobamos que todos los servicios de SQL esten funcionando. Esto es primordial porque de lo contrario no podremos acceder a nuestra información. Posteriormente en una ventana de query analizer ejecutamos estas sentencias.

sp_dropserver 'Guarro-DB'

Esta instrucción eliminará la referencia al nombre 'Guarro-DB' de la tabla de servidores conocidos, lo cual es básicamente nuestro problema.

sp_addserver 'NoTanGuarro-DB', local

Con esta sentencia agregaremos el nuevo nombre de la instancia como el servidor local y lo siguiente es esperar que todo salga bien porque ya conocemos como se las gasta Microsoft en estos casos.

Si en este momento ejecutamos de nuevo la sentencia exec sp_helpserver o un Select @@servername quizas ya veamos el nombre correcto pero nuestras aplicaciones no funcionarán hasta que hayamos reiniciado el servidor.

Puede revisar un caso similar aqui publicado por Azimut, quien realmente se merece el credito por la solución y también pueden revisar la documentación del sp_addserver y del sp_dropserver

Finalmente por lo que he podido comprobar revisando los servicios y los logins aún quedan algunos que hacen referencia hacia el nombre de instancia anterior. Las aplicaciones ya funcionan sin problemas pero es seguro que cuando menos lo espere se tengan problemas por lo que la mejor solución, si pueden tener una ventana de tiempo y los respaldos necesarios, es reinstalar de nuevo SQL Server ya con el nombre de la instancia definitiva.

Paz.

1 comentario:

k@ dijo...

ai que el mostro no ha postiado nada desde la ultima vez