SQL Server: ¿Cómo aumento el tamaño del registro de transacciones?
-
06-07-2019 - |
Pregunta
¿Cómo aumento el tamaño del registro de transacciones? ¿También es posible aumentar temporalmente el registro de transacciones?
Digamos que tengo el siguiente escenario. Tengo una operación Eliminar que es demasiado grande para el registro de transacciones actual. Quiero:
- Aumente el registro de transacciones (¿puedo detectar el tamaño actual ?, ¿puedo decir qué tan grande necesito que sea el registro de transacciones para mi operación?)
- (Realizar mi operación)
- Copia de seguridad del registro de transacciones
- Restaurar el tamaño del registro de transacciones.
Solución
Respuesta corta:
- SQL 2k5 / 2k8 Cómo: aumentar el tamaño de una base de datos (SQL Server Management Studio) (se aplica también al registro), Cómo: Reducir una base de datos (SQL Server Management Studio)
- SQL 2K Cómo aumentar el tamaño de una base de datos (Enterprise Manager) , Cómo reducir un base de datos (Enterprise Manager)
Respuesta larga: puede usar ALTER DATABASE ... MODIFY FILE
para cambiar el tamaño de los archivos de la base de datos, incluidos los archivos LOG. Puede buscar master_files/sysfiles
(2k) o <dbname>.sys.database_files
(2k5 / 2k8) para obtener el nombre lógico del registro. Y puede usar DBCC SHRINKFILE
para reducir un archivo (si es posible ).
¿puedo decir qué tan grande necesito el registro de transacciones para ser para mi operación?
Depende de muchos factores (¿son estos datos nuevos? ¿Es una actualización? ¿Es una eliminación? ¿Qué modelo de recuperación? ¿Tiene compresión en SQL 2k8? etc., etc.) pero generalmente es más grande de lo que espera. Yo estimaría 2.5 veces el tamaño de la actualización que está a punto de realizar.
Actualización:
Te perdí, dices que es un DELETE. Una estimación aproximada es 1,5 veces el tamaño de los datos eliminados (incluidos todos los índices).
Otros consejos
El registro de transacciones se puede configurar para expandirse según sea necesario. Establece la opción de crecer automáticamente. Sin embargo, cuando el registro de transacciones se vuelve demasiado grande (se está quedando sin espacio en disco) o deja inutilizable el servidor SQL.
Copia de seguridad del registro de transacciones. SQL truncará automáticamente las transacciones inactivas
Cuando restaure el registro de transacciones se reducirá
Para configurar el crecimiento automático:
- Haga clic derecho en la base de datos en el estudio de gestión.
- Seleccionar propiedades
- Actualizar valor de crecimiento automático
La parte más importante es la última línea de su escenario: " Restaurar el tamaño del registro de transacciones. " Quiere decir reducir el registro a su tamaño original.
Esto es realmente peligroso por muchas razones, y las hemos cubierto en un par de historias en SQLServerPedia: