Con la llegada de 2008 la tan socorrida solución para truncar el log mediante BACKUP LOG WITH NO_LOG / TRUNCATE_ONLY desaparecerá.
¿Cuando se recurría a este comando? Normalmente cuando alguien encontraba una base de datos parada por problemas de espacio en disco provocados por un fichero de log de gran tamaño. La “solución” sin embargo tiene la contrapartida que lo que estamos haciendo es descartar todo el log de transacciones desde el último backup realizado. Las implicaciones pueden ser tan serias como perder todos aquellos cambios realizados desde el último backup. Es por ello que si lanzamos dicho comando el siguiente que deberíamos lanzar sería un comando de backup de la base de datos. Aún así, no es una práctica recomendada pues si algo ocurre durante el proceso de backup perderemos todos los cambios desde el último backup.

Como alternativa a este proceso tenemos la realización de un backup del log de transacciones seguido de una operación de recuperación de espacio. Debemos de tener en cuenta que la reducción del tamaño de los ficheros no se realiza normalmente de forma automática (salvo que activemos la opción AUTO_SHRINK en la base de datos). Por ello utilizaremos DBCC SHRINKDATABASE o DBCC SHRINKFILE para realizar esta recuperación de espacio de forma manual tras el backup del log. Utilizar la opción AUTO_SHRINK en la base de datos no se recomienda en entornos de producción pues puede resultar contraproducente si la operación se lleva a cabo cuando el sistema está bajo carga.
A título personal, siempre he visto esas operaciones de truncado de log bastante “peligrosas” por lo que apoyo esta decisión de eliminarlas 🙂 La alternativa en 2008 para aquellos casos en los que no sea posible realizar un backup será conmutar la base de datos a modo de recuperación sencillo.
El dimensionamiento de los ficheros de datos es importante pero no podemos dejar de lado el de los ficheros de log. Debemos intentar estimar el tamaño necesario para el log y vigilar el crecimiento de éste pues puede significar que tenemos algún problema (por ejemplo una transacción que quedó abierta, falta de backups del log, problemas con las replicaciones/ mirroring, etc.) Un comando útil en este caso es DBCC SQLPERF (LOGSPACE) que nos devuelve el tamaño de los ficheros de log de todas las bases de datos así como el porcentaje de uso de éstos. Tanto tamaños anormalmente altos como bajos nos deberían preocupar. Si el tamaño es muy alto podemos estar a punto de llegar al límite de uso con el grave problema que conlleva. Si es muy bajo es posible que tengamos configurado el log para que crezca de forma dinámica y en algún momento puntual alcanzara un tamaño muy grande por algún problema ya solucionado (comunicaciones, poca frecuencia de backups, etc.)
Finalmente tener en cuenta un punto importante, y muchas veces no considerado: No siempre necesitamos el modelo de recuperación completo. Si no necesitamos el compromiso de poder recuperar el sistema hasta un punto exacto en el tiempo (por ejemplo en una base de datos de pruebas, con muy pocas escrituras) podemos utilizar el modo de recuperación simple y evitar estas situaciones.
0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like
Leer más

El tiempo es oro: Cómo predecir series temporales con datos de muchas dimensiones con R – SolidQ Summit 2017

Saber cuánto vamos a vender mañana o el año que viene es el sueño dorado de muchos analistas de negocio. Sin embargo, no nos conformamos con un número, sino que necesitamos predicciones ajustadas a todos los niveles, detalles y segmentaciones posibles, y aquí es donde la predicción puede volverse realmente difícil. Descubre las implementaciones reales afrontando estas predicciones sin importar el nivel de detalle que necesites y sube un peldaño en tus sistemas inteligentes.
Leer más

Extended support. Pan para hoy, hambre para mañana.

Este año 2020 va a representar un reto importante para muchas organizaciones desde el punto de vista de actualizaciones/renovaciones. El soporte extendido de SQL Server 2008 terminaba el pasado 9 de Julio de 2019 y hoy 14 de Enero de 2020 termina el de Windows Server 2008 y 2008 R2. Muchas empresas son conscientes del fin de soporte y a pesar de ello, aún no tienen prevista la migración por lo que probablemente deba ser abordada en breve y con cierta urgencia (escanario ideal).