
Buenas,
desde hace unos días un servidorcito de Team Foundation Server estaba dando algunos problemas y lanzando Warnings que nadie acusaba.
Como dice el dicho "en casa de herrero, cuchillo de palo", y es por eso que cuando llegué al server me encontré con casi nada de espacio en el disco ya que los logs de las bases de datos de Team Foundation Server 2005 estaban por las nubes.
Las tareas de mantenimiento de las bases de datos de TFS, no funcionaban correctamente desde hace tiempo y por eso este problema. Parte de la responsabilidad era mía, y como dijo el negro Fontanarrosa: "yo no soy vago, sólo un poco tímido para el esfuerzo"; y además de tímido con menos memoria que un pez globo. No recordaba el par de líneas para "truncar" el log y así ahorrar un poco de espacio.
Por suerte, el amigo Jesus, acudio a mi rescate con
1 -- Database_XXX
2 BACKUP LOG Database_XXX WITH TRUNCATE_ONLY
3 DBCC SHRINKDATABASE (Database_XXX)
donde con el comando BACKUP LOG realizamos una copia de seguridad del log y además especificamos que no queremos un resguardo del Log con TRUNCATE_ONLY. (ojo, que esto no es recomendado por nuestros amigos de Microsoft ya que se pierde el histórico !!!). Finalmente, utilizamos BBCC SHRINKDATABASE para reducir el tamaño de los archivos de datos y de log de la base de datos especificada.
A partir del ejemplo anterior, el script completo para procesar los datos de los logs de las bases de datos de Team Foundation Server 2005, sería el siguiente:
1 -- STS_Config_TFS
2 BACKUP LOG STS_Config_TFS WITH TRUNCATE_ONLY
3 DBCC SHRINKDATABASE (STS_Config_TFS)
4 -- STS_Content_TFS
5 BACKUP LOG STS_Content_TFS WITH TRUNCATE_ONLY
6 DBCC SHRINKDATABASE (STS_Content_TFS)
7 -- TFSActivityLogging
8 BACKUP LOG TFSActivityLogging WITH TRUNCATE_ONLY
9 DBCC SHRINKDATABASE (TFSActivityLogging)
10 -- TFSBuild
11 BACKUP LOG TFSBuild WITH TRUNCATE_ONLY
12 DBCC SHRINKDATABASE (TFSBuild)
13 -- TFSIntegration
14 BACKUP LOG TFSIntegration WITH TRUNCATE_ONLY
15 DBCC SHRINKDATABASE (TFSIntegration)
16 -- TFSVersionControl
17 BACKUP LOG TFSVersionControl WITH TRUNCATE_ONLY
18 DBCC SHRINKDATABASE (TFSVersionControl)
19 -- TFSWareHouse
20 BACKUP LOG TFSWareHouse WITH TRUNCATE_ONLY
21 DBCC SHRINKDATABASE (TFSWareHouse)
22 -- TFSWorkItemTracking
23 BACKUP LOG TFSWorkItemTracking WITH TRUNCATE_ONLY
24 DBCC SHRINKDATABASE (TFSWorkItemTracking)
25 -- TFSWorkItemTrackingAttachments
26 BACKUP LOG TFSWorkItemTrackingAttachments WITH TRUNCATE_ONLY
27 DBCC SHRINKDATABASE (TFSWorkItemTrackingAttachments)
28
Obviamente, con un poco de trabajo se puede realizar un JOB super poderoso, o un script que lo haga automáticamente recorriendo las DBs de todo el server, etc. Pero a mi, este post me sirve de recuerdo de la sentencia SQL y de advertencia para revisar los warnings.
Descarga del Script SQL.
Saludos @ La Finca
El Bruno