Announcement

Collapse
No announcement yet.

Transaktionsprotokoll vergrößert sich beim Versuch es zu verkleinern!

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

  • Transaktionsprotokoll vergrößert sich beim Versuch es zu verkleinern!

    <p>Hallo,</p>
    <p>wir haben folgendes System im Einsatz:</p>
    <p><b>-Windows 2000 Cluster ( 2 PC's mit externem Raidsystem ).<br>
    -Sql-Server 2000 Enterpice Edition.</b></p>
    <p>Auf diesem System befindet sich eine 30 GB Datenbank mit 10 GB
    Transaktionsprotokoll. Das System läuft nun seit 2 Wochen. Täglich wird ein
    Vollsicherung gemacht. Dabei ist mir aufgefallen, das das Transaktionsprotokoll
    stetig wächst und nach der Sicherung nicht kleiner ist. Nun habe ich über den
    Menüpunkt &quot;Datenbank verkleinern&quot; Ansicht Taskpad versucht das
    Transaktionsprotokoll von Hand zu verkleinern, doch nach dem Versuch war das
    Transaktionsprotokoll um das doppelte größer.</p>
    <p>Die DB wurde bis vor kurzem auf einen anderen Rechner Repliziert. Ich habe
    die Replikation (Transaktionsreplikation) gelöscht. Mein Verdacht ist nun, das
    der SQL-Server das Transaktionsprotokoll nicht löscht weil er denkt das er die
    Transaktionen für die Replikaktion noch braucht. Ich habe alle Menü's
    durchsucht um vieleicht noch Reste von der Replikation zu finden. Ohne
    Erfolg!&nbsp;</p>
    <p>Aus Verzweiflung habe ich die DB gesichert&nbsp; und dann gelöscht um sie
    ganz neu zu erstellt. Nach dem Erstellen habe ich die Daten per (&quot;Daten
    importieren exportportieren&quot wieder in die DB gebracht. Diese Aktion hat
    aber leider nichts gebracht. Genau der selbe Effekt wie vorher.</p>
    <p>Kann mir vielleicht jemand von euch weiter helfen?</p>
    <p>Peter Schoch</p>
    <p>&nbsp;</p>

  • #2
    Hi,
    <br>
    <br>vieleicht hilft dir das weiter:
    <br>hier im Forum:
    <br>http://www.entwickler-forum.de/webx?128@@.ee84300
    <br>
    <br>mfg
    <br>p

    Comment


    • #3
      Hallo Patrick,</p>
      <p>danke für deinen Rat. Bei meinem Versuch die Datenbank zu verkleinern bin
      ich nach der Anleitung von H. Kosch vorgegangen. Den Eintrag ins Forum habe ich
      zuvor schon gelesen.</p>
      <p>Mein Problem ist aber nicht nur das das Transaktionsprotokoll nicht kleinere
      wird, sondern das es sich noch vergößert (verdoppelt). Beim Versuch es zu
      verkleinern.</p>
      <p>Peter Schoc

      Comment


      • #4
        Hallo,

        das Verhalten des SQL Servers hängt von der Konfiguration ab. Zur Sicherzeit wiederhole ich nochmals die Kernaussage:

        Die physische Datei ist intern in virtuelle Logdateien unterteilt, deren Anzahl und Größe von der aktuellen Datenbankaktivität abhängt. Jeder Eintrag im Transaction Log erhält eine eindeutige Log Sequence Number (LSN). Die physische Datei für das Transaktions-Log wächst immer dann an, wenn der Platzbedarf für die virtuellen Logdateien am Ende der physischen Datei angekommen ist und der SQL Server noch nicht die Log-Einträge vor der minimalen LSN gesichert hat. Die Log-Eintrag vor der minimalen LSN spielen beim Recovery keine Rolle mehr, werden allerdings für das Rollforward benötigt, wenn die Datenbank nach dem Einspielen des letzen Voll-Backups über die gesicherten Log-Dateien wiederhergestellt werden soll. Wenn diese Log-Sequenzen nicht benötigt werden, kann der SQL Server die Log-Einträge vor der minimalen LSN auch überschreiben, wenn eine der folgenden Bedingungen erfüllt wurde:<br>
        - Das Log wurde über die T-SQL-Aufrufe BACKUP LOG WITH NO_LOG oder BACKUP LOG WITH TRUNCATE_ONLY abgeschnitten. <br>
        - Das Abschneiden der Log-Datei wurde über trunc. log on chkpt automatisch angefordert (SQL Server 7) oder über das Wiederherstellungs-Modell Einfach angefordert (SQL Server 2000). <br>
        - Es wird seit dem letzten vollständigen Backup eine Operation durchgeführt, die keine Log-Dateien anlegt (Bulkcopy). <br>
        - Es wurde noch niemals ein vollständiges Datenbank-Backup ausgelöst.<br>
        Wenn eine dieser Bedindungen zutrifft, recycelt der SQL Server immer denn den "alten" Logbereich, wenn eine virtuelle Logdatei an das Ende der physischen Logdatei kommt. Das Abschneiden des Logs markiert also nur den wiederverwendbaren Platz der Logdatei, verkleinert diese jedoch nicht.

        Was passiert, wenn im Eigenschafts-Dialog der Datenbank auf der Registerseite <b>Optionen</b> für <b>Wiederherstellung | Modell</b> der Eintrag <b>Einfach</b> ausgewählt wird und dann ein Vollback mit anschliessendem Verkleinern der Logdatei durchgeführt wird? Wird für Modell der Eintrag <b>Vollständig</b> ausgewählt, entstehen zwangsläufig grosse Logdateien (entspricht <i>trunc. log on chkpt</i> = False und <i>Select Into/Bulk Copy</i> = False. Im Fehlerfall können die Daten bis zum Zeitpunkt des Absturzes wiederhergestellt werden, allerdings entstehen u.U. sehr große Logdateien). Wenn die Logdatei dann klein ist, kann man wieder zu Vollständig zurückwechseln

        Comment


        • #5
          Hallo Herr Kosch,

          entschuldigen Sie das ich mich jetzt erst melde aber ich hatte noch ein anderes wichtigeres Problem und bin in letzter Zeit nicht mehr dazu gekommen ins Entwickler-Forum zu sehen.

          Ihr Vorschlag hat funktioniert. Und zwar habe ich im Eigenschaftsdialog der Datenbank auf der Registerseite die Option für Wiederherstellung | Modell den Eintrag Einfach ausgewählt. Und das Transaktionsprotokoll hat sich nach 30 Sekunden enorm verkleinert.

          Dabei ist mir aufgefallen das auf meinem PC (Personal-Edition) der Defaultwert "Einfach" ist, aber auf dem Server (Enterprice-Edition) der Defaultwert "Vollständig" ist. Nun ist mir klar, wieso alle Versuche auf meinem PC funktioniert haben, aber auf dem Server nicht.

          Vielen Dank nochmal.

          Peter Schoc

          Comment

          Working...
          X