jueves, 27 de marzo de 2008

No se puede mover un recurso a un node del Cluster

Hola!

Este es mi primer entrada aca en mi blog, les voy a explicar el problema que trabajé.

Problema:

No se podia mover un recurso de un nodo a otro node de un cluster.

Al intentar mover el recurso obtuvia el siguiente mensaje de error:

Event Type: Error
Event Source: CRUZ

Event Category: (3)
Event ID: 17052
Date: 3/19/2008
Time: 12:16:30 PM
User: N/A
Computer: CAFE
Description:
[sqsrvres] StartResourceService: StartService (CRUZ) failed. Error: 41d

Entono:

Cluster de 3 nodos Activos
Windows 2003 Enterprise x64 SP1
SQL 2000 SP4

Troubleshoot y Resolucion del problema:

El error 0x41d (1053) significa que el servicio no inicio en el tiempo esperado.

Recientemente el cliente habia instalado el Service Pack 4 de SQL 2000.

Controlamos las versiones a traves del registro y se mostraba como SP$.

Controlamos los binarios de SQL en el servidor y encontramos que eran distintos al que tiene el servidor en donde la instancia esta funcionando.

C:\Program Files (x86)\Microsoft SQL Server\CRUZ\Binn
La mayoría son 200.80.194.0 (SQL sin service pack)

Servidor: CAFE
Program Files (x86)\Microsoft SQL Server\CAFE\Binn
Los archivos son 2000.80.2039.0 (Service Pack 4)

Controlamos los logs de la actualizacion del service pack y encontramos que se habian presentado problemas.

Archivo SQLSP.log:

CThreadPool::RunUntilCompleteHlpr WaitForMultipleObjects returned: 3010
CThreadPool::RunUntilCompleteHlpr signaled thread [0xe4]
Thread [0xe4] exit code: [0xbc2]
CRemoteProcess::RunUntilComplete [0xf0] exit code: -12
Remote process exit code was '-12' (CRUZ).

...
06:24:29 End Action : Run setup on cluster nodes
06:24:29 One or more errors occurred while running remote setup on the clustered machines. 06:25:30 Setup failed to perform required operations on the cluster nodes.

Dado que necesitamos actualizar solo los binarios procedimos a seguir la siguiente nota:

905286 FIX: You receive an error message when you run SQL Server Setup to install SQL Server 2000 Service Pack 4 in binary-only mode on a failover cluster
http://support.microsoft.com/default.aspx?scid=kb;EN-US;905286

Reemplazamos el Sqlsui.dll dentro de los archivos del Service Pack 4

Pera he aquí la parte importante.

Dado que solamente necesitamos actualizar los binarios de SQL debemos agregar la siguiente llave de registro.

Esta llave llamada Need_Sp_Key nos permite instalar localmente el Service Pack sin necesidad que se corra desde el nodo donde esta activa la instancia (esto lo realizamos solamente porque ya se habia corrido la instalacion y habia finalizado)

Nos dirigimos a HKLM\SOFTWARE\MICROSOFT\MICROSOFT SQL Server\80\

Creamos la llave: Need_Sp_Key
Value: AddNodeInfo
Data Type: REG_SZ
String: Virtual Server Name , Instance Name

Procedimos a instalar el Service Pack 4 y terminó exitosamente.

Controlamos los binarios y figuraban con la versión 2000.80.2039.0, lo cual es correcto.

Realizamos la prueba de mover el recurso y se movió correctamente. :)

Espero que les sea util,

Saludos !