[IT168 Server Academy] Los registros de transacciones son una parte muy importante pero a menudo ignorada de la estructura de la base de datos. Dado que no es tan activo como el esquema de la base de datos, pocas personas prestan atención al registro de transacciones.
El registro de transacciones es un registro de los cambios de la base de datos. Puede registrar cualquier operación en la base de datos y guardar los resultados de la grabación en un archivo separado. Para cada proceso de transacción, el registro de transacciones tiene registros muy completos y los archivos de datos se pueden restaurar a su estado anterior a la transacción en función de estos registros. Desde el comienzo de la acción de la transacción, el registro de transacciones está en estado de grabación. Cualquier operación en la base de datos durante la transacción está dentro del alcance de la grabación. La grabación no se completa hasta que el usuario hace clic en enviar o regresar. Cada base de datos tiene al menos un registro de transacciones y un archivo de datos.
Por motivos de rendimiento, SQL Server almacena los cambios del usuario en la memoria caché. Estos cambios se escriben inmediatamente en el registro de transacciones, pero no en el archivo de datos. El registro de transacciones utiliza un punto de marca para determinar si una transacción ha escrito datos del caché al archivo de datos. Cuando SQL Server se reinicie, verificará el último punto de marca en el registro y borrará los registros de transacciones después de este punto de marca, porque estos registros de transacciones en realidad no escriben los datos en el caché en el archivo de datos. Esto evita que esas transacciones interrumpidas modifiquen los archivos de datos.
Mantener el registro de transacciones
Debido a que muchas personas a menudo olvidan el registro de transacciones, esto también puede traer algunos problemas al sistema. A medida que el sistema continúa ejecutándose, se registrarán más y más registros y el tamaño de los archivos de registro también será cada vez mayor, lo que eventualmente provocará que el espacio disponible en el disco sea insuficiente. A menos que los registros se limpien con frecuencia en el trabajo diario, los archivos de registro acabarán ocupando todo el espacio disponible en la partición. La configuración predeterminada del registro es de capacidad ilimitada. Si trabaja en esta configuración, continuará expandiéndose y eventualmente ocupará todo el espacio disponible. Ambas situaciones pueden hacer que la base de datos deje de funcionar.
La copia de seguridad de rutina de los registros de transacciones puede evitar eficazmente que los archivos de registro consuman demasiado espacio en el disco. El proceso de copia de seguridad trunca partes del registro que ya no son necesarias. El método de truncamiento consiste en marcar primero los registros antiguos como inactivos y luego sobrescribir los registros nuevos en la ubicación de los registros antiguos, evitando así que el registro de transacciones aumente de tamaño. Si no se pueden realizar copias de seguridad periódicas del registro, es mejor configurar la base de datos en "modelo de recuperación simple". En este modo, el sistema forzará que el registro de transacciones se trunque automáticamente cada vez que se registra un punto de marca, sobrescribiendo el registro antiguo con un registro nuevo.
El proceso de truncamiento se produce al realizar una copia de seguridad o marcar puntos antiguos como inactivos, lo que permite sobrescribir los registros de transacciones antiguos, pero no reduce el espacio en disco real ocupado por el registro de transacciones. Incluso si el registro ya no se utiliza, seguirá ocupando una cierta cantidad de espacio. Por lo tanto, durante el mantenimiento, el registro de transacciones también debe comprimirse. Los registros de transacciones se comprimen eliminando registros inactivos, lo que reduce el espacio físico en el disco duro que ocupan los archivos de registro.
El archivo de registro de transacciones de la base de datos actual se puede comprimir utilizando la instrucción DBCC SHRINKDATABASE. La instrucción DBCC SHRINKFILE se utiliza para comprimir el archivo de registro de transacciones especificado. Además, la operación de compresión automática también se puede activar en la base de datos. Cuando se comprime un registro, los registros antiguos primero se marcan como inactivos y luego los registros marcados como inactivos se eliminan por completo. Dependiendo del método de compresión utilizado, es posible que no vea resultados inmediatamente. Idealmente, el trabajo de compresión debe realizarse durante períodos en los que el sistema no esté muy ocupado, de lo contrario puede afectar el rendimiento de la base de datos.
La restauración de
la copia de seguridad del registro de transacciones de la base de datos se puede utilizar para restaurar la base de datos a un estado específico, pero la copia de seguridad del registro de transacciones en sí no es suficiente para completar la tarea de restaurar la base de datos, y los archivos de datos respaldados también deben participar en el trabajo de recuperación. Al restaurar una base de datos, el primer paso es restaurar los archivos de datos. No establezca todo el archivo de datos en el estado completo hasta que se haya restaurado todo el archivo de datos; de lo contrario, no se restaurará el registro de transacciones. Cuando se complete la recuperación del archivo de datos, el sistema restaurará la base de datos al estado deseado por el usuario mediante la copia de seguridad del registro de transacciones. Si hay copias de seguridad de varios archivos de registro después de la última copia de seguridad de la base de datos, el programa de copia de seguridad las restaurará en secuencia según la hora en que se crearon.
Otro proceso llamado envío de registros puede proporcionar capacidades de copia de seguridad de bases de datos más sólidas. Cuando se configura el trasvase de registros, puede copiar toda la base de datos a otro servidor. En este caso, los registros de transacciones también se envían periódicamente al servidor de respaldo para la recuperación de datos. Esto mantiene el servidor en un estado de copia de seguridad activa y lo actualiza a medida que cambian los datos. El otro servidor se llama servidor de monitoreo y puede usarse para monitorear las señales de envío enviadas a intervalos específicos. Si no se recibe ninguna señal dentro del tiempo especificado, el servidor de monitoreo registrará este evento en el registro de eventos. Este mecanismo hace que el envío de registros se utilice con frecuencia en los planes de recuperación ante desastres.
El registro de transaccionesde optimización del rendimiento
juega un papel importante en la base de datos y también tiene un cierto impacto en el rendimiento general del sistema. A través de varias opciones podemos optimizar el rendimiento del registro de transacciones. Dado que el registro de transacciones es un proceso continuo de escritura en disco, no se produce ninguna lectura durante este proceso. Por lo tanto, colocar el archivo de registro en un disco independiente desempeñará un papel determinado en la optimización del rendimiento.
Otra medida de optimización se relaciona con el tamaño del archivo de registro. Podemos configurar el tamaño del archivo de registro para que no exceda un pequeño porcentaje del espacio del disco duro, o determinar su tamaño. Si se establece demasiado alto, desperdiciará espacio en el disco, y si se establece demasiado pequeño, forzará al archivo de registro a intentar expandirse continuamente, lo que hará que el rendimiento de la base de datos disminuya.
Archivo de registro de transacciones El archivo de registro de transacciones es un archivo utilizado para registrar actualizaciones de bases de datos, con una extensión de ldf.
En SQL Server 7.0 y SQL Server 2000, si se configura la característica de crecimiento automático, el archivo de registro de transacciones se expandirá automáticamente.
En general, el tamaño del registro de transacciones es estable cuando puede acomodar el número máximo de transacciones que ocurren entre el truncamiento del registro de transacciones, que se activa mediante un punto de control o una copia de seguridad del registro de transacciones.
Sin embargo, en algunos casos, el registro de transacciones puede llegar a ser tan grande que se queda sin espacio o se llena. Normalmente, cuando el archivo de registro de transacciones llena el espacio disponible en el disco y ya no se puede expandir, recibirá un mensaje de error como el siguiente:
Error: 9002, gravedad: 17, estado: 2
El archivo de registro de la base de datos '%.*ls' está lleno.
Además de este mensaje de error, SQL Server puede marcar la base de datos como SOSPECHOSA debido a la falta de espacio de extensión del registro de transacciones. Para obtener información adicional acerca de cómo recuperarse de esta situación, consulte el tema "Poco espacio en disco" en la Ayuda en línea de SQL Server.
Además, la expansión del registro de transacciones puede provocar las siguientes situaciones:
· Archivos de registro de transacciones muy grandes.
· La transacción puede fallar y puede comenzar a retroceder.
· Las transacciones pueden tardar mucho en completarse.
· Pueden ocurrir problemas de rendimiento.
· Puede producirse un bloqueo.
Causa La expansión del registro de transacciones puede ocurrir debido a las siguientes razones o situaciones:
· Transacciones no comprometidas · Transacciones muy grandes · Operaciones: DBCC DBREINDEX y CREATE INDEX
· Al restaurar desde una copia de seguridad del registro de transacciones · La aplicación cliente no procesa todos los resultados · La consulta se agota antes de que el registro de transacciones haya terminado de expandirse y usted recibe un mensaje de error falso "Registro completo" · Resolución de transacciones no replicadas causada por el archivo de registro full Cuando la base de datos SQL no puede escribir en el archivo, hay dos métodos disponibles:
Una forma: borrar el registro.
1. Abra el analizador de consultas e ingrese el comando DUMP TRANSACTION nombre de la base de datos CON NO_LOG
2. Abra Enterprise Manager nuevamente--haga clic con el botón derecho en la base de datos que desea comprimir--Todas las tareas--Reducir la base de datos--Reducir archivos--Seleccione el archivo de registro--Seleccione reducir a XXM en el modo de reducción y aquí se dará permiso para reducir. Para alcanzar el número mínimo de M, ingrese directamente este número y confirme.
El otro método tiene ciertos riesgos, porque el archivo de registro de SQL SERVER no se escribe inmediatamente en el archivo de la base de datos principal. Si no se maneja correctamente, provocará la pérdida de datos.
1: Eliminar REGISTRO
Separar base de datos Enterprise Manager -> Servidor -> Base de datos -> Haga clic derecho -> Separar base de datos 2: Eliminar archivo LOG Adjuntar base de datos Enterprise Manager -> Servidor -> Base de datos -> Haga clic derecho -> Adjuntar base de datos Este método genera un nuevo LOG, el tamaño es solo más de 500K.
Nota: Se recomienda utilizar el primer método.
Si en el futuro no quieres que crezca.
Utilizado bajo SQL2000:
Haga clic derecho en la base de datos->Propiedades->Opciones->Recuperación de fallas-Modelo-Seleccionar-Modelo simple.
O use una declaración SQL:
alterar la base de datos nombre de la base de datos establecer recuperación simple
Además, como se muestra en la figura anterior, las propiedades de la base de datos tienen dos opciones relacionadas con el crecimiento del registro de transacciones:
Truncar el registro en el punto de control
(Esta opción se utiliza en SQL7.0. En SQL 2000, el modelo de recuperación de fallas se selecciona como modelo simple)
Cuando se ejecuta el comando CHECKPOINT, el contenido del archivo de registro de transacciones se borra si excede el 70% de su tamaño. Establezca siempre esta opción en Verdadero al desarrollar la base de datos.
Reducción automática
Verifique periódicamente la base de datos cuando el espacio no utilizado del archivo de base de datos o del archivo de registro supere el 25% de su tamaño, el sistema reducirá automáticamente el archivo para que el espacio no utilizado sea igual al 25%. cuando se creó, no lo hará. El archivo reducido también debe ser mayor o igual a su tamaño original. La reducción del archivo de registro de transacciones solo se puede realizar cuando se realiza una copia de seguridad del mismo o cuando la opción Truncar registro en el punto de control está configurada en Verdadero.
Nota: Generalmente, se han configurado las propiedades predeterminadas de la base de datos creada por Li Cheng, pero en caso de circunstancias inesperadas, las propiedades de la base de datos se cambian. Borre el registro y luego verifique las propiedades anteriores de la base de datos para evitar que se registre la transacción. llenándose de nuevo.