Las operaciones de base de datos tardan mucho en completarse o que activa los errores cuando el registro de transacciones tiene numerosos archivos de registro virtuales

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 2028436
Síntomas
En un entorno de SQL Server 2008, pueden producirse los síntomas siguientes:
  • Bases de datos de uno o más tardan mucho tiempo en Finalizar la recuperación durante el inicio de SQL Server.
  • Al realizar la restauración de una base de datos, se tarda mucho tiempo en completarse.
  • Intenta adjuntar una base de datos toma mucho tiempo en Finalizar.
  • Cuando intenta configurar la base de datos reflejada, encuentro 1413, 1443 y 1479, los mensajes de error que indica un tiempo de espera.
  • Encuentra errores relacionados con la memoria como 701 cuando intenta restaurar una base de datos.

Al examinar el registro de errores de SQL Server, observará que se ha invertido una cantidad significativa de tiempo antes de la fase de análisis del proceso de recuperación de base de datos.
2010-05-08 14:42:38.65 spid22s a partir de una base de datos 'lot_of_vlfs'.
2010-05-08 14:46:04.76 spid22s análisis de base de datos 'lot_of_vlfs' (16) es 0% completado (aproximadamente 0 segundos permanecen). Fase 1 de 3. Esto es sólo un mensaje informativo. Se requiere ninguna acción de usuario.

Causa
Durante las fases iniciales de un proceso de recuperación de la base de datos, SQL Server realiza un descubrimiento de los archivos de registro virtuales todos presentes en todos los archivos de registro de transacciones. Se genera una lista de todos los archivos de registro virtuales. Este proceso puede tardar mucho tiempo dependiendo del número de archivos de registro virtuales presentes en la base de datos específica. Una base de datos puede terminar con un gran número de archivos de registro virtuales si los encuentros de registro de transacciones frecuentes de crecimiento automático con el crecimiento pasando por incrementos de tamaño muy pequeño.

Iniciar normalmente los problemas mencionados en la sección "Síntomas" cuando el número de archivos de registro virtuales está en el rango de varios cientos de miles.
Solución
Puede utilizar los métodos desde el blog siguiente para buscar el número de archivos de registro virtuales en una base de datos determinada:
Cómo puede afectarle el tiempo de recuperación de base de datos una estructura de archivos de registro

Deberá mantener el número total de archivos de registro virtuales en un número razonable, como 10.000.

Puede volver a configurar el archivo de registro de transacciones para que contenga sólo un número limitado de archivos de registro virtuales mediante el uso de los métodos siguientes:
  1. Comprimir los archivos de registro de transacciones, incrementar los archivos a los tamaños requeridos manualmente mediante la base de datos de TSQL ALTER <database name="">MODIFY FILE (nombre = 'nombre de archivo lógico de transacción de tamaño del registro', = <required size="">)</required> </database>
  2. Volver a generar el archivo de registro de transacciones y manualmente crecer los archivos de registro de transacciones para los tamaños requeridos:
    1. Si la base de datos se ha apagado correctamente (con ningún usuario o las transacciones abiertas), puede utilizar la opción FOR ATTACH_REBUILD_LOG de CREATE DATABASE para crear un nuevo archivo de registro de transacciones.
    2. Si una base de datos de lectura y escritura tiene un único archivo que no está actualmente disponible de registro y limpiar si se cierra la base de datos [con los usuarios ni las transacciones abiertas] antes de la operación de adjuntar, para asociar la opción de crear la base de datos automáticamente vuelve a generar el archivo de registro y actualización el archivo principal.

Después de volver a configurar el diseño del archivo de registro de transacciones, revise y realice los cambios necesarios a la configuración para el archivo de registro de transacciones para evitar que el mismo problema en el futuro el crecimiento automático.

Nota: Antes de realizar cualquiera de estas operaciones, asegúrese de que tiene una copia de seguridad pueden restaurar válida en caso de que tenga algunos problemas más adelante.

2524743 REVISIÓN: La recuperación tarda más de lo esperado para una base de datos en SQL Server 2008 o en un entorno de SQL Server 2008 R2

2455009 REVISIÓN: Un rendimiento lento al recuperar una base de datos si hay muchos VLF dentro del registro de transacciones en SQL Server 2005, SQL Server 2008 o en SQL Server 2008 R2

2653893 REVISIÓN: Tarda mucho tiempo para restaurar una base de datos en SQL Server 2008 R2

979042 REVISIÓN: La base de datos principal no se recuperará si la base de datos tiene un gran número de archivos de registro virtuales de SQL Server 2005 o en SQL Server 2008

2882905 Se registra un mensaje informativo de 9017 al iniciar una instancia de SQL Server o restaurar o adjuntar una base de datos

Más información
Para obtener información completa acerca de los archivos de registro virtuales, consulte el siguiente tema de libros en pantalla: Arquitectura física del registro de transacciones

Para obtener más información acerca de este problema, consulte lo siguiente:

Cómo puede afectarle el tiempo de recuperación de base de datos una estructura de archivos de registro
¿VLF de registro de transacción - demasiados o muy pocos?
¿1413 error al iniciar la creación de reflejo de base de datos: cuántos archivos de registro virtuales es demasiado?

También hay que ser consciente de un problema conocido con el aumento de los registros de transacciones:

2633151 El archivo de registro de transacciones de base de datos de SQL Server no crece por el valor de crecimiento de archivo configurado

Nota: Obtenga información sobre un cambio importante en el algoritmo de creación VLF en 2014 de SQL Server:


Para obtener más información acerca de los productos o herramientas que comprueban automáticamente si esta condición en la instancia de SQL Server y en las versiones del producto SQL Server, vea la tabla siguiente:

Software de reglaTítulo de la reglaDescripción de la reglaVersiones del producto con el que se evalúa la regla
Analizador de prácticas recomendadas de SQL Server 2008 R2 (SQL Server 2008 R2 BPA)




Bases de datos con un gran número de VLF presente





SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) proporciona una regla para detectar situaciones donde las bases de datos contienen un gran número de archivos de registro virtuales. El BPA de SQL Server 2008 R2 es compatible con SQL Server 2008 y SQL Server 2008 R2.

Si ejecuta la herramienta BPA y se producirá un Error con el título del motor de base de datos: bases de datos con un gran número de VLF está presente, debe comprobar el número de archivos de registro virtuales de la base de datos y volver a los archivos de registro de transacciones.
SQL Server 2008
SQL Server 2008 R2






SQL Server 2012 Best Practices Analyzer (BPA de SQL Server 2012)



Bases de datos con un gran número de VLF presente




SQL Server 2012 Best Practices Analyzer (BPA de SQL Server 2012) proporciona una regla para detectar situaciones donde las bases de datos contienen un gran número de archivos de registro virtuales.

Si ejecuta la herramienta BPA y se producirá un Error con el título del motor de base de datos: bases de datos con un gran número de VLF está presente, debe comprobar el número de archivos de registro virtuales de la base de datos y volver a los archivos de registro de transacciones.
SQL Server 2012








Propiedades

Id. de artículo: 2028436 - Última revisión: 08/05/2015 20:26:00 - Revisión: 6.0

Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web

  • kbmt KB2028436 KbMtes
Comentarios