El propósito de este artículo es identificar un conjunto de actividades a ser realizadas para monitorear la Base de Datos sobre la que hemos instalado SharePoint 2007. Está basado en distintos artículo de Microsoft cuyos enlaces pueden ser consultados en la sección de bibliografía.
A modo de introducción, podemos decir que el monitoreo de la Base de Datos es una actividad esencial para garantizar el correcto funcionamiento de SharePoint 2007. La principales actividades de monitoreo incluyen:
- Verificar la integridad de la base de datos.
- Desfragmentar índices.
- Configurar el factor de relleno del servidor.
- Recuperar espacio no utilizado de la base de datos.
Las tareas pueden ser realizadas mediante Transact-SQL o mediante el asistente de mantenimiento. En este artículo comentaremos las opciones de Transact-SQL. Para las opciones mediante el programa de mantenimiento, pueden consultar la página 18 del artículo http://technet.microsoft.com/en-us/library/cc262731(v=office.12).aspx.
Verificar la integridad de la base de datos
Mediante DBCC CHECKDB podemos corroborar la integridad física y lógica de la base de datos. Ejecuta varias operaciones por separado que pueden ser consultadas en este enlace: http://msdn.microsoft.com/es-es/library/ms176064.aspx.
La recomendación es no usar las opciones REPAIR a menos que sea necesario porque hayamos encontrado un problema.
En la siguiente imagen se ve un ejemplo de salida de esta operación:
Importante: no ejecutar esta operación en horario de producción por un tema de rendimiento y de bloqueos que el comando ejecuta.
Fragmentación
La fragmentación puede ser el resultado de muchas inserciones, modificaciones o eliminaciones en nuestras tablas. Cuando una tabla se fragmenta, sus índices también se fragmentan. Con el tiempo, la fragmentación puede degradar el rendimiento y utilizar en forma ineficiente el espacio.
Si bien desfragmentar tablas es posible, la desfragmentación de índices genera mejores resultados.
Un ejemplo en SharePoint de tabla que suele fragmentarse es AllDocs, en donde residen las librerías de documentos. La vista sys.dm_db_index_physical_stats nos permite determinar el estado de fragmentación de los índices de una tabla o vista específica. Pueden encontrar más información en: http://msdn.microsoft.com/en-us/library/ms188917.aspx. Se recomienda no utilizar el comando DBCC SHOWCONTIG porque será removido en próximas versiones.
Para medir la fragmentación, se recomienda evaluar la columna: avg_fragmentation_in_percent. Esta columna deberá tender a cero. Valores de 0 a 10 son aceptables.
En el siguiente ejemplo, se puede ver un resultado posible:
Dato: para obtener el ID de la base de datos usar SELECT DB_ID() AS [Database ID];
Para reducir el nivel de fragmentación se recomiendan las siguientes acciones:
Ejecutar el job Database Statistics
Este job fue modificado significativamente con el SP2 de WSS 3.0 para también reconstruir índices. En forma predeterminada se ejecuta entre las 22:00 y las 5:00 y ejecuta estas operaciones:
- Actualiza las estadísticas.
- Reconstruye todos los índices cada vez que se ejecuta. La forma depende de la versión de SQL.
Ejecutar el procedimiento almacenado de Desfragmentación.
Una vez que hemos determinado nuestros niveles de fragmentación, podemos programar este procedimiento para que se ejecute diariamente, semanalmente o mensualmente de acuerdo a nuestras necesidades. Recomendaciones:
- Ejecutarlo al menos semanalmente.
- Ejecutarlo luego de las opciones de reparación: DBCC CHECKDB REPAIR
Más información sobre este procedimiento en: http://support.microsoft.com/kb/943345/. Microsoft no puede predecir el resultado de este procedimiento cuando terceras partes han hecho cambios a la base de datos, modificado datos o incluso hacer consultas ad-hoc. Más información en: http://support.microsoft.com/kb/841057/.
Reducir fragmentación para una tabla o índice específico.
Este se puede lograr reorganizando el índice (operación en línea) o reconstruyendo el índice (en línea o fuera del línea). El nivel de fragmentación nos da una idea del método de desfragmentación a utilizar:
Configurar el factor de relleno del servidor
El factor de relleno nos permite reservar espacio para futuro crecimiento. Para muchas situaciones, el valor predeterminado 0 es óptimo, sin embargo, para SharePoint 2007 un valor de 70 a nivel de servidor es lo recomendado. Por otro lado, si bien es posible, tampoco se recomienda valores específicos para tablas o índices individuales.
Sys.indexes nos permite conocer el factor de relleno para uno o más índices: http://msdn.microsoft.com/en-us/library/ms173760.aspx. Para configurar el factor de relleno podemos utilizar spconfigure: http://msdn.microsoft.com/en-us/library/ms188787.aspx.
Recuperar espacio no utilizado de la base de datos
En SQL Server es posible contraer el espacio de los archivos de datos para remover espacio no utilizado. SharePoint no realiza esta operación automáticamente a pesar de que algunas operaciones como el borrado de un documento, una lista, una librería o un sitio pueden generar espacio en blanco.
La recuperación de espacio puede ser útil cuando tenemos operaciones frecuentes de eliminación de datos. Algunas recomendaciones:
- No programar esta operación para que se ejecute automáticamente.
- Ejecutar esta opción cuando se elimino el 50% del contenido.
- No ejecutar esta operación para la BD de configuración, la BD de contenido del Administrador de SharePoint o las SSP. Normalmente es recomendable para las bases de contenido.
- Esta operación consume recursos, se recomienda planificarla.
Para llevar adelante esta operación, se pueden utilizar los comandos DBCC SHRINKDATABASE o DBCC SHRINKFILE, Más información en http://technet.microsoft.com/en-us/library/ms190488.aspx y http://technet.microsoft.com/en-us/library/ms189493.aspx respectivamente.
Otras consideraciones
Algunas otras recomendaciones a tener en cuenta:
- Limitar la base de contenido a 100 GB, si es necesario con múltiples BDs.
- La cantidad de archivos de datos debería ser menor o igual a la cantidad de procesadores.
- Los archivos de datos deberían tener el mismo tamaño.
Más información en: http://www.mssqltips.com/sqlservertip/1777/best-practices-for-sharepoint-content-databases-in-sql-server/.
Bibliografía
- Database maintenance (Office SharePoint Server 2007): http://technet.microsoft.com/en-us/library/cc825329(v=office.12).aspx.
- Database maintenance for Office SharePoint Server 2007 (white paper): http://technet.microsoft.com/en-us/library/cc262731(v=office.12).aspx
- ¿Cómo desfragmentar las BD de SharePoint 2007?: http://support.microsoft.com/kb/943345/
- Soporte a cambios realizados en las BD de SharePoint 2007: http://support.microsoft.com/kb/841057/
- DBCC CHECKDB (Transact-SQL): http://msdn.microsoft.com/es-es/library/ms176064.aspx
- DBCC SHRINKDATABASE (Transact-SQL): http://technet.microsoft.com/en-us/library/ms190488.aspx
- DBCC SHRINKFILE (Transact-SQL): http://technet.microsoft.com/en-us/library/ms189493.aspx
- sys.dm_db_index_physical_stats (Transact-SQL): http://msdn.microsoft.com/en-us/library/ms188917.aspx
- sys.indexes (Transact-SQL): http://msdn.microsoft.com/en-us/library/ms173760.aspx
- sp_configure (Transact-SQL): http://msdn.microsoft.com/en-us/library/ms188787.aspx
- Best Practices for SharePoint Content Databases in SQL Server http://www.mssqltips.com/sqlservertip/1777/best-practices-for-sharepoint-content-databases-in-sql-server/
Herramientas
- Microsoft SharePoint Services 3.0 Management Pack for System Center Operations Manager 2007: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=14876
- Microsoft Office SharePoint Server 2007 Management Pack for System Center Operations Manager 2007: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=11090
0 comentarios:
Publicar un comentario