Soy un DBA accidental, un desarrollador que heredó un par de servidores de bases de datos (2005 y 2008) de alguien que sabía poco sobre la administración de bases de datos y aparentemente tenía aún menos interés en aprender más sobre el tema.
Estoy aprendiendo sobre la marcha, y actualmente estoy tratando de resolver los archivos de registro de transacciones.
Todas nuestras bases de datos se han configurado con el modelo de recuperación simple y el autoencogimiento. He entendido que usar el autoencogimiento suele ser una idea horrible, pero tengo entendido que esto se hizo para evitar que los registros de transacciones se descontrolen. (¿Autoencogimiento realmente reduce los archivos de registro o solo el DB?)
Encontré esto sobre SQL Server 2012, y me preguntaba si es cierto sobre 2005 y / o 2008, y exactamente qué significa: "Cuando una base de datos usa el modelo de recuperación simple, el Motor de base de datos trunca el registro de transacciones después de un punto de control. [. ..] El Motor de base de datos activa un punto de control automático bajo el modelo de recuperación simple cuando el registro virtual se llena en un 70 por ciento ". ¿Dónde se especifica el tamaño del registro virtual?
Quiero deshabilitar la reducción automática en todas las bases de datos, pero antes de hacerlo, necesito saber que los archivos de registro no se descontrolarán rápidamente.
Cualquier ayuda sería muy apreciada.
fuente
Respuestas:
Un único archivo de registro de transacciones tiene un tamaño físico (que se ve en el disco) y también se divide en el archivo físico en secciones lógicas llamadas archivos de registro virtuales (VLF).
Tanto el crecimiento automático como la reducción automática operan en el archivo de registro de transacciones físicas .
El truncamiento del registro de transacciones (también llamado "borrado de registros") opera en las secciones lógicas del registro de transacciones (VLF) y no afecta el tamaño del archivo físico. Esta parte es frecuentemente objeto de confusión.
Un archivo de registro siempre debe crecer para acomodar una transacción grande; desactivar el encogimiento automático dejará el archivo de registro con su tamaño máximo necesario, en lugar de disminuir físicamente su tamaño.
Si no tiene transacciones grandes, será seguro deshabilitar la reducción automática; los archivos de registro no crecerán sin límite, como sucedería si la base de datos estuviese en
FULL
oBULK_LOGGED
no estuviera realizando copias de seguridad del registro de transacciones.Este comportamiento es el mismo para SQL Server 2005+.
fuente
Entonces, esto es lo que he encontrado después de leer las otras respuestas aquí e investigar un poco por mi cuenta:
P: "¿El encogimiento automático realmente reduce los archivos de registro o solo el DB?" A: Por lo que entiendo: sí, lo hace. Autoshrink se establece en el nivel de la base de datos y afecta a todos los archivos (visto si hace clic derecho en la base de datos -> propiedades -> archivos, o si ejecuta la consulta 1). El crecimiento automático, sin embargo, funciona en un nivel por archivo.
P: "¿Dónde se especifica el tamaño del registro virtual?" R: Vea la respuesta de Jon Seigel y el enlace que Remus publicó. Para ver el tamaño de registro físico y lógico, use la consulta 2
Un problema es que si la base de datos ha activado el modo de recuperación completa, ha crecido a un tamaño grande y luego ha cambiado el modo de recuperación a simple, no se activará un punto de control ya que el VLF ha crecido automáticamente. Es posible intentar resolver esto (vea la respuesta de Remus para problemas potenciales con la cabeza / cola de los archivos de registro) ejecutando la consulta 3, que reducirá el archivo de registro al tamaño que tenía cuando se creó originalmente.
Consultas:
1)
2)
3)
fuente
Como mencionó en su pregunta, en SQL 2005 y 2008 después del punto de control, el archivo de registro de transacciones también se truncará.
Mi sugerencia sería configurar el modelo de recuperación en su totalidad y crear un trabajo para tomar una copia de seguridad del archivo de registro de transacciones. Este trabajo se puede programar en su base de datos y truncará el registro de transacciones después de tomar la copia de seguridad. Automáticamente truncará el archivo de registro por usted. Por favor, eche un vistazo a los siguientes enlaces:
SQL Server 2005: http://technet.microsoft.com/en-us/library/ms189085(v=sql.90).aspx
SQL Server 2008: http://technet.microsoft.com/en-us/library/ms189085(v=sql.100).aspx
fuente