none
Mantenimiento log de transacciones en Mirroring de bases de datos RRS feed

  • Debate general

  • Buen día, el escenario es el siguiente:"tengo una base de datos que se encuentra en un modelo de mirroring; el archivo de log de dicha base de datos tiene configurado un plan de backups para controlar su crecimiento el cual se ejecuta cada 2 horas". actualmente el log de transacciones supero el tamaño disponible en disco y debí desmontar el mirror, cambiar el modelo de recuperación de la base de datos a simple, hacer backup del log en un disco externo, hacer shrink del log, cambiar el  modelo de recuperacion a full y reconfigurar el mirror.

    mi pregunta es la siguiente: ¿como puedo lograr controlar el crecimiento de los logs de esta base de datos?, ya que al parecer el plan de mantenimiento no esta logrando el objetivo. y no es funcional desconfigurar todo para poder reducir el log de transacciones.

    muchas gracias!

    lunes, 29 de agosto de 2016 19:46

Todas las respuestas

  • Saludos

    Primero sobre tus aciones.

    Que haces tu plan de mantenimiento? y a cual base la principal o la mirror?

    No debiste hacer lo que hiciste aunque el devolver la base a operativo talvez sea primordial. Primero veamos lo que hiciste al momento de pasas la base a mirror la base mismo pierde sus transacciones y el log queda libre con lo cual aunque el archivo mida 35gb internamente ya no tenia nada, seguramente tu backup termino rápido y muy pequeño sobre el log de transacciones.

    Cuando haces un backup del log de transacciones, la base secundaria libera esto de su log y lo limpia dejando ese espacio reservado para nuevas transacciones. Esta es la manera correcta de mantener una base de datos en mirror,  no backups en el mirror, sino sobre el primario.

    lunes, 29 de agosto de 2016 20:54
  • Hola Enrique, primero gracias por tu respuesta.

    El plan de mantenimiento se ejecuta sobre el servidor principal en la base de datos principal, y hace backups del log de transacciones cada 2 horas,  el dilema es que no se mantiene el log , y crece desmesuradamente,por tal motivo debí reducirlo, previamente corriendo un backup del log.


    lunes, 29 de agosto de 2016 21:00
  • Saludos Diego

    Te recuerdo que al hacer un cambio a simple recovery model truncas la cadena de backups, al no tener un backup full en el cual basarce tu base no tiene como hacer un backup log y este no se limpia en este caso necesitas un nuevo punto de partida, saca un full backup y luego vuelve a realizar los transacional log.

    Te recuerdo que un backup transaccional tiene que tener un backup o diferencial en el cual basarse, si cambias el modelo de recuperación rompes la cadena de backup.

    lunes, 29 de agosto de 2016 21:08
  • gracias Enrique, la cadena de bakcups la puedo regenerar sin problema, tengo el espacio suficiente para realizarlo; lo que quiero saber es como puedo realizar un correcto mantenimiento de los logs en una base de datos que se encuentra en mirroring, ya que cuando genero los backups de log no se mantiene el log, y sigue creciendo, no se si debo hacerlos con mas frecuencia horaria o realizar un job independiente (ya que se generan automaticamente por medio de un plan de mantenmiento) que relice los backups.
    lunes, 29 de agosto de 2016 21:17
  • Saludos

    Podrias usar un dbcc sqlperf(logspace) para verificar, dejame hago una prueba rapida.   

    lunes, 29 de agosto de 2016 21:20
  • Vale Enrique, aqui esta el resultado

    lunes, 29 de agosto de 2016 21:23
  • Saludos

    Aqui l o que vez es el nombre de la base, en la segunda columna el tamaño fisico del log y en la 3a que tan lleno esta en % siendo por ejemplo en nomina tienes un  log de 2gb que esta usando 10% internamente.

    lunes, 29 de agosto de 2016 21:25
  • De acuerdo enrique, en este caso la base de datos "Novasoft_509" por ejemplo tiene un uso del 99% del log, y ésta DB esta dentro del plan de mantenimiento que te comente, se le realizan bakups al log cada 2 horas y sigue creciendo.
    lunes, 29 de agosto de 2016 21:29
  • Diego buenas tardes,

    Antes que nada tomate tu tiempo y fijate lo que escribi en este post, vas a prender como funciona el LOG de las bases de datos.

    http://portalsql.com/index.php/2015/10/conociendo-el-transaction-log/


    Carlos Ignacio Aguero. DBA SQL Server. Toda mi respeto al pueblo Peruano por la ayuda prestada en la guerra de Malvinas.

    lunes, 29 de agosto de 2016 21:32
  • Vale Ignacio, gracias!
    lunes, 29 de agosto de 2016 21:33
  • Saludos

    Santa... ese log es de casi 300gb, el mirror sigue activo o lo rompieste? 

    podrias darme el resultado de select * from msdb.dbo.backupset si puedes filtrarlo por esa base seria mejor.

    lunes, 29 de agosto de 2016 21:34
  • Hola Enrique, el mirroring en esta base de datos esta habilitado, ya he programado una ventana para reducir dicho log, ahora no se como enviarte la info de la consulta select * from msdb.dbo.backupset , ya que es muy grande 
    lunes, 29 de agosto de 2016 21:45
  • Saludos Diego

    Considero que es información posiblemente sensible de tu organización, si consideras pertinente búscame en skype como enriarg y con gusto platicamos.


    • Editado Enrique AA martes, 30 de agosto de 2016 15:19
    lunes, 29 de agosto de 2016 21:48
  • vale enrique gracias, ya te ubico

    lunes, 29 de agosto de 2016 21:55