Gromming de la base SystemCenterReporting en MOM 2005
En MOM 2005 (Microsoft Operations Manager 2005), existe una forma de determinar el funcionamiento circular de la base de datos, denominada Grooming.
El Grooming, indica la cantidad de días que debe ser retenido un dato en la base de datos. Este valor, accesible desde la interfaz de administración, puede ser diferente para cada tipo de datos, y puede ser modificado via la interfaz en cualquier momento.
Este Grooming, también se aplica a la base de reportes, sin embargo, en el caso de la base de datos de Reportes, el valor se establece al momento de la instalación y para ser modificado se requiere algo de conocimiento de SQL, ya que no hay interfaz GUI que nos permita alterar estos valores.
Que tablas deberían afectarse con el valor de Grooming en SystemCenterReporting ?
No todas las tablas están afectadas por el valor de grooming, ya que solo algunas de ellas almacenan datos, el resto son tablas relacionales como por ej "tipos de datos".
Las tablas para las cuales se debe tener en cuenta el Grooming son:
- SC_AlertFact_Table
- SC_SampledNumericDataFact_Table
- SC_EventParameterFact_Table
- SC_AlertToEventFact_Table
- SC_EventFact_Table
- SC_AlertHistoryFact_Table
Los nombres de las tablas son claros, lo que exime la explicación del contenido de cada una de ellas..
Verificación del valor de grooming.
Como se indicó, cada tabla puede tener un valor de Grooming diferencial, sin embargo, al instalar, se aplica un único valor para todas ellas, por defecto, 395 (o sea 1 año y 30 días).
Para verificar que valor de grooming tiene la tabla, debemos realizar los siguientes pasos.
- Iniciar el Administrador SQL
- Conectarnos a la base "SystemCenterReporting"
- Iniciar una nueva Query con el siguiente código
select cs.cs_tablename 'SC_SampledNumericDataFact_Table',
wcs.wcs_groomdays 'Groom Days' from warehouseclassschema wcs
join classschemas cs
on cs.cs_classID = wcs.wcs_classID
where cs.cs_tablename = 'SC_SampledNumericDataFact_Table'
and wcs.wcs_mustbegroomed = 1
- Y repetir la operación para cada una de las tablas

Cambio de valor de grooming.
Si deseamos cambiar el valor de Grooming, por considerarlo muy alto o muy bajo, debemos valernos de un Stored Procedure de la base denominado "p_updategroomdays" y entonces realizar los siguientes pasos.
- Iniciar el Administrador SQL
- Conectarnos a la base "SystemCenterReporting"
- Iniciar una nueva Query con el siguiente código
exec p_updategroomdays 'NombreDeTabla', DíasARetener
- Y repetir la operación para cada una de las tablas, donde NombreDeTabla es reemplazado por el nombre de la tabla en cuestión, y DíasARetener por el factor de grooming deseado.
Ahora bien, este trabajo no finaliza aquí, ya que los datos siguen estando en la base, es decir si bien fueron "eliminados" el tamaño de los archivos de la base no cambiará hasta tanto no ejecutemos el "shrink" correspondiente. El "shrink" puede hacerse desde la interfaz gráfica o bien desde linea de comandos, en este último caso sería:
dbcc shrinkfile(REPLOG,2)
BACKUP LOG SystemCenterReporting WITH TRUNCATE_ONLY
dbcc shrinkfile(REPDATA,2)
Los archivos de base de datos puede crecen considerablemente, sin embargo no siempre es una buena idea cambiar el factor de Grooming a un factor menor, esta decisión debe ser tomada considerando la importancia de la información de análisis y tendencias que se desestima al achicar el Grooming.
|