none
Cómo y cuándo podemos reducir el fichero de transacciones RRS feed

Todas las respuestas

  • Hola Miriam Pasion:

    Los ficheros .ldf crecen y crecen sin medida.

    Eso depende del modelo de restauración establecido. Ya que en un modelo simple, se va a truncar automáticamente después de confirmar la transacción activa. (al menos es lo que debería de ocurrir).

    Dada tu pregunta habrá que pensar en que están establecidos como recuperación completa o registro masivo. Por tanto truncar el archivo de transacciones, rompe esa trazabilidad que ofrecen estos dos modelos de recuperación. Así la respuesta es un no.

    El hecho de que crezcan "sin medida", da la idea de que no están bien dimensionados para lo que tienen que anotar, o más probablemente, la política de backups de logs establecida, no tiene la suficiente periodicidad para que estos puedan tener un tamaño estable.

    Por tanto la manera más confiable es hacer backups del log.

    Backup Log

    https://docs.microsoft.com/es-es/sql/t-sql/statements/backup-transact-sql?view=sql-server-ver15

    Arquitectura del registro de transacciones (ver truncamiento del registro)

    https://docs.microsoft.com/es-es/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver15

    Registro de transacciones (Administración)

    https://docs.microsoft.com/es-es/sql/relational-databases/logs/the-transaction-log-sql-server?view=sql-server-ver15

    domingo, 6 de diciembre de 2020 11:57
  • Añado más información. Tenemos
    D: para DATA

    E: para LOGS (que va creciendo sin parar)

    F: para los BACKUPS.

    Un ETL (hecho por proveedor externo) se ejecuta 2 veces a diario, y hace los backups antes y después del proceso. Sin embargo, los LOGS no paran de crecer.

    Hacer el backup de la BBDD también hace el backup de los Logs?

    Entiendo que después de la última ejecución del ETL, que genera backup de BBDD, se puede ejecutar algún comando que reduzca los LOGS ?

    domingo, 6 de diciembre de 2020 13:27
  • Hola Miriam Pasión:

    BACKUP LOG <nombreBaseDatos> TO DISK='x:\xxxx'

    Ejecuta backups del log después de correr el ETL. 

    Esto no recupera el espacio ganado por el log durante la ejecución del primer proceso, pero es posible que no lo haga desmesuradamente, para el segundo.

    Quizá te convenga utilizar el modelo de recuperación simple. Donde el log se truncará solo.

    https://docs.microsoft.com/es-es/sql/relational-databases/backup-restore/recovery-models-sql-server?view=sql-server-ver15


    lunes, 7 de diciembre de 2020 7:46
  • Los ficheros .ldf crecen y crecen sin medida.

    Cuando ocurre esto, típicamente es porque tienes la base de datos configurada con el modelo de recuperación completo ("full recovery"), pero no estás haciendo backup del Log. El Log crece sin medida porque acumula todos los cambios que has hecho desde el último backup del log. Deja de crecer cuando haces el backup del log. Mientras no hagas esto, el "shrinkfile" no recuperará prácticamente nada de espacio.

    Si no tienes intenciones de hacer backups del log, entonces es mejor que cambies el modelo de recuperación y uses el Simple en lugar del Completo. Esto se cambia desde las Opciones de la base de datos en SSMS.

    lunes, 7 de diciembre de 2020 18:15