Blog de Jesús Sequeiros Arone

Manuales y ejercicios de SQL Server, Excel, Word, Acces y más...

Truncar y reducir el tamaño del log de transacciones de SQL Server en un  Grupo de Alta disponibilidad AlwaysOn

Sáb, 09/11/2019 - 11:47 -- jsequeiros

El truncamiento del registro de transacciones (log de transacciones)  elimina de manera lógica  los archivos de registro de transacciones  de una base de datos de SQL Server, El truncamiento del registro no reduce el tamaño del archivo de registro físico.

El truncamiento del registro se produce automáticamente después de los eventos siguientes:

  • En el modelo de recuperación simple, después de un punto de comprobación.
  • En el modelo de recuperación completa después de una copia de seguridad de registros (a menos que sea una copia de seguridad de registros de solo copia).

Truncar log de transacciones en SQL Server

Para reducir el tamaño físico de un archivo de registro físico en un escenario de Grupos de disponibilidad AlwaysOn, creación de reflejo de la base de datos y trasvase de registros; la única forma es realizando una copia de seguridad de registros, ya que en los escenarios mencionados se requiere del modelo de recuperación completa.

Escenario de Grupo de disponibilidad Alwayson:

Grupo de alta disponibilidad AlwaysOn de SQL Server

Pasos para truncar y reducir el registro de transacciones:

Paso1: Para truncar el registro de transacciones, se realiza la  copia de seguridad del registro de transacciones.

BACKUP LOG [Colegio] TO  DISK = N'C:\Backup\BackupLogColegio.bak'

Paso2: Reducir el tamaño físico del registro de transacciones:

USE [Colegio] GO DBCC SHRINKFILE (N'Colegio_log', 0, TRUNCATEONLY) GO

Script para generar log de transacciones

 use Colegio
 go
 declare @n int
 set @n=1
 while @n <=100000
 begin
 insert into Alumno values(@n, 'Detalle de descripción' + CONVERT(varchar(50), @n))
 set @n=@n+1
end
--truncate table Alumno

Tamaño del archivo registro de transacciones (Antes de truncar y reducir)

Tamaño del archivo antes de truncar y reducir el log de transacciones de SQL Server

Tamaño del archivo registro de transacciones (Después de truncar y reducir)

Tamaño del archivo después de truncar y reducir el log de transacciones de SQL Server

Ver vídeo en Youtube:

https://youtu.be/DMFYqfm4HOE

Comentarios

Enviado por Leandro1234 (no verificado) el

Buenas noches.
Hay forma de liberar espacio de una BD al eliminar todos los registros de una tabla?
Tenia una tabla que ocupaba 100GB, por error del un soft. Eliminé todos los datos con la instrucción DELETE. Se borraron todos los registros, pero el espacio no fué liberado. El archivo MDF aun sigue ocupando el espacio.
Como puedo recuperar ese espacio.

Enviado por jsequeiros el

Efectivamente, se ha borrado los registros pero no se ha liberado el espacio. Puedes usar el siguienet comando.

DBCC SHRINKFILE (N'DemoARchivo_log' , 0, TRUNCATEONLY)
GO

Donde:
DemoARchivo_log es el nombre de archivos de registro, ese nombre se puede obtener ejecutando el siguiente comando:

sp_helpdb [NombreBaseDatos]

Añadir nuevo comentario