hkhan
Goto Top

Microsoft SQL 2005 Transaktionsprotokoll

ist zu groß und es sind mehrere Dateien!?

Guten Tag zusammen,

unsere (Haupt-) Datenbank ist ca. 200 GB groß. Vor kurzem mussten wir unsere Datenbank konvertieren. Beim konvertieren, wurde die Transaktions-Log Datei so groß, dass wir 2 weitere Dateien auf weiteren Festplatten erstellen mussten.

Ist es nun möglich die überflüssigen Log-Dateien zu entfernen? Die Datensicherung der Transaktions-Log Datei läuft ebenfalls nicht mehr (über 350 GB)..

Wie kann man eine Log-Datei verkleinern und die überflüssigen entfernen?

Freue mich über jeden Tipp..

Gruß

Content-Key: 100343

Url: https://administrator.de/contentid/100343

Ausgedruckt am: 19.03.2024 um 02:03 Uhr

Mitglied: AndreasHoster
AndreasHoster 27.10.2008 um 14:28:09 Uhr
Goto Top
Die Dateien physisch zu verkleinern geht über das SQL Server Management Studio.
Datenbank -> Kontextmenü -> Tasks -> Shrink
Wieder auf eine Log Datei zurückzukommen geht soweit ich weiß nur über Backup/Restore, ich wüsste jedenfalls nicht wie ich das im laufenden Betrieb hinkriegen sollte.
Mitglied: Hkhan
Hkhan 27.10.2008 um 14:59:39 Uhr
Goto Top
also aus einer aktuellen Datensicherung eine komplette Rücksicherung?
Mitglied: AndreasHoster
AndreasHoster 27.10.2008 um 16:06:55 Uhr
Goto Top
Ich glaube, ich war da etwas voreilig.
Wenn ich mich jetzt richtig erinnere, kann ich zwar die Dateien beim Restore beliebig neu verteilen, aber ich muß für jede alte Datei einen Speicherort angeben. Würde bedeuteten, daß ich auch darüber die zusätzlichen Logdateien nicht wegbekomme, aber man könnte sie alle in ein Verzeichnis legen.

Aber von der ursprünglichen Idee her ja, eine komplette Rücksicherung.
Mitglied: Hkhan
Hkhan 27.10.2008 um 17:38:22 Uhr
Goto Top
und wenn man die Dateien nicht komplett entfernt, sondern nur verkleinern? Am besten so, dass wieder eine Datensicherung in einer akzeptablen Größe möglich ist..?

Vielen Dank schonmal für die schnellen Antworten...
Mitglied: MadMax
MadMax 28.10.2008 um 17:43:46 Uhr
Goto Top
Hallo Hkhan,

Dateien einer Datenbank zu entfernen geht im SQL Server Management Studio. Dort mit der rechten Maustaste auf die Datenbank und dann in die Eigenschaften. Links im Menü wählt man "Dateien" und kann dann auf der rechten Seite die Dateien auswählen und unten "Entfernen" klicken.

Dateien verkleinern hat ja Andreas Hoster oben schon beschrieben.

Wenn beides nicht funktioniert, weil ja das Transaktionsprotokoll noch voll ist, muß es erst mal gesichert (ok, geht ja nicht) oder geleert werden. Das funktioniert mit dem Befehl:
backup log <Datenbank> with no_log

Gruß, Mad Max
Mitglied: Hkhan
Hkhan 29.10.2008 um 11:55:29 Uhr
Goto Top
Hi Mad Max,

ich denke, dass das genau der richtige Befehl ist den ich suche. Ich habe einen neuen Wartungsplan erstellt, "Task 'T-SQL-Anweisung ausführen'" und wurde auch erfolgreich abgeschlossen (nach wenigen Sekunden) und die Log Datei ist nicht wirklich kleiner geworden...

<Datenbank> = gebe ich hier den Datenbanknamen oder den Transaktionsprotokoll mit dem genauen Dateinamen?

Hab da mit Sicherheit was falsches eingegeben?

Gruß
Hkhan
Mitglied: MadMax
MadMax 29.10.2008 um 12:31:32 Uhr
Goto Top
Hallo Hkhan,

<Datenbank> ist der Name der Datenbank. Wenn der Name Leer- oder irgendwelche Sonderzeichen enthält, dann noch mit eckigen Klammern drum (schaden tun die eh nicht). Wenn die Datenbank also "HkhanDB" heißt, dann ist der Befehl:
backup log [HkhanDB] with no_log

Die Log-Datei wird dadurch aber nicht kleiner. Sie wird nur geleert, damit man sie anschließend verkleinern oder löschen kann. Wenn der Task also wenige Sekunden gedauert hat und erfolgreich war, dann hast Du wahrscheinlich nichts falsches eingegeben, sondern brauchst nur noch zu verkleinern (s.o. bei Andreas Hoster) oder löschen (s.o. mein erster Beitrag)

Gruß, Mad Max
Mitglied: Hkhan
Hkhan 29.10.2008 um 12:46:54 Uhr
Goto Top
perfeeeeekt!!!!! Hat geklappt!! Vielen vielen Dank für die hilfreichen Ratschläge face-wink

Gruß

Hkhan
Mitglied: Hkhan
Hkhan 29.10.2008 um 12:48:13 Uhr
Goto Top
wenn ich schon so weit bin... hab ich noch eine Frage... wie kann ich die tatsächliche Datenbank dann so bereinigen, dass unnötiges gelöscht/entfernt wird?
Mitglied: MadMax
MadMax 29.10.2008 um 12:52:28 Uhr
Goto Top
Hallo Hkhan,

was verstehst Du unter "bereinigen" und "unnötiges gelöscht/entfernt"? Was ist denn an unnötigen Sachen in der Datenbank?

Gruß, Mad Max
Mitglied: Hkhan
Hkhan 29.10.2008 um 13:00:48 Uhr
Goto Top
unsere Datenbank ist ca. 250 GB groß. Tägliche Cleanups werden zwar durchgeführt, aber ich kann mir nicht vorstellen dass die 250 GB korrekt sind? Oder kann das wirklich sein?

Ich habe nämlich schonmal gelesen, dass in der SQL-Datenbank auch ungültige Einträge entstehen können die man auch bereinigen kann!?

Oder ist damit nur Transaktions.log gemeint?

Vielen Dank nochmals für die superschnellen Antworten...

Gruß

Hkhan
Mitglied: MadMax
MadMax 29.10.2008 um 18:03:24 Uhr
Goto Top
Hallo Hkhan,

ob 250GB für Eure DB ok sind oder nicht, kann Euch wohl nur der Hersteller Eures Programmes sagen. Allein an der Größe ohne sonstige Informationen kann man nicht festmachen, ob da was nicht stimmt. Von SQL Server ist mir jedenfalls nichts bekannt, daß sich da irgendwo Müll ansammelt, der regelmäßig geleert werden müßte.

Was Du probieren kannst ist, die DB zu verkleinern (Kontextmenü/Tasks/Verkleinern/Datenbank) und dabei das Häkchen in der Mitte bei "Dateien vor dem Freigeben ..." setzen. Wenn da Luft in der DB ist, wird sie dann abgelassen.

Gruß, Mad Max
Mitglied: Hkhan
Hkhan 31.10.2008 um 09:45:40 Uhr
Goto Top
hab ich auch schon versucht. Aber die Datenbank ist recht groß. Also könnte es tatsächlich sein, dass die 250 GB i. O. sind!

Aber jedenfalls das erreicht, was ich wollte! Transaktions-Logs werden nun wieder gesichert!

Vielen Dank nochmals!

Gruß
Hkhan