Disco log de transacciones esta lleno

DISCO LOG TRANSACCION ESTA LLENO

Si se nos llena el disco del Log de transacciones, para arrancar, debemos liberar al menos 1.5gb, se nos para el flujo de correo o la base de datos será desmontada, y no podremos re-montarla hasta tener 1.5 Gb libre

Cada cambio realizado en Exchange se escribe al log de transacciones. Si el servidor se reinicia inesperadamente, la base de datos se pone en estado “dirty shutdown” y entonces se usa el checkpoint para decir al servidor que entradas de Log tiene que ser “replayed” para recuperar la información que se perdió en el buffer de la memoria RAM

Las causas so o que el disco está lleno, o no tenemos habilitado el circular logging. El impacto es el siguiente

  • Ya no entran mails entrantes ni salientes
  • La base de datos falla al montar o desmontar

Solución:

  • Determinar que logs no son necesarios para el restore
  • Mover (NO BORRAR) los logs a otra ubicación
  • Remontar la base de datos y verificar que el log de transacciones necesarios para el restore, están disponibles

Despues de que un backup se ha terminado, el programa de backup emitirá un comando VSS (volumen shadow copy service) al servidor que estaciendo backup de la base de datos, y entonces truncará el log de transacciones

El servidor procede a eliminar los logs de transacciones hasta el log más cercano que indica el checkpoint

01..- Como determinar los logs que son necesarios

Hay 2 maneras

  • Leer el campo “checkpoint” el fichero de chekpoint E01.chk, el cual nos lista el log más antiguo necesario para el restore
  • Leer el campo “log required” en el Database header, el cual nos lista el rango de logs necesario para la recuperación

El primer método trabaja en todas las versiones de Exchange, y el segundo a partir de la 2000

  • Leer el checkpoint File (ojo en la ruta del servidor Activo si es un DAG)

Tenemos la base de datos parada, y buscamos la ruta de Logs de la base de datos el fichero [prefix].chk, por ejemplo E01.chk

Una vez localizado lo leemos usando eseutil (C:\Program Files\Microsoft\Exchange Server\V14\Bin), en el 2010. No ponemos en el directorio del log (para no poner la ruta completa

  • Cdcd c:\MBX\BD03\LOGS
  • Eseutil /MK E01.chk

Nos saldrá algo como checkpoint (0x413,8,16) … dependerá de cada base de datos lógicamente

  • El primer número de la lista es el importante (0x413), el cual lista el número de secuencia del log más antiguo necesario para recuperar la base de datos.
  • Los otros dos números son offset en el log file, y no importan mucho

Como vemos mis logs llegan hasta el E0100000412.log, por lo que necesitaría a partir del 413, así que puedo MOVER a otra ubicación desde el 412,411,400… hacia atrás

Si monto la base de datos, sin esos logs, me los monta correctamente

  • Leer camp “log required” en el header de la base de datos

En el caso de que la base datos se haya desmontado o no podamos montarla, o si la base de datos puede ser desmontada, o si la base de datos no se pueda desmontar, con el siguiente comando podemos determinar que log es necesario para el recovery de la base de datos. Es el campo LOG required

  • Eseutil /MH .\BD03.edb

Donde 0-0 es el principio y el final del numero log requeridos para restaurar. Estos números están en formato decimal, y los logs están en hexadecimal, asi que tendremos que usar los números entre paréntesis (0x21EE-0x21F2) para localizar los logs que necesitamos. En este caso necesitaríamos los logs E02021EE a E02021F2

 

Si el “log required” es 0x0 significa que la base de datos ha sido Shutdown limpiamente y a sido detachada de las propiedades del log. Esta base de datos no necesita de ningún log de transacciones para ser montada de nuevo, pero esto no significa que deberíamos eliminar todos los logs de transacciones

 

Si el “log required” es 0x0 en una base datos, el header de cada una de las otras bases de datos en el storage groiup debe ser chequeada usando eseutil /MH .\BD03.edb y que cada base de datos muestra “log required: 0x0” y estado “clean shutdown

Si es así, podemos eliminar todos los Log, (excepción del current log file “Exx.log) para montar la base de datos. Exchange crea una nueva serie de Log Files 1 (es lo que se llama “reseteando log series”),

Sin embargo, si el current log está en su sitio, no habrá problemas para montar la base de datos

 

02.- Mover logs de transacciones a otra partición o disco para liberar espacio

Una vez determinado los logs innecesarios para hacer un full restore, el siguiente paso es mover estos logs innecesarios a otro disco. Una vez reclamado 1.5 GB de espacio libre, la base de datos la podríamos montar

Mount-Database BD03

 

03.- remontar la base de datos

Montamos la base de datos. Lo más seguro es que corra unos pocos test para verificar, y tener en cuenta que puede estar reconstruyendo colas

TroubleShooting

Sin los logs files necesarios no hay forma de montar la base de datos sin un restore

 

Como Exchange maneja en Log de transacción

Podemos usar dos métodos usadoa por Exchange para purgar log files antiguos que el disco no rellena

  • Circular logging: cuando está habilitado, tan pronto el checkpoint pasa a través de un log file, este log ya no es necesario por ninguna base de datos para un posible “crash reciover”, por lo que el log se borra

No habrá más que media docena de logs circulando

  • Hacer un online Backup: al hacer un backup FULL de la base de datos, Exchange elimina automáticamente los logs que no necesita para hacer un “roll forward” desde un backup. Los logs también son borrados después de un backup incremental

Be the first to comment

Leave a Reply