SharePoint 2007 trajo con sigo un nuevo amigo Shared Service Provider o SSP el cual no continuó en la siguiente versión SharePoint 2010, y una razón muy importante fue porque este servicio compartía muchas funcionalidades; entre ellas Perfiles de Usuario, Búsqueda, Audiencias, Catalogo de Datos del Negocio o BDC, estadísticas de uso de sitios y de la búsqueda, esto lo hacia poco escalable y muy dependiente entre sus funcionalidades si uno fallaba podía afectar a los demás o al recuperar uno afectaba al resto. Y eso es lo que me sucedió la búsqueda no respondía, así que tuve que crear un nuevo proveedor de servicios compartidos, migrar las aplicaciones a este nuevo SSP y configurar de nuevo Perfiles, Búsqueda y el resto de funcionalidades, pero perdí las estadísticas de uso del sitio del SSP anterior, entonces me pregunté que tan difícil podría ser actualizar esta información manualmente vía T-SQL a nivel de base de datos porque al final era tablas con información, y no pensaba que podría estar corrompiendo el SharePoint ya que es información estadística y además en el pasado revisando las bases de datos de SharePoint especialmente las de contenido no tienen integridad referencial o triggers que me preocuparán ya que generalmente son tablas con llaves primarias auto numéricos o de números de identificación única y una buena cantidad de procedimientos almacenados. Y sabes amigo lector, estaba en lo cierto, la suerte estaba de mi lado, solo me tenía que preocupar de actualizar las tablas en un orden lógico relacional y percatarme de no intentar insertar la llave cuando es un auto numérico.
Antes de empezar por favor lea detenidamente el siguiente descargo de responsabilidad:
Este método no es soportado ni recomendado por Microsoft, es una solución alterna para resolver el problema de recuperar las estadísticas de uso del sitio de un proveedor de servicios compartidos corrompido.
Primero lo primero, la base de datos donde se almacena las estadísticas de uso de los sitios de SharePoint esta en la base de datos del SSP que su nombre sugerido es SharedServices1_DB.
Las tablas y el orden de actualización que vamos obtener la información y actualizarla en la nueva base de datos son las siguientes:
ANLDay
ANLHistoricalSiteUsage
ANLHistoricalWebUsage
ANLResource
ANLUser
ANLHit
ANLShadowResource
ANLWeb
El procedimiento a seguir entonces es insertar la información de estas tablas en el nueva base de datos SSP de la siguiente forma:
--Se registra casi todas las columnas de la tabla menos la llave primaria que es auto numericainsert into [Base Datos SSP Nuevo].dbo.ANLDay(DayId,ResourceId,ResourceId,UserId,ReferrerResourceId)selectDayId,ResourceId,ResourceId,UserId,ReferrerResourceIdfrom [Base Datos SSP Anterior].dbo.ANLDay--Se registra casi todas las columnas de la tabla menos la llave primaria que es auto numericainsert into [Base Datos SSP Nuevo].dbo.ANLHistoricalSiteUsage(DayId,ResourceId,ResourceId,UserId,ReferrerResourceId)selectDayId,ResourceId,ResourceId,UserId,ReferrerResourceIdfrom [Base Datos SSP Anterior].dbo.ANLHistoricalSiteUsage--Se registra casi todas las columnas de la tabla menos la llave primaria que es auto numericainsert into [Base Datos SSP Nuevo].dbo.ANLHistoricalWebUsage(DayId,ResourceId,ResourceId,UserId,ReferrerResourceId)selectDayId,ResourceId,ResourceId,UserId,ReferrerResourceIdfrom [Base Datos SSP Anterior].dbo.ANLHistoricalWebUsage--Se registra casi todas las columnas de la tabla menos la llave primaria que es auto numericainsert into [Base Datos SSP Nuevo].dbo.ANLResource(WebAppGuid,SiteGuid,WebGuid,DocName,FullUrl,HostDns)selectWebAppGuid,SiteGuid,WebGuid,DocName,FullUrl,HostDnsfrom [Base Datos SSP Anterior].dbo.ANLResource--Se registra casi todas las columnas de la tabla menos la llave primaria que es auto numericainsert into [Base Datos SSP Nuevo].dbo.ANLUser (UserName)selectUserNamefrom [Base Datos SSP Anterior].dbo.ANLUser--Se registra casi todas las columnas de la tabla menos la llave primaria que es auto numericainsert into [Base Datos SSP Nuevo].dbo.ANLHit(DayId,ResourceId,UserId,ReferrerResourceId)selectDayId,ResourceId,UserId,ReferrerResourceIdfrom [Base Datos SSP Anterior].dbo.ANLHit-- todas las columnas son actualizadas ya que no tiene una lleve auto numericainsert into [Base Datos SSP Nuevo].dbo.ANLShadowResourceselect *from [Base Datos SSP Anterior].dbo.ANLShadowResource-- todas las columnas son actualizadas ya que no tiene una lleve auto numericainsert into [Base Datos SSP Nuevo].dbo.ANLWebselect*from [Base Datos SSP Anterior].dbo.ANLWeb
Luego se podrá revisar la información desde la interfaz Web de SharePoint a través de la opción Acciones del Sitio, Configuración del Sitio, Informe de Uso de la colección de sitios o bien del sitio.
En este artículo vimos que es posible actualizar manualmente las estadísticas de uso de los sitios de SharePoint 2007 actualizando la base de datos SharedServices1_DB o equivalente, también es importante que no es una solución soportada y recomendada por Microsoft así que esta por su propia cuenta y riesgo. Que según lo realizado no afecto en nada el funcionamiento de SharePoint y como indique al principio las tablas de SharePoint no tiene integridad referencial por lo que es muy sencilla su actualización manual. Por favor amigo lector no lo estoy motivando para actualizar el contenido de SharePoint que esto sería demasiado riesgoso sino para las estadísticas de SharePoint 2007 es una solución alternativa para una recuperación necesaria para la información que es útil para los usuarios acerca del uso de sus sitios.
SharePoint4Fun!,
Juan Manuel Herrera Ocheita
No hay comentarios.:
Publicar un comentario
Favor dejar su correo electrónico para poder responder el mensaje.
Nota: sólo los miembros de este blog pueden publicar comentarios.