Frage

So unsere SQL Server 2000 ist mir der Fehler geben „Die Protokolldatei für Datenbank ist voll. Das Transaktionsprotokoll für die Datenbank einige Protokollspeicher freizugeben sichern.“

Wie gehe ich über diese Fixierung ohne das Protokoll zu löschen, wie einige andere Websites erwähnt haben?

Zusätzliche Information:. Automatische Vergrößerung aktivieren aktiviert ist um 10% wächst und wird auf 40 MB beschränkt

War es hilfreich?

Lösung

Scott, als Sie ahnen: das Protokoll Verkürzen ist ein schlechter Zug, wenn Sie über Ihre Daten kümmern

.

Die folgenden, frei, Videos werden Ihnen helfen, genau zu sehen, was los ist und Sie zeigen, wie das Problem zu beheben, ohne die Protokolle zu Kürzen. (Diese Videos auch erklären, warum das so ein gefährliches Hack und warum Sie richtig sind für eine andere Lösung zu suchen.)

Zusammen sind diese Videos helfen Ihnen zu verstehen genau, was los ist und wird Ihnen zeigen, ob Sie auf einfache Wiederherstellungs wechseln möchten, oder schauen Sie in tatsächlich Ihre Backup-Routinen zu ändern. Es gibt auch einige zusätzliche ‚How-to‘ Videos, die Ihnen genau zeigen, wie Sie Ihre Backups einzurichten Verfügbarkeit zu gewährleisten, während Protokolldatei Sizing und das Wachstum zu verwalten.

Andere Tipps

Um es einfach zu leeren:

backup log <dbname> with truncate_only  

Um es zu retten irgendwo:

backup log <dbname> to disk='c:\somefile.bak'

Wenn Sie nicht wirklich brauchen, Transaktionshistorie, versuchen, die Datenbank-Recovery-Modus auf einfache Einstellung.

Äther eines Backup Ihrer Datenbank Protokolle regelmäßig, wenn Sie brauchen, um die Minute zu erholen oder tun andere lustige Sachen wie Protokollversand in der Zukunft, oder die Datenbank zu einfachen Modus eingestellt und die Datendatei verkleinern.

NICHT kopieren, umbenennen oder die LDF-Datei löscht dies wird Ihre Datenbank brechen und nachdem Sie von diesem erholen können Sie Daten in einem inkonsistenten Zustand machen es ungültig.

Ich glaube nicht umbenennen oder die Protokolldatei bewegen arbeiten, während die Datenbank online ist.

Die einfachste Sache zu tun, IMO, ist es, die Eigenschaften für die Datenbank zu öffnen und es zu einfachem Wiederherstellungsmodell wechseln. dann die Datenbank schrumpfen und dann und stellen Sie die DB auf Full Recoery Modell zurückgehen (oder was auch immer Modell, das Sie benötigen).

Ändern der Protokollierungsmodus Kräfte SQL Server einen Checkpoint in der Datenbank zu setzen, wonach die Datenbank schrumpfen wird den überschüssigen Speicherplatz frei.

Mein Freund, der diesen Fehler in der Vergangenheit konfrontiert empfiehlt:

Versuchen

  • die DB sichern. Der Wartungsplan enthält Abschneiden dieser Dateien.
  • Versuchen Sie auch den 'Wiederherstellungsmodus' für die DB Umstellung auf Einfach (anstelle von Voll zum Beispiel)

Ursache: Das Transaktionsprotokoll schwillt aufgrund von Ereignissen (Vielleicht haben Sie eine Reihe von Transaktionen scheitern und zurückgerollt wird .. oder eine plötzliche Peaking in Transaktionen auf dem Server) protokollieren

Nun, Sie eine Kopie des Transaktionsprotokolls nehmen könnten, dann die Protokolldatei ab, das ist, was die Fehlermeldung deutet darauf hin.

Wenn der Speicherplatz voll ist, und Sie können das Protokoll auf einem anderen Rechner über das Netzwerk nicht kopieren, dann ein Laufwerk über USB anschließen und kopieren Sie es aus, dass die Art und Weise.

Sie haben die Antwort in Ihrer Frage: Backup des Protokoll, dann wird es verkleinert werden. Machen Sie einen Wartungsplan regelmäßig die Datenbanksicherung und vergessen Sie nicht die Option „Sicherung das Transaktionsprotokoll“. So können Sie es klein halten werden.

Wenn es eine nicht Produktionsumgebung

dump tran <db_name> with no_log;

Sobald dies abgeschlossen ist die Protokolldatei schrumpfen Speicherplatz freizugeben. Schließlich wechselt Datenbank-Recovery-Modus zu einfach.

Sobald Sie eine vollständige Sicherung der Datenbank übernehmen, und die Datenbank wird das einfache Wiederherstellungsmodell nicht verwenden, hält SQL Server eine vollständige Aufzeichnung aller Transaktionen je auf der Datenbank durchgeführt. Es tut dies, so dass im Fall eines katastrophalen Fehlers in dem Sie die Datendatei verlieren, können Sie zu dem Zeitpunkt des Fehlers wiederherstellen, indem Sie die Log-Sicherung und, sobald Sie eine alte Datensicherung gestellt haben, wiederherzustellen das Protokoll die verlorene replay Transaktionen.

Um dieses Gebäude zu verhindern up, müssen Sie das Transaktionsprotokoll sichern. Alternativ können Sie die Kette an der aktuellen Stelle brechen die TRUNCATE_ONLY oder NO_LOG Optionen von BACKUP LOG verwendet wird.

Wenn Sie diese Funktion nicht benötigen, auf einfache das Wiederherstellungsmodell.

Mein lieber Freund es ist Vey wichtig für ein DBA seine Protokolldatei recht häufig zu überprüfen. Denn wenn Sie geben nicht viel Aufmerksamkeit auf sie eines Tages es diesen Fehler geben wird.

Zu diesem Zweck haben Sie in regelmäßigen Abständen wieder aufzunehmen, so dass die Protokoll Datei nicht solche Fehler konfrontiert würde.

Andere dann ist dies der oben angegebene Vorschlag ganz recht.

es umbenennen. zB:
alt-log-16-09-08.log

Dann wird der SQL Server einen neuen leeren verwenden kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top