transaction transacciones tamaño shrinkfile registros registro read muy log lleno grande está definicion datos archivo sql-server transaction-log

transacciones - ¿Cómo puedo administrar el tamaño de registro de SQL Server?



sql server registros (4)

El archivo de registro se utiliza con fines transaccionales, incluso si la base de datos está en MODO DE RECUPERACIÓN SIMPLE. Si el tamaño de LOG realmente está creciendo más allá de 500 MB, entonces alguien está ejecutando una consulta o procedimiento almacenado que requiere ese espacio.

Por ejemplo, tal vez esté creando índices contra sus tablas de informes. Eso se hará dentro de una transacción para que los cambios puedan revertirse en caso de error. Sin embargo, el espacio utilizado se liberará después para otras transacciones una vez completado.

Por lo tanto, si el tamaño del registro comienza en 1 MB y aumenta, por ejemplo, 700 MB, entonces se está haciendo algo que requiere ese espacio. Si bloquea el tamaño a 500 MB, eventualmente recibirá un error de "archivo de registro sin espacio".

Pero si realmente quiere arreglarlo a 500MB, puede hacer lo siguiente: (Estoy usando SQL Server 2005)

  1. Lanzamiento de Microsoft SQL Server Management Studio
  2. Ubique su base de datos y haga clic derecho sobre ella. Seleccionar propiedades
  3. Haga clic en la sección Archivos
  4. Ubique la línea LOG FILE.
  5. Cambiar el tamaño inicial a: 500
  6. Ubique la sección Crecimiento automático y haga clic en la elipse (...)
  7. Desmarque "Activar crecimiento automático". Haga clic en Aceptar.
  8. Haga clic en Aceptar para hacer el cambio.

Nota: También puede establecer un tamaño máximo de archivo de registro en la "sección de crecimiento automático".

Alternativamente, puede usar la siguiente secuencia de comandos para realizar el cambio. Reemplace DATABASENAME con el valor apropiado. Cambie también el nombre del archivo de registro si es necesario.

USE [master] GO ALTER DATABASE [DatabaseName] MODIFY FILE ( NAME = N''DATABASENAME_Log'', SIZE = 512000KB , FILEGROWTH = 0) GO

Estoy tratando de administrar el tamaño de un archivo de registro de SQL Server 2008. Tengo una base de datos de informes que se carga una vez al día. El modelo de recuperación simple es el que mejor se ajusta, ya que no hay más transacciones que la carga de la mañana, y puedo volver a crear esos registros. Mis objetivos son tener el registro de transacciones en un tamaño fijo, lo suficientemente grande como para que no tenga que asignar espacio nuevo durante la carga.

Mi problema es que el registro sigue creciendo. Sé que se supone que el registro está marcado para su reutilización, pero ¿por qué el registro sigue creciendo? Log_reuse_wait_desc muestra "Nothing".

Puedo reducir el archivo de registro a 1 MB, así que sé que no hay transacciones en él. Puedo configurar un trabajo para hacer esto, pero preferiría dejar el registro a 500MB, que es suficiente para manejar las cargas diarias. Si hago esto, el registro crece.

¿Cómo puedo mantener el registro en un tamaño constante?

Tenga en cuenta que la reducción del archivo de registro no resuelve este problema. Yo se como hacer eso. Estoy intentando encontrar una forma de volver a utilizar el espacio en el registro de transacciones.


El comando DBCC Shrinkfile le permite especificar un tamaño de destino:

DBCC SHRINKFILE (DataFile1, 7)

Reduce el archivo DataFile1 a 7MB

Documento en: MSDN


En la parte superior de mi cabeza puedes usar DBCC SHRINKFILE para hacer esto.


crear un trabajo de mantenimiento que haga copias de seguridad de la base de datos y reduzca el tamaño del registro