martes, 9 de marzo de 2010

Es recomendable borrar el Log del MS SQL Server?

Hace un par de día un lector muy amable me explicaba que tenía unos inconvenientes en la empresa donde labora porque la empresa está creciendo demasiado rápido y la base de datos está ocupando mucho espacio en disco, entonces llegan las pregunta y mis sugerencias:

1- ¿Habrá una manera de que se guarde el respaldo y que se pueda ir disminuyendo el tamaño que se queda en el disco? Puedes usar el comando DBCC SHRINKFILE o DBCC SHRINKDATABASES para disminuir los tamaños de los archivos en base de datos después de ejecutar tu backup. Ver ejemplo más abajo.

USE DatabaseName
GO
DBCC SHRINKFILE(<TransactionLogName>, 1)
BACKUP LOG <DatabaseName> WITH TRUNCATE_ONLY
DBCC SHRINKFILE(<TransactionLogName>, 1)
GO

2- ¿Cada cuando tiempo me recomienda generar mi respaldo del Log para un servidor que recibe diariamente un tamaño de información muy grande? una opción es poner el log en 0 (no lo recomiendo, pero cuando hay problemas de espacio y respaldo de backup, se puede hacer)


BACKUP LOG <DatabaseName>
TRUNCATE LOG <DatabaseName>, 10

Ahora, esto es algo que hago y no me gusta recomendar, si su empresa tiene inconvenientes con espacios en disco, trate de presionar para que inviertan en más medios de almacenamiento, porque si por casualidad de la vida se corrompe una base de datos, puede perder hasta un día de información, y eso puede ser costoso para la empresa como para usted. Por lo que recomiendo exija que espacios en discos para sus backups, de lo contrario explique claramente (si se puede por escrito en las políticas de backup), lo que puede pasar en caso de ocurrir un contratiempo como el que le acabo de explicar.

Un punto, las políticas de backups hay que tratar de tenerlas siempre visible e impresas, y que la alta gerencia tenga conocimiento de la misma, para que no exista dudas si ocurre un mal entendido.

1 comentario:

Linney dijo...

Hola buenos días, de nuevo molestandote, tengo una duda,¿Se puede generar el respaldo del Log pero por separado? le explico, cuando se va a respaldar el Log de transacciones, te muestra todos los Logs que se han generado, pues yo quisiera que se guardara cada respaldo pero en carpetitas, por ejemplo el de las 9 de la mañana en una carpeta, el de las 10 en otra, etc. Para que cuando yo vaya a respaldar solo tome la carpeta que necesito, espero haberme explicado.