Announcement

Collapse
No announcement yet.

Transaktionsprotokoll auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Transaktionsprotokoll auslesen

    Hallo,

    gibt es eine Möglichkeit das Transaktionsprotokoll einer SQL-DB auszulesen? Ich habe bereits das Programm Log Explorer von Lumigent gefunden, da dieses Tool sehr kostenintensiv ist suche ich nach einer anderen Möglichkeit. Mit einem Tool, welches Dateien direkt von der Festplatte aus betrachtet, kann ich zwar hineinsehen und Fragmente betrachten. So richtig anfangen kann ich damit jedoch nicht, außerdem kann ich damit nur auf gesicherte T-Protokolle zugreifen.

    Ich kenne Ursachen für anwachsende T-Protokolle, jedoch kenne ich den Verursacher nicht. Das T-Protokoll einer meiner Datenbanken wächst stetig an und ich schneide es regelmäßig ab. Das passiert seit einiger Zeit (ca. 2 Monate), vorher wuchs es nur sehr selten so stark an. Es erreicht eine Größe von 60 GB (bis eben die Platte voll ist).

    Hat jemand Erfahrung mit dem Auslesen von Transaktionsprotokollen?

    Ich freue mich über jeden Vorschlag.

    Gruß Sylvia

  • #2
    Hallo,
    im Werkzeugkasten des MS SQL Server ist mit dem <b>Database Consitency Checker</b> (dbcc) bereits das benötigte Tool vorhanden. Der Aufruf von <i>dbcc log(Datenbank, 2)</i> liefert zum Beispiel in der Spalte <i>Object Name</i> die betroffene Tabelle für einen Log-Eintrag zurück.
    <br>
    Wenn die Datenbank nicht das Wiederherstellungsmodell <i>Einfach</i> verwendet, kappt nur eine regelmäßige Sicherung der Log-Datei die Dateigröße. Soll die Log-Datei nicht regelmäßig gesichert werden, muss man entweder auch das Wiederherstellungsmodell anpassen, indem dort <i>Einfach</i> ausgewählt wird (und die sich daraus ergebenden Einschränkungen in Kauf nehmen), oder die Log-Datei wird über <b>BACKUP LOG <i>Datenbank</I> WITH NO_LOG</b> entwertet.

    Comment


    • #3
      Hallo Andreas Kosch,

      der 1. Teil hilft mir schon viel weiter. Ich habe bereits mit dbcc-Befehlen gearbeitet, aber das ich damit das T-Protokoll auslesen kann war mich nicht bewusst zumal dieser Befehl in der Hilfe nicht dokumentiert ist. Bisher habe ich dbcc sqlperf(logspace) verwendet um große T-Protokolle zu ermitteln, um diese anschließend mit BACKUP LOG Datenbank WITH TRUNCATE_ONLY DBCC SHRINCDATABASE(Datenbank) abzuschneiden. Die T-Protokolle und Datenbanken werden täglich gesichert.

      Den 2. Teil habe ich noch nicht ganz verstanden. Das Wiederherstellungsmodus ist Vollständig und Automatisch verkleinern ist aktiviert. Ich nahm immer an, dass automatisch verkleinern das Transaktionsprotokoll verkleinert, sobald keine offenen Transaktionen mehr vorliegen. Ich kann jederzeit das Protokoll abschneiden, denn wennn offene Transaktionen vorhanden wären könnte ich es nicht abschneiden. Gibt es dafür eine Erklärung

      Comment

      Working...
      X