Mantención de Bases de Datos de Tecnologías SharePoint previa una Actualización de Versión

Si te encuentras en camino a realizar una Actualización a SharePoint 2013, o incluso recién a SharePoint 2010. Más vale la pena que le pongas la atención a este artículo.

SharePoint Database Restoration ProcessUno de los descuidos más grandes que enfrentan los administradores de Plataforma SharePoint, tiene relación con las bases de datos y su mantenimiento. A pesar de que la tarea, desde SharePoint 2010 es más liviana (porque el Health Analyzer tomó parte de la responsabilidad), no deja de ser preocupante las tareas de Mantención que se deben realizar en las bases de datos de SharePoint, más aun cuando nos enfrentamos a una Actualización (Upgrade).

Nuestra Realidad

La realidad Latinoamericana, en cuando a Implementación de Upgrade o simples Implementaciones a SharePoint 2013, es un poco más lenta que en los países del norte. Tenemos clientes que recién se están subiendo a SharePoint 2010, o incluso aquellos que desde MOSS 2007, quieren darse el salto directo a SharePoint 2013.

Frente a esta situación, vale la pena revisar los mantenimientos previos y preparaciones necesarias, en nuestras bases de Datos, para el próximo desafío de la Actualización; ya sea a 2013, desde 2010; o incluso vía un pivote (2010) desde MOSS 2007.

Desde MOSS 2007 a SP 2013

La primera gran consideración, es que no está permitida la actualización directa entre estas dos versiones. Siempre será necesario pasar por un pívote de SP2010.

A pesar de aquello, se debe considerar una preparación y mantenimiento de estas bases de datos antes de pasarlas a este pívote en SP2010.

Como en MOSS 2007 no existía ningún procedimiento automático de Mantención de las Bases de Datos, este proceso lo debemos asegurar manualmente. Una de estas mantenciones es la DEFRAGMENTACIÓN.  Ya sea en Windows SharePoint Services 3.0. o MOSS2007, las bases que se consideran como parte de esta operación son: • Base de datos de búsqueda • Base de datos de perfiles • Base de datos de contenido.

Una de las formas de preparar las bases para un Upgrade, es generar el correspondiente procedimiento de Defragmentación. La Fragmentación en Bases de Datos de SharePoint tiene una tasa alta, debido al tipo de uso.

Basado en el KB http://support.microsoft.com/kb/943345/ , aquí les presento un Procedimiento SQL de Defragmentación, que es capaz de detrminar el nivel de Fragmentación de los Indices y ejecutar la operación rectificadora. La siguiente secuencia de comandos intenta realizar una desfragmentación con conexión en primer lugar y, a continuación, se pasa a una desfragmentación sin conexión si se requiere una desfragmentación sin conexión.

CREATE PROCEDURE [dbo].[proc_DefragmentIndices]
AS
    SET NOCOUNT ON
    DECLARE @objectid int
    DECLARE @indexid int
    DECLARE @command varchar(8000)
    DECLARE @baseCommand varchar(8000)
    DECLARE @schemaname sysname
    DECLARE @objectname sysname
    DECLARE @indexname sysname
    DECLARE @currentDdbId int
    SELECT @currentDdbId = DB_ID()

    PRINT CONVERT(nvarchar, GETDATE(), 126) + ‘: Starting’

    — Loop over each of the indices
    DECLARE indexesToDefrag CURSOR FOR
    SELECT
        i.object_id,
        i.index_id,
        i.name
    FROM
        sys.indexes AS i
    INNER JOIN
        sys.objects AS o
    ON
        i.object_id = o.object_id
    WHERE
        i.index_id > 0 AND
        o.type = ‘U’

    OPEN indexesToDefrag
    — Loop through the partitions.
    FETCH NEXT
    FROM
        indexesToDefrag
    INTO
        @objectid,
        @indexid,
        @indexname
    WHILE @@FETCH_STATUS = 0
    BEGIN
        — Lookup the name of the index
        SELECT
            @schemaname = s.name
        FROM
            sys.objects AS o
        JOIN
            sys.schemas AS s
        ON
            s.schema_id = o.schema_id
        WHERE
            o.object_id = @objectid

        PRINT CONVERT(nvarchar, GETDATE(), 126) + ‘: ‘ + @schemaname + ‘.’ + @indexname + ‘ is now being rebuilt.’

        — Fragmentation is bad enough that it will be more efficient to rebuild the index
        SELECT @baseCommand =
            ‘ ALTER INDEX ‘ +
                @indexname +
            ‘ ON ‘ +
                @schemaname + ‘.’ + object_name(@objectid) +
            ‘ REBUILD WITH (FILLFACTOR = 80, ONLINE = ‘

        — Use dynamic sql so this compiles in SQL 2000
        SELECT @command =
            ‘ BEGIN TRY ‘ +
               @baseCommand + ‘ON) ‘ +
            ‘ END TRY ‘ +
            ‘ BEGIN CATCH ‘ +
               — Indices with image-like columns can’t be rebuild online, so go offline
               @baseCommand + ‘OFF) ‘ +
            ‘ END CATCH ‘

        PRINT CONVERT(nvarchar, GETDATE(), 126) + ‘: Rebuilding’
        EXEC (@command)
        PRINT CONVERT(nvarchar, GETDATE(), 126) + ‘: Done’

        FETCH NEXT FROM indexesToDefrag INTO @objectid, @indexid, @indexname
    END
    CLOSE indexesToDefrag
    DEALLOCATE indexesToDefrag

    RETURN 0
GO

Desde SP 2010 a SP 2013

Ahora, ya sea por un pivote desde 2007, o estás en proceso de actualización desde 2010, debes considerar primeramente que ya no existe el tipo de Upgrade “IN-PLACE”, por lo tanto si estabas pensando en transformar ese SP2010 en un SP 2013, directamente; te comento que debes olvidarlo. Aunque es un método sencillo, una actualización IN PLACE presenta problemas de rendimiento y control para un administrador de granjas. No había manera de controlar el orden de actualización de contenido y un error en una colección de sitios determinada podía detener todo el proceso. Por lo tanto, y con mayor razón, debemos considerar el correcto mantenimiento de las Bases de Datos, para su proceso Upgrade vías Attach Database.

Contenidos y Servicios

Una de las novedades del Upgrade de SP2010 a SP2013, es que con el método ATTACH DATABASE es posible integrar a este movimiento de Bases a alguna Aplicaciones de Servicio. Estás son:

  • Aplicación Servicio de conectividad a datos empresariales
  • Aplicación del servicio de metadatos administrados
  • Aplicación de servicio PerformancePoint
  • Aplicación de servicio de búsqueda
  • Aplicación Servicio de almacenamiento seguro
  • Aplicación del servicio de perfiles de usuario

¿Mantenimiento Automático o Manual en SP2010 DBs?

Como vimos anteriormente, tanto en WSSv3 y MOSS2007, el mantenimiento de las Bases de Datos, debía hacerse manualmente. En SP2010, el proceso es automático gracias a las Reglas de Mantenimiento, sin embargo, esto no es para todas las bases de datos.

A pesar de que algunas reglas del analizador de mantenimiento de SharePoint automatizan este proceso en las bases de SP 2010, las bases de datos que se incluyen en este mantenimiento automático son:

Base de datos de configuración

  • Bases de datos de contenido
  • Base de datos de perfiles de la aplicación de servicio de perfiles de usuario
  • Base de datos de sistemas sociales de la aplicación de servicio de perfiles de usuario
  • Bases de datos de informes de la aplicación de servicio Web Analytics
  • Bases de datos provisionales de la aplicación de servicio Web Analytics
  • Bases de datos de Word Automation Services

Esto, deja fuera a algunas de las bases de datos de Aplicaciones de Servicios, que podemos mover para el Upgrade. ¿Qué podemos hacer con ellas entonces?

En el caso de las bases de datos que no son parte de esta automatización, suelen ser bases de datos que no poseen de una gran fragmentación. En todo caso, vale la pena que se esté monitoreando que esta fragmentación no sobrepase el 30%.

En este caso necesitarás de todo tu expertise en la mantención Manual de las bases de Datos. Aquí las operaciones con ALTER INDEX, DBCC SHRINKDATABASE, DBCC SHRINKFILE y el propio Management Studio serán clave.

Pero recuerda que las bases de datos de SharePoint, no son bases cualquiera, y existen operaciones compatibles y otras no. Para ver este detalle, refiérete al KB http://support.microsoft.com/kb/841057/es-es , que se aplica a tecnologías SharePoint 2007, 2010 y 2013.

¿Ya te sientes listo para el Upgrade? Adelante!

Saludos,

About these ads

Un pensamiento en “Mantención de Bases de Datos de Tecnologías SharePoint previa una Actualización de Versión

  1. Pingback: Mantención de Bases de Datos de Tecnologías SharePoint previa una Actualización de Versión | MVPs de LATAM

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s