May
11
2020

¿Tu Base de Datos está creciendo demasiado? Parte II


Ampliando el artículo anterior un problema bastante común con el que nos encontramos día a día es el limitado espacio de almacenamiento en disco. Ya sea por temas de presupuesto o de infraestructura, no siempre es posible incrementar el espacio de almacenamiento de nuestros servidores de una manera rápida, por lo que la implementación de buenas prácticas y acciones preventivas pueden ahorrarnos el downtime de una base de datos por falta de espacio.

Aquí te dejamos tres sencillas recomendaciones para poder controlar el crecimiento rápido de tus archivos log (*.ldf) en SQL Server:

a.  Escoge el recovery model adecuado:

En SQL Server, una base de datos puede tener uno de los tres recovery model (modelos de recuperación) existentes: Simple, Bulk-Logged y Full. Esta opción determina con que precisión se puede restaurar una base de datos. Por ejemplo: tener un modelo de recuperación Full es ideal para ambientes de producción críticos porque nos permite realizar copias de seguridad del log de transacciones, (los cuales podemos utilizar después para restaurar la base de datos a un punto especifico en el tiempo). Aquí se debe tener en cuenta que, si escogemos este modelo de recuperación, debemos contar con un proceso automatizado de respaldo del log de transacciones, de lo contrario este crecerá hasta ocupar todo el espacio existente.

Por otro lado, si no es necesario que la base de datos tenga un plan de recuperación de desastres (como en ambientes de pruebas o desarrollo), se puede configurar con un modelo de recuperación Simple, el cual registrará un mínimo de las transacciones ocurridas en el log y también nos permitirá recuperar el espacio ocupado por el mismo, haciendo un shrink al archivo log.


b.  Comprimir el archivo log:

En algunos casos, el log de transacciones se podrá comprimir debido a que no todo el espacio asignado en disco esta siendo utilizado. Para verificar si podemos liberar espacio del log de transacciones podemos ejecutar el siguiente comando en la instancia SQL: DBCC SQLPERF(LOGSPACE). Nótese aquí la columna ‘Log Space Used (%)’, a menor porcentaje mayor es el espacio que podemos liberar. Si este es el caso, podemos aplicar un ‘Shrink’ (Reducción) sobre el archivo log respectivo.

c.  Mover de ubicación los archivos log:

De acuerdo con las mejores prácticas de SQL Server, se recomienda almacenar los archivos de datos (.mdf) y los archivos de logs (.ldf) en discos separados. De esta manera podemos evitar que los problemas de crecimiento inesperado de los archivos log impacten en el espacio asignado para los archivos de datos. De no ser el caso, recomendamos que se reubiquen los archivos de datos y logs respectivamente. Esto requerirá de un reinicio del servicio de SQL Server para que los cambios surtan efecto. 

En ambientes donde contamos con suficientes discos de almacenamiento, es recomendable tener un disco para cada base de datos y para cada tipo de archivo de datos (.mdf y .ldf). De esta manera, podemos aislar los problemas de espacio de una base de datos y prevenir que esos problemas afecten a otras bases de datos dentro de la misma instancia/servidor.


Únete a la Conversación

DEJA UN COMENTARIO

Tu dirección de correo electrónico no será publicado. Campos requeridos están marcados *