Archivo de la etiqueta: mantenimiento

Reducir el tamaño del fichero de log en SQL Server 2005

Hoy me ha tocado realizar tareas de mantenimiento en uno de los servidores de desarrollo, y he visto que gran parte del espacio en disco se lo estaba comiendo uno de los ficheros de una base de datos SQL Server de una aplicación de SharePoint.

Para los que no tengan muy claro, como almacena SQL Server las bases de datos, decir que hay al menos dos ficheros por base de datos. Uno de estos ficheros es donde estarán almacenados los datos de nuestras tablas, vistas y demás objetos (el cual tiene extensión *.mdf)… y el otro es el fichero de transacciones (el cual tiene extensión *.ldf). El fichero de transacciones consiste en una serie de registros de todas las modificaciones de la base de datos y de la transacción que ha realizado cada modificación. En el registro de transacciones figura el inicio de cada transacción. También registra los cambios de los datos y facilita suficiente información para deshacer las modificaciones (si fuera necesario posteriormente) realizadas durante cada transacción.

Como os podeis imaginar, el archivo *.ldf o de transacciones puede ocupar un tamaño considerable, por lo que a veces, nos interesa reducirlo o truncarlo. Si no nos interesa realizar una copia previa de este archivo, lo mas rápido es ejecutar una consulta SQL, para ello, abrimos el analizador de consultas e introducimos esta query:

USE MiBase
CHECKPOINT
EXEC sp_addumpdevice 'disk', 'CopiaMiBase', 'd:LogMiBase.bak'
BACKUP DATABASE MiBase TO CopiaMiBase
BACKUP LOG MiBase WITH TRUNCATE_ONLY
DBCC SHRINKFILE (MiBase_Log, 100)
Hay que sustituir MiBase por el nombre de la base de datos en la que queramos reducir el archivo de transacciones. Existe un paramento que podemos modificar a nuestro gusto, que es el tamaño del archivo *.ldf, actualmente establecido a 100 (en megabytes, expresado como un número entero). Aquí tenéis más información sobre la instruccion DBCC SHRINKFILE y sus parámetros.

Poner offline una aplicacion ASP.NET

aspnet

Desde la version 2.0 existe un metodo muy sencillo para poner offline una aplicación ASP.NET, debido a tareas de mantenimiento. He de confesar que hasta la fecha y por desconocimiento, he estado utilizando soluciones muy poco practicas, como usar un Default.html o redirecciones…

Buceando en la Red di con un metodo muy sencillo, ya implementado por esta plataforma…  se trata simplemente de crear un archivo llamado App_Offline.htm y colocarlo en la raíz de nuestra aplicación.

Siempre que ASP.NET detecte la existencia de este archivo en el raíz, cerrará la aplicación, descargará el dominio de aplicación de la memoria del servidor y desbloqueará las bases de datos adjuntadas dinámicamente. Además, cualquier petición que llegue a nuestra aplicación, sea de usuarios nuevos o de gente que ya la estuviese usando, obtendrá como respuesta el contenido de ese archivo que normalmente contendrá un mensaje de “Página en mantenimiento“.

Se trata de un modo sencillo y conveniente de poner la aplicación offline. Espero que a vosotros también os resulte útil.

Referencia: Erik Porter’s Blog