Depuración de Bases de Datos Project Server 2010

Project Server 2010, cuenta con 4 bases de datos:

  • Draft: La cual alberga la versión “working” del cronograma, en esta base de datos encontraremos el cronograma que estamos editando.
  • Published: La cual alberga la versión publicada del cronograma, en esta base de datos encontraremos los cronogramas que hemos dado la opción de publish.
  • Reporting: Esta base de datos se actualiza con la opción de publicar y nos da una copia del cronograma para los diferentes reportes que vamos a realizar.
  • Archive: Esta base almacena copias del cronograma según la cantidad de copias que hayamos indicado.

Cuando un usuario crea un cronograma este inicialmente se encuentra en una versión de draft, hasta que este le de publish, se replicara en publish y en reporting, y hasta que nuestro proceso de archivado se ejecute se vera en la base de archive.

Cuando se borra un proyecto este normalmente se borra de draft, publish y reporting, sin embargo para borrarlo de archive se debe hacer un borrado por aparte, específicamente apuntando a esta base.

Mediante el siguiente script vamos a consultar las 4 bases de datos para determinar su sanidad:

SELECT [PROJ_NAME],MAX(DBARCHIVE) AS DBARCHIVE,MAX(DBDRAFT) AS DBDRAFT,
 MAX(DBPUBLISHED) AS DBPUBLISHED,MAX(DBREPORTING) AS DBREPORTING,
COUNT([PROJ_NAME]) AS CANTIDAD
FROM (
SELECT [PROJ_NAME],
 CASE WHEN DB = 'Archive' THEN 'X' ELSE '' END AS DBARCHIVE,
 CASE WHEN DB = 'Draft' THEN 'X' ELSE '' END AS DBDRAFT,
 CASE WHEN DB = 'Published' THEN 'X' ELSE '' END AS DBPUBLISHED,
 CASE WHEN DB = 'Reporting' THEN 'X' ELSE '' END AS DBREPORTING
 FROM (
SELECT [PROJ_NAME],'Archive' AS DB
FROM [ProjectServer_Archive].[dbo].[MSP_PROJECTS]
UNION
SELECT [PROJ_NAME],'Draft' AS DB
 FROM [ProjectServer_Draft].[dbo].[MSP_PROJECTS]
UNION
SELECT [PROJ_NAME],'Published' AS DB
 FROM [ProjectServer_Published].[dbo].[MSP_PROJECTS]
UNION
SELECT [ProjectName],'Reporting' AS DB
 FROM [ProjectServer_Reporting].[dbo].[MSP_EpmProject]
) Q GROUP BY [PROJ_NAME],DB
) R GROUP BY [PROJ_NAME]
HAVING COUNT([PROJ_NAME]) < 4
ORDER BY CANTIDAD,[PROJ_NAME]

La idea es que un cronograma que se encuentra en las 4 bases de datos, es un cronograma correcto, si un cronograma solo se encuentra en draft y archive es un cronograma en working, lo cual no debe levantar sospechas si el usuario lo tiene en working durante mucho tiempo, porque tal vez lo creo sin darse cuenta.

Si un cronograma esta en draft, publish, reporting, posiblemente es porque no se ha archivado. Y si solo se encuentra en archive, es que el cronograma se borro pero se dejo el archivado, este se debe revisar durante cierto tiempo para no archivar cronogramas que del todo no va a ser necesario recuperar.

Si no se cumplen ninguna de las anteriores configuraciones, debemos investigar respecto al cronograma, para identificar que no sea un cronograma corrupto.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s