02

Introducción

Como sabemos DotNetNuke trabaja con una base de datos SQL Server, entre otros, la cual registra en un archivo de transacciones todas las tareas de mantenimiento. Dicho archivo, conocido como Log, aumenta su tamaño desmesuradamente mientras disponga de espacio en disco, hasta llegar, en el peor de los casos a visualizar el mensajes de error. Realmente, SQL Server, precisa de dicho archivo de transacciones ya que si no es posible continuar utilizando dicho archivo, no puede trabajar. Normalmente ocurre por falta de espacio en disco o porque hemos limitado el tamaño del mismo y se ha llegado al límite.

Al crear una base de datos se generan dos archivos, el primero contiene la información con las tablas, procedimientos, vistas, etc., mientras que el segundo es el archivode transacciones, el cual registra las modificaciones que se van realizando sobre el archivo anterior y las transacciones que efectúan dichas modificaciones. Junto con el primer archivo, con extensión MDF (la BD) se genera el archivo de transacciones el cual tiene la extensión LDF, el cual es el nombre de la BD seguido de "_log".

Los ISP (Proveedores de Servicios de Internet) configuran el servidor de bases de datos con el tamaño de la BD y del archivo log limitado, dependiendo del servicio de alojamiento contratado. Al superar dicho tamaño, no sería aceptable que la base de datos dejara de funcionar así que el cliente recibe un mensaje notificando que se ha superado el tamaño de la BD.

Si el alojamiento es compartido no es posible acceder al servidor SQL Server como administrador, por ese motivo no será posible modificar la configuración del archivo Log, obtener copia de seguridad de la base de datos ni ejecutar las instrucciones necesarias para disminuir el tamaño.

Pasos a seguir para la reducción de tamaño

Para saber el tamaño de la base de datos accedemos como Host al Portal y en el menú Host > SQL ejecutamos la consulta SELECT * FROM sysfiles, en la tabla de resultados hay que sumar el campo size de ambos registros y multiplicar por 8, por ejemplo 2000 y 3000 el tamaño de la BD sería de 40000, no llega a 40 Mb.

En primer lugar, siempre debemos hacer una copia de seguridad completa de la base de datos antes de realizar cualquier tarea que pueda poner la información en peligro, como es el caso.

Con una base de datos, por ejemplo, con el nombre "La_BD" realizaríamos los siguientes pasos:

1.- Abrir el Analizador de Consultas e indicar la BD que deseamos abrir.

USE La_BD

2.- Grabar en disco las páginas desfasadas (en caché y no en disco)

CHECKPOINT

3.- Crear un dispositivo físico e indicar la ubicación de la copia de seguridad con suficiente espacio

EXEC sp_addumpdevice 'disk','Copia_La_BD','D:\La_BD.BAK'

4.- Crear la copia de seguridad

BACKUP DATABASE La_BD TO Copia_La_BD

5.- Crear la copia de seguridad del Log

BACKUP LOG La_BD TO Copia_La_BD

6.- Liberar espacio físico del fichero (1 representa el tamaño en Mb, dependiendo del tamaño del Log usaremos un valor mayor o menor)

DBCC SHRINKFILE (La_BD, 1)

Para que no vuelva a ocurrir debemos crear un plan de mantenimiento según el uso de la BD, el cual puede ser desde varias veces al día hasta semanalmente, mensualmente ... Como ya he comentado, en el caso de un ISP deberemos solicitar al Soporte Técnico que generen dicho plan de mantenimiento y el script con las instrucciones comentadas.

Bibliografía

Artículo de César Manivesa en programacion.com

 

 

Publicado en: Recursos y Tutoriales

Valoraciones

Comentarios

To
# To
jueves, 23 de junio de 2011 13:23
Que bien.

Enviar Comentario

Nombre (obligatorio)

Email (obligatorio)

Sitio web

Imagen CAPTCHA
Escriba el código mostrado más arriba: