jueves, 2 de julio de 2009

Bitácora de Recuperación de un Servidor de SharePoint Server 2007 por error en los servicios de Búsqueda

Nivel: Avanzado.  Ya haya realizado recuperaciones de Servidor SharePoint 2007.

Antecedentes:

Todo empezó con el siguiente error de los servicios de búsqueda de SharePoint en el servidor.  El error era el siguiente:

Event Type:    Error
Event Source:    Office SharePoint Server
Event Category:    Servicios compartidos de Office Server
Event ID:    6482
Date:        6/26/2009
Time:        3:44:41 PM
User:        N/A
Computer:    SERVER NAME
Description:
No se pudo ejecutar el trabajo de administración del servidor de aplicaciones para la instancia de servicio Microsoft.Office.Server.Search.Administration.SearchServiceInstance (88adad9f-110e-4b6b-b166-a4ca60c522b5).

Motivo: La cadena de conexión de base de datos no está disponible. 

Detalles de soporte técnico:
System.Runtime.InteropServices.COMException (0xC0041228): La cadena de conexión de base de datos no está disponible. 
   at Microsoft.Office.Server.Search.Administration.SearchApi.RunOnServer[T](CodeToRun`1 remoteCode, CodeToRun`1 localCode, Boolean useCurrentSecurityContext, Int32 versionIn)
   at Microsoft.Office.Server.Search.Administration.SearchApi.AddApp(Role role)
   at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.InstallGathererApplicationIf()
   at Microsoft.Office.Server.Search.Administration.SearchServiceInstance.Synchronize()
   at Microsoft.Office.Server.Administration.ApplicationServerJob.ProvisionLocalSharedServiceInstances(Boolean isAdministrationServiceJob)

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

A pesar de instalar el HotFix 946517 que les reportó a mis amigos lectores no corrigió el problema.

Luego revisando mas a detalle el visor de evento encontré el siguiente error:

Event Type:    Error
Event Source:    MSSQLSERVER
Event Category:    (2)
Event ID:    17310
Date:        6/26/2009
Time:        3:51:59 PM
User:        N/A
Computer:    SERVER NAME
Description:
A user request from the session with SPID 63 generated a fatal exception. SQL Server is terminating this session. Contact Product Support Services with the dump produced in the log directory.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 9e 43 00 00 14 00 00 00   ?C......
0008: 0c 00 00 00 56 00 53 00   ....
0010: 52 00 2d 00 4e 00 50 00  
0018: 4f 00 52 00 54 00 41 00  
0020: 4c 00 00 00 00 00 00 00   .......

Este error reportan los foros que se corrige con el Service Pack 2.0 de SQL Server 2005 el problema es que en mi caso ya lo tenía instalado.  Y por si fuera poco este error crea unos Dump Files de 2Mb cada uno que en poco tiempo nos que damos sin espacio en disco en el servidor.  La única forma de aplacar este consumidor de espacio fue apagando los servicios de Search SharePoint Services desde la consola de Services.

A pesar que intente de todo e inclusive crear un nuevo Proveedor de Servicios Compartidos de SharePoint no dio resultado.

Cuando intentaba configurar la búsqueda de SharePoint me mostraba el siguiente error:

image

No habiendo otra opción decidí realizar la recuperación de la instalación de SharePoint.  Pero antes de empezar debemos de hacer una lista que verificaremos para tener todo listo.  A continuación la lista:

Que necesitamos tener para la instalación de un producto como SharePoint Server 2007.

Si asumimos que lo que no vamos a reinstalar es el servidor de Windows que por el momento la mayoría de instalaciones de mis clientes es Windows Server 2003 (STD,ENT,R2).

El software que necesitamos tener a la mano es:

Copia del directorio I386 (Por si requerimos re-instalar el IIS) de Windows Server 2003.

.Net Framework Redistributable V 2.0 y 3.0 Requerido por SharePoint y 3.5 Si utiliza soluciones personalizados que utilicen dicho Framework.

La media de SQL Server 2005 y su SP2.

La media de SharePoint Server 2007 y su SP1.

La data que necesitamos respaldar es:

  • Dado que no recuperaremos las bases de datos del Search, ni Mi Sitio o My Sites.  Solo realizaremos el respaldo de la base de datos de Contenido .
  • Copia de hojas de estilo, imágenes, animaciones en Flash guardadas en el directorio 12 hive SharePoint.
  • El Web.Config del portal normalmente tiene configuración personalizada que será bueno tener una copia.  Aunque no recomiendo el remplazo total del archivo, identifique lo que esta personalizado y vaya cambiando y revisando que no afecte su configuración.

 

El Procedimiento fue:

  1. Se desinstalo la granja de servidores con el asistente, se desinstalo el Software de SharePoint.
  2. Se desinstalo SQL-Server 2005.
  3. Desinstalación de Framework y Service Pack 2.0, 3.0 y 3.5
  4. Se Reinstaló el Framework 2.0 y 3.0.  Al instalar el 3.5 instaló el Service pack 1 de los Framework anteriores y requirió el reinicio del servidor (para que lo tome en cuenta).
  5. Se Instaló de nuevo incluyendo los servicios de Integración de SQL Server 2005 además del Motor de SQL y las herramientas Cliente. Ya que algunas opciones de SharePoint Server los requiere.
  6. Instalación y verificación del SP2 de SQL server 2005 se instaló exitosamente.
  7. Instalación del bits del SharePoint (Si tuvo algún error favor de revisar el siguiente artículo).
  8. Se instaló una nueva granja de Servidores.
  9. Se configuraron los servicios (monitoreando los eventos en el visor y no reportó ningún error).
  10. Se configuro el correo saliente (el ip del servidor de correo de salida, funcionalidad básica en SharePoint para enviar correos).
  11. Se creo la aplicación web puerto 80, para reservar dicho puerto para iniciar restaurando el contenido del portal.
  12. Se desconecto la base de datos de contenido.
  13. Se reinicio el IIS (Con línea de comando: IISreset )
  14. Se restauro la copia de la base de datos de contenido.
  15. Se conecto de nuevo a la aplicación del puerto 80 por medio de la línea de comando en el directorio 12 hive SharePoint. La línea de comando fue: ststadm.exe -o addcontentdb -url http://servername -databasename wss_content.
  16. Se modificó la línea que afecta los permisos de ejecución de los elementos Web a Full  de la siguiente forma: <trust level="Full" originUrl="" />
  17. Se agregaron las líneas personalizadas en el Web.Config en la sección <appSettings/>
  18. Se copiaron los assemblies en el directorio bin de la aplicación Web puerto 80. Generalmente esta ubicada en c:\inetpub\wwwroot\virtual directories\wss\80\bin.   
  19. Se realizó el deployment de la solución (fuera del alcance de este articulo).
  20. Puede verificar y encontrar que todo esta en donde debe en el portal.
  21. Se creo el Proveedor de Servicios Compartidos de SharePoint, colocando el mismo puerto para los sitios personales o My Sites. Advertencia no intente realizar el procedimiento para recuperara la base de contenido del portal para My Sites, no funciona, ya que los servicios compartidos en la aplicación de administración hacen referencia a la aplicación de My Sites y algunas cosas las configuran desde la administración de SSP a diferencia de la creencia que todo esta en My Sites.  Se ahorrará un error de la licencia de SharePoint a caducado y solo desconectando la granja actual y creándola de nuevo logrará eliminar dicho error. Así que no lo haga.
  22. Se agregaron los atributos personalizados para los perfiles utilizados en el portal.  Si hizo una importación completa de los perfiles del Directorio Activo y se programó para que se hiciera regularmente.
  23. Se hizo una carga del contenido de búsqueda y todo funcionó correctamente.

Eso es todo amigos, se que no inquirí en muchos detalles pero puede ver otros artículos que he escrito que si los tiene.  El propósito de este artículo fue dar un panorama general de una recuperación y dejar la experiencia registrará para guiar y prepararse para una recuperación de un portal  por errores del motor de búsqueda de SharePoint Services.

Espero les sirva,

Manolo Herrera

1 comentario:

Juan Orrego dijo...

Hola!

Este mismo error se me presento, y la solucion fue restaurar desde el ultimo backup full de la granja los servicios compartidos y quedo funcionando