Pregunta

Entonces nuestro SQL Server 2000 me da el error: "El archivo de registro de la base de datos está lleno.Haga una copia de seguridad del registro de transacciones de la base de datos para liberar espacio en el registro".

¿Cómo puedo solucionar este problema sin eliminar el registro como lo han mencionado otros sitios?

Información adicional:Habilitar crecimiento automático está habilitado para crecer un 10 % y está restringido a 40 MB.

¿Fue útil?

Solución

Scott, como habrás adivinado:truncar el registro es una mala decisión si le importan sus datos.

Los siguientes videos gratuitos lo ayudarán a ver exactamente lo que está sucediendo y le mostrarán cómo solucionar el problema sin truncar los registros.(Estos videos también explican por qué es un truco tan peligroso y por qué hace bien en buscar otra solución).

Juntos, estos videos lo ayudarán a comprender exactamente lo que está sucediendo y le mostrarán si desea cambiar a la recuperación SIMPLE o considerar cambiar sus rutinas de respaldo.También hay algunos videos instructivos adicionales que le mostrarán exactamente cómo configurar sus copias de seguridad para garantizar la disponibilidad mientras administra el tamaño y el crecimiento de los archivos de registro.

Otros consejos

Para simplemente vaciarlo:

backup log <dbname> with truncate_only  

Para guardarlo en algún lugar:

backup log <dbname> to disk='c:\somefile.bak'

Si realmente no necesita un historial de transacciones, intente configurar el modo de recuperación de la base de datos en simple.

ether realiza una copia de seguridad de los registros de su base de datos con regularidad si necesita recuperarlos al minuto o hacer otras cosas divertidas como el envío de registros en el futuro, o configurar la base de datos en modo simple y reducir el archivo de datos.

NO copie, cambie el nombre ni elimine el archivo .ldf, esto dañará su base de datos y, después de recuperarse, es posible que tenga datos en un estado inconsistente que los haga inválidos.

No creo que cambiar el nombre o mover el archivo de registro funcione mientras la base de datos esté en línea.

Lo más fácil de hacer, en mi opinión, es abrir las propiedades de la base de datos y cambiarla al modelo de recuperación simple.luego reduzca la base de datos y luego regrese y configure la base de datos en el modelo de recuperación completa (o cualquier modelo que necesite).

Cambiar el modo de registro obliga a SQL Server a establecer un punto de control en la base de datos, después de lo cual reducir la base de datos liberará el exceso de espacio.

Mi amigo que enfrentó este error en el pasado recomienda:

Intentar

  • Copia de seguridad de la base de datos.El plan de mantenimiento incluye el truncamiento de estos archivos.
  • También intente cambiar el 'modo de recuperación' de la base de datos a Simple (en lugar de Lleno por ejemplo)

Causa:El registro de transacciones aumenta debido a los eventos que se registran (tal vez tenga varias transacciones que fallan y se revierten).o un pico repentino en las transacciones en el servidor)

Es posible que desee consultar la pregunta SO relacionada:

Bueno, podrías tomar una copia del registro de transacciones y luego truncar el archivo de registro, que es lo que sugiere el mensaje de error.

Si el espacio en disco está lleno y no puede copiar el registro a otra máquina a través de la red, conecte una unidad mediante USB y cópielo de esa manera.

Tienes la respuesta en tu pregunta:Haga una copia de seguridad del registro y luego se reducirá.Haga un plan de mantenimiento para realizar copias de seguridad periódicas de la base de datos y no olvide seleccionar "Copia de seguridad del registro de transacciones".De esa manera lo mantendrás pequeño.

si es un no uso del entorno de producción

dump tran <db_name> with no_log;

Una vez que esto se haya completado, reduzca el archivo de registro para liberar espacio en el disco.Finalmente cambie el modo de recuperación de la base de datos a simple.

Tan pronto como realiza una copia de seguridad completa de la base de datos y la base de datos no utiliza el modelo de recuperación simple, SQL Server mantiene un registro completo de todas las transacciones realizadas en la base de datos.Hace esto para que, en caso de una falla catastrófica en la que pierda el archivo de datos, pueda restaurar hasta el punto de falla haciendo una copia de seguridad del registro y, una vez que haya restaurado una copia de seguridad de datos anterior, restaure el registro para reproducir los datos perdidos. actas.

Para evitar que esto se acumule, debe hacer una copia de seguridad del registro de transacciones.O puede romper la cadena en el punto actual usando las opciones TRUNCATE_ONLY o NO_LOG de BACKUP LOG.

Si no necesita esta función, configure el modelo de recuperación en Simple.

Mi querido amigo, es muy importante que un DBA revise su archivo de registro con bastante frecuencia.Porque si no le prestas mucha atención algún día te dará este error.

Para ello, debe realizar una copia de seguridad periódicamente para que el archivo de registros no presente dicho error.

Aparte de esto, la sugerencia dada anteriormente es bastante correcta.

Cámbiele el nombre.p.ej:
registro-antiguo-16-09-08.log

Entonces el servidor SQL puede usar uno nuevo y vacío.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top