rene1976
Goto Top

SQL Server 2005 Transaktionsprotokoll kann nicht verkleinern, da Transkationen noch aktiv

Hallo SQL Server Gemeinde,

ich habe folgendes Problem mit meinem SQL Server 2005 Standard Sp2.
Das Transaktionsprotokoll ist mittlerweile größer als die eigentliche Datenbank.
Der Bericht Datenbankverwendung zeigt mir folgende Werte:

Datenbank: 13 GB
Transaktionsprotokoll: 19,5 GB
Gesamt: 32,5 GB

Als Backupverfahren verwende ich „Vollständig“
Leider läßt sich das Protokoll auch nicht verkleinern, da die Transaktionen in Protokoll noch als aktiv markiert sind.

Folgende Empfehlungen aus diversen Foren im Internet habe ich schon auf einer Testdatenbank versucht:
• Backup auf „Einfach“ gestellt.
• Transaktionsprotokoll extra gesichert.
• Shrinkfile …
• Backup log …
• Checkpoint manuell gesetzt

Das Problem ist immer wieder das gleiche. Der aktive Teil im Transaktionsprotokoll wird nicht auf inaktiv gesetzt. Somit kann ich das Protokoll nicht verkleinern oder abschneiden.

Nach langer Recherche im Internet und in der MSDN habe ich jetzt noch folgende mögliche Ursache herausgefunden.
use master
go
select * from sys.databases

In der sys.databases steht in den Spalten
log_reuse_wait = 6
log_reuse_wait_desc = REPLICATION

Ich vermute das das der Grund ist, warum er die Transaktionsprotokolle immer noch auf aktiv gesetzt hat. Deshalb kann ich die Protokolle auch nicht abschneiden. Der Server wartet möglicherweise immer noch auf die Replikation mit einer anderen Datenbank.
Das Beste an der Sache ist jedoch, dass niemals eine Replikation mit der Datenbank versucht wurde.

Also woher kommt die Einstellung und wie kann ich die Einstellung wieder ändern?
Wie kann ich die sys.databases Einträge ändern?
Ein normales update ist anscheinend nicht möglich?
Welche Tabellen stecken hinter der View sys.databases?

Kann das daran liegen, dass ich die Datenbank von SQL 7.0 auf SQL 2000 auf SQL 2005 portiert habe?
Auf SQL 2005 läuft sie mittlerweile ein gutes halbes Jahr ohne Probleme.

Weiterhin habe ich festgestellt, dass eine Transaktion nicht abgeschlossen ist.

use test
go
dbcc opentran

Mit folgender Meldung:
Transaktionsinformationen für die 'test'-Datenbank.

Replizierte Transaktionsinformationen:
Älteste verteilte LSN : (0:0:0)
Älteste nicht verteilte LSN : (460495:173:1)
Die DBCC-Ausführung wurde abgeschlossen. Falls DBCC Fehlermeldungen ausgegeben hat, wenden Sie sich an den Systemadministrator.

Wie kann ich die Transaktion abschließen oder löschen.
Ich denke dass alle Transaktionen nach dieser deshalb „aktiv“ bleiben und deshalb nicht abgeschnitten werden können.

Gibt es eine Abfrage, wie man erkennen kann seit wann die Transaktion hängt?
Gibt es eine Abfrage, wie man erkennen kann welche Transaktion hängt und was das hängen verursacht hat?
Was sagen mir die Zahlen LSN : (460495:173:1)?

Fragen über Fragen, wer weiß eine Antwort?
Die Zeit drängt, da die Backups und Restores mittlerweile zu lange dauern. Wir bekommen auch Timeouts von den Clients. Ich denke das sind Folgefehler durch zu langes schreiben und warten auf das zu große Transaktionsprotokoll.

Danke im Voraus für die Hilfe.
Grüße Rene

Content-Key: 79348

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

Printed on: April 24, 2024 at 12:04 o'clock

Member: Galaxyaner
Galaxyaner Dec 17, 2008 at 09:55:20 (UTC)
Goto Top
Hallo Rene,

hast Du schon mal probiert: (in Schritten)
1. Backup auf einfach stellen
2. Datenbank unter alle Tasks verkleinern von Datei auswählen
3. Danach öffnet sich ein Fenster bei Datei auf Protokoll stellen und ok
4. nachschauen ob das Protkoll nun kleiner ist
5. Backup wieder auf vollständig stellen
6. Vollbackup der Datenbank ausführen
7. Transactionsprotokoll sichern

Ich hoffe das es Funktioniert.

Gruß Maik
Member: goodbytes
goodbytes Feb 17, 2010 at 07:00:51 (UTC)
Goto Top
Hallo Rene,
dein Beitrag ist zwar schon eine ganze Weile her, aber nun stehe ich vor dem selben Problem.
Hast du damals eine Lösung gefunden?

Der Tip von Maik hatte bei mir nicht funktioniert.

Gruß
Torsten