10 votos

¿Cómo se encoja el tamaño de un archivo de registro de SQL Server

No puedo entender cómo reducir el tamaño de las bases de datos de archivo ldf.

El DBA dice que debo usar backup log dbname with truncate_only

Y mientras que parece que se ejecuta correctamente en el Analizador de Consultas SQL del archivo ldf es todavía más de 2 Gb.

Aclaración basado en algunos comentarios y algunas respuestas.La base de datos específica en cuestión es una base de datos es en mi laptop y yo lo uso para los procesos de desarrollo solamente. El archivo de registro fue creciendo a un punto donde la miró a causa de un disco completo. No hay ningún riesgo de producción involucrados. Entiendo que el método de la pregunta que le hice y la respuesta que he aceptado son de riesgo en un entorno de producción.

11voto

BradC Puntos 1402

Ah, el horror! Por favor, deje de decirle a la gente que debe reducir sus archivos de registro!

Si te has metido en esta situación, entonces uno de los siguientes casos es muy probable que:

  1. Su base de datos está en modo de recuperación completa, y realmente debe ser en modo simple
  2. Su base de datos está en modo de recuperación completa, y usted debe ser la realización periódica de copias de seguridad del registro
  3. Su base de datos está en modo de recuperación completa, y el registro de las copias de seguridad están fallando por alguna razón
  4. Se ejecuta de forma masiva grandes transacciones que están soplando el archivo de registro hasta enormes tamaños

La respuesta para cada uno de estos es la siguiente:

Si (1), a continuación, cambie la base de datos a modo de simple
Si (2), entonces horario regular de copias de seguridad del registro
Si (3), luego de arreglar su horario regular de copias de seguridad del registro
Si (4), entonces no lo hagas :) en Cambio, hacer el trabajo en lotes más pequeños.

Tenga en cuenta que NINGUNO de estos requieren el uso de la (obsoleto) "registro de copia de seguridad dbname con truncate_only"

En su lugar, una vez que lo hagas borrar el archivo de registro utilizando una de las técnicas anteriores, se encogen después de la (ahora vacío) registro con:

DBCC SHRINKFILE ('log logical name', 2000)

Especificar siempre un razonable tamaño final, de lo contrario va a reducirlos a casi 0, y la próxima vez que sea necesario, tendrá que tomar el tiempo para crecer.

3voto

Brian Knight Puntos 1007

El guión que escribió sobre marcará el contenido del registro para su reutilización. Siga la secuencia de comandos con:

USE <database>;

DBCC SHRINKFILE (<log logical file name>)

Reducirá para ti.

1voto

Mani Puntos 121

después de hacer la "copia de seguridad con truncate_only" debe ejecutar siguiente comando a encogerse

dbcc SHRINKFILE (logfilename,shrink_tosize)

e.g

dbcc SHRINKFILE (mydatabase_Log,512)

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: