2008-09-02 18 views

Respuesta

109

si recuerdo bien ... en el analizador de consultas o equivalente:

BACKUP LOG databasename WITH TRUNCATE_ONLY 

DBCC SHRINKFILE ( databasename_Log, 1) 
+2

Esto es definitivamente mejor que establecer el modelo de recuperación de base de datos en SIMPLE (como en la respuesta de Blorgbeard) porque si tu modelo de recuperación es FULL, lo tienes establecer de esa manera por una razón. –

+47

truncate_only está en desuso en SQL Server 2008, por lo que debe cambiar el DB a recuperación simple http://msdn.microsoft.com/en-us/library/ms143729(SQL.90).aspx –

+9

Para SQL Server 2012 esto funciona, pero sin 'CON TRUNCATE_ONLY'. –

258

Management Studio:

  • No hacer esto en un entorno real, pero para asegurarse de que reducir el tamaño de su dev db tanto como sea posible:
    • Haga clic derecho en la base de datos, seleccione Properties, luego Options.
    • Asegúrese de que "el modelo de recuperación" está ajustado en "Simple", no "completa"
    • Haga clic en OK
  • Haga clic derecho en la base de datos de nuevo, seleccione Tasks ->Shrink ->Files
  • Cambio tipo de archivo a "Iniciar sesión"
  • Haga clic en Aceptar.

Alternativamente, el SQL para hacerlo:

ALTER DATABASE mydatabase SET RECOVERY SIMPLE 
DBCC SHRINKFILE (mydatabase_Log, 1) 

Ref: http://msdn.microsoft.com/en-us/library/ms189493.aspx

+1

¡Su respuesta me ha salvado la vida! No sabía de la opción "hacer clic con el botón derecho - Tareas -> Reducir". ¡Gracias! –

+7

¿Qué haces en un entorno en vivo? Haga una copia de seguridad de los registros primero? –

+1

No soy DBA, pero sí, creo que la copia de seguridad del registro lo truncará: http://technet.microsoft.com/en-us/library/ms179478.aspx – Blorgbeard

3

copia de seguridad del registro con logname truncate_only seguido por un comando DBCC SHRINKFILE

46

Para SQL Server 2008, el comando es:

ALTER DATABASE ExampleDB SET RECOVERY SIMPLE 
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY) 

Esto redujo el archivo de log 14 GB hasta 1 MB.

+4

Como la pregunta es ambigua en cuanto a qué versión y la respuesta aceptada no es aplicable a SQL Server 2008, esta respuesta sigue siendo válida independientemente de la edad. –

+0

Gracias, me ayudó a reducir un gran archivo de registro que no reaccionó con DBCC SHRINKFILE –

+3

¡No se olvide de volver a poner el modelo de recuperación en FULL cuando haya terminado! – Dan

32

Para SQL 2008 puede iniciar una sesión de copia de seguridad a nul dispositivo:

BACKUP LOG [databaseName] 
TO DISK = 'nul:' WITH STATS = 10 

y luego usar DBCC SHRINKFILE para truncar el archivo de registro.

+2

Este es el único que terminó trabajando en mi situación ... Recibí un error al intentar usar la copia de seguridad con TRUNCATE_ONLY – TomXP411

-7

Otra opción es separar la base de datos a través de Management Studio. Luego simplemente borre el archivo de registro, o renómbrelo y elimínelo más tarde.

De vuelta en Management Studio, vuelva a conectar la base de datos. En la ventana de adjuntar, elimine el archivo de registro de la lista de archivos.

La base de datos adjunta y crea un nuevo archivo de registro vacío. Después de comprobar que todo está bien, puede eliminar el archivo de registro renombrado.

Probablemente no deba usar esto para las bases de datos de producción.

+3

¡Nunca haga esto! Puede haber datos en el registro aún no comprometidos con el archivo de datos. Perderías esos datos. – Paul

+3

¡ADVERTENCIA! Esto es incorrecto y peligroso! – defines

+0

Si, en su respuesta, advierte que no lo pruebe en producción, no vale la pena publicarlo en absoluto. –

Cuestiones relacionadas