none
Probleme bei der Transaktionsprotokoll-Sicherung RRS feed

  • Frage

  • Wir haben einen SQL Server 2017 neu aufgebaut und setzen eine Standard Version von SQL Server ein. 

    Bei der Transaktionsprotokoll-Sicherung wird das Protokoll zwar gesichert, aber das Transaktionsprotokoll wird nicht geleert, Obwohl bei der Sicherung angegeben wird, daß das Transaktionsprotokoll geleert werden soll.

    Frage ich den verwendeten Speicher vom Transaktionsprotokoll mit sys.dm_db_log_space_usage ab, sind die werte nach der Sicherung unverändert. 

    Leider habe ich keine Idee woran das liegen kann. Ich bräuchte diesbezüglich dringend Hilfe, da die Logs ständig weiter wachsen.

     


    • Bearbeitet sglbs Donnerstag, 13. Februar 2020 14:14
    Donnerstag, 13. Februar 2020 13:09

Antworten

  • Du kannst schauen, ob es offene Transaktionen gibt:

    DBCC OPENTRAN

    Mit diesem Befehl kannst Du schauen, ob die VLFs belegt (2) oder frei (0) sind:

    DBCC LOGINFO

    Hast Du schon vorab ein Full-Backup der Datenbank gezogen?



    Einen schönen Tag noch, Christoph - http://www.insidesql.org/blogs/cmu

    Donnerstag, 13. Februar 2020 14:31
    Beantworter

Alle Antworten

  • I.d.R. liegt das daran, dass während der Sicherung noch laufende Transaktionen aktiv sind.
    Bei einem 24/7-Betrieb ist das normal.
    Man muss also ein Zeitfenster finden, wo wirklich keiner mehr eine Verbindung offen hält:

    https://www.faq-o-matic.net/2014/08/27/sql-server-transaktionsprotokoll-verkleinern/

    Donnerstag, 13. Februar 2020 13:25
  • Unter SQL Server 2012 war dies aber kein Problem.

    Wir führen stündlich eine Transaktionsprotokollsicherung durch und danach sind unter SQL Server 2012 die Logs wieder geleert und laufen nicht voll. Unter Sql server 2017 ist das nicht. Wieso.

    Donnerstag, 13. Februar 2020 14:17
  • Du kannst schauen, ob es offene Transaktionen gibt:

    DBCC OPENTRAN

    Mit diesem Befehl kannst Du schauen, ob die VLFs belegt (2) oder frei (0) sind:

    DBCC LOGINFO

    Hast Du schon vorab ein Full-Backup der Datenbank gezogen?



    Einen schönen Tag noch, Christoph - http://www.insidesql.org/blogs/cmu

    Donnerstag, 13. Februar 2020 14:31
    Beantworter
  • Vielen Dank für die Antworten. Ja es war eine offenen Transaktion. Wir haben diese beendet danach funktionierte wieder alles. Vielen Dank für die Hilfe.
    Freitag, 14. Februar 2020 13:59
  • Das Problem sind nicht offene Transaktionen, sondern langlaufende Transaktionen. Offene Transaktionen können immer vorkommen und sind kein Problem, wenn sie dann z. B. bei der nächsten Sicherung beendet sind. Denn spätestens zu dem Zeitpunkt kann das Log bereinigt werden. Neuere Transaktionen sind bereits in anderen VLFs unterwegs und dieses alte VLF kann gesichert und entsorgt werden.

    Anders ist dies bei langlaufenden Transaktionen. Diese verhindern unter Umständen über Stunden, dass ihre VLFs bereinigt werden können.

    Eine regelmäßige Sicherung von Transaktionen kann ruhig alle 15 oder 20 Minuten durchgeführt werden.


    Einen schönen Tag noch, Christoph - http://www.insidesql.org/blogs/cmu

    Freitag, 14. Februar 2020 14:23
    Beantworter