Datenbankoperationen viel Zeit in Anspruch nehmen oder sie Fehler ausgelöst, wenn das Transaktionsprotokoll verfügt über zahlreiche virtuelle Protokolldateien

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 2028436
Problembeschreibung
In einer Umgebung mit SQL Server 2008 können die folgenden Symptome auftreten:
  • Eine oder mehrere Datenbanken sehr lange dauern Wiederherstellung beim Start von SQL Server beendet.
  • Beim Wiederherstellen einer Datenbank ausführen, wird eine sehr lange dauert.
  • Versucht, eine Datenbank anzufügen sehr lange dauern abgeschlossen.
  • Beim Spiegeln von Datenbanken einrichten treten Fehlermeldungen 1413 1443 und 1479 einen Timeout angibt.
  • Speicherbezogene Fehler wie 701 auftreten, wenn Sie versuchen, eine Datenbank wiederherzustellen.

Bei der SQL Server-Fehlerprotokoll, bemerken Sie, dass viel Zeit vor der Analysephase den Datenbankwiederherstellungsvorgang entfällt.
2010-05-08 14:42:38.65 spid22s Datenbank 'Lot_of_vlfs' gestartet.
2010-05-08-14:46:04.76 spid22s Analyse der Datenbank 'Lot_of_vlfs' (16) ist 0 % abgeschlossen (0 Sekunden bleiben). Phase 1 von 3 Dies ist eine informative Meldung. Es ist keine Benutzeraktion erforderlich.

Ursache
In der Anfangsphase einer Datenbankwiederherstellungsvorgang führt SQL Server eine Ermittlung aller virtuellen Protokolldateien in alle Transaktionsprotokolldateien vorhanden. Eine Liste aller virtuellen Protokolldateien erstellt. Dieser Vorgang dauert sehr lange abhängig von der Anzahl der virtuellen Protokolldateien in die Datenbank vorhanden. Eine Datenbank kann eine große Anzahl virtueller Protokolldateien am Ende das Transaktionsprotokoll findet häufig Auto-Wachstum seit sehr klein Schritten wachsen.

Normalerweise beginnen Sie im Abschnitt "Symptome" wird die Anzahl der virtuellen Protokolldateien im Bereich mehrere hunderttausend beschriebenen Probleme auftreten.
Lösung
Methoden aus der folgenden Blog können Sie die Anzahl virtueller Protokolldateien in einer bestimmten Datenbank finden:
Wie eine Protokoll-Dateistruktur Wiederherstellungszeit Datenbank auswirken

Möglicherweise wird die Gesamtzahl der virtuellen Protokolldateien unter einer angemessenen Zahl, z. B. 10.000 beibehalten.

Sie können die Protokolldatei nur eine begrenzte Anzahl virtueller Protokolldateien enthalten, mithilfe der folgenden Methoden konfigurieren:
  1. Verkleinern die Transaktionsprotokolldateien, Dateien auf die erforderliche Größe manuell mithilfe der TSQL ALTER DATABASE vergrößert <database name="">MODIFY FILE (NAME = 'logischen Dateinamen Transaktion log', Größe = <required size="">)</required> </database>
  2. Neu erstellen Sie die Transaktionsprotokolldatei und dann manuell die Transaktionsprotokolldateien zu den erforderlichen Längen:
    1. Wenn die Datenbank zuvor ordnungsgemäß (mit Benutzern keine offenen Transaktionen) heruntergefahren wurde, können für ATTACH_REBUILD_LOG-Option von CREATE DATABASE Sie eine neue Protokolldatei erstellt.
    2. Wenn eine Datenbank mit Lese-/Schreibzugriff automatisch eine einzelne Protokolldatei, der momentan nicht verfügbar ist wurde, und wenn die Datenbank heruntergefahren reinigen [mit Benutzern keine offenen Transaktionen] vor der Anfügevorgang Option von CREATE DATABASE FOR ATTACH erstellt die Protokolldatei und die primäre Datei aktualisiert.

Nachdem Sie das Layout der Transaktionsprotokolldatei neu konfigurieren, überprüfen und stellen müssen die Einstellungen für die Transaktionsprotokolldatei verhindern dasselbe Problem zukünftig automatische Vergrößerung.

Hinweis Vor dem Durchführen dieser Operationen unbedingt gültige wiederherstellbare Sicherung verfügen, falls später Probleme auftreten.

2524743 Update: Recovery dauert länger als erwartet für eine Datenbank in einer SQL Server 2008 oder SQL Server 2008 R2-Umgebung

2455009 Update: Geringe Leistung, wenn Sie eine Datenbank wiederherstellen, wenn es viele VLFs innerhalb des Transaktionsprotokolls in SQL Server 2005, SQL Server 2008 oder SQL Server 2008 R2 gibt

2653893 Update: Es dauert sehr lange zum Wiederherstellen einer Datenbank in SQL Server 2008 R2

979042 Update: Die Prinzipaldatenbank wird nicht wiederhergestellt, wenn die Datenbank eine große Anzahl virtueller Protokolldateien in SQL Server 2005 oder SQL Server 2008

2882905 Eine 9017 Meldung wird protokolliert, wenn Sie einer Instanz von starten SQL Server wiederherstellen oder einer Datenbank anfügen

Weitere Informationen
Vollständige Informationen zu virtuellen Protokolldateien finden Sie unter der folgenden Onlinedokumentation: Physische Architektur des Transaktionsprotokolls

Weitere Informationen zu diesem Problem finden Sie unter:

Wie eine Protokoll-Dateistruktur Wiederherstellungszeit Datenbank auswirken
Transaction Log VLFs - zu viele oder zu wenige?
ist zu viele 1413 Fehlermeldung beim Starten von Datenbank-Spiegelung – wie viele virtuelle Protokolldateien

Achten Sie auch auf ein bekanntes Problem mit Transaktionsprotokolle:

2633151 SQL Server-Transaktionsprotokolldatei wächst nicht vom Wert konfigurierten Wachstum

Hinweis Eine wichtige Änderung in SQL Server 2014 Algorithmus Erstellung VLF lernen:


Weitere Informationen zu den Produkten und Tools automatisch diese Bedingung auf die Instanz von SQL Server und der SQL Server-Versionen überprüft finden Sie in der folgenden Tabelle:

Regel-softwareRegel-TitelBeschreibungProduktversionen, die Regel ausgewertet wird
SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA)




Datenbanken mit vielen VLF vorhanden





SQL Server 2008 R2 Best Practice Analyzer (SQL Server 2008 R2 BPA) enthält eine Regel, um Situationen erkennen, in dem die Datenbanken eine große Anzahl virtueller Protokolldateien enthalten. SQL Server 2008 R2 BPA unterstützt SQL Server 2008 und SQL Server 2008 R2.

Wenn Sie BPA-Tool ausgeführt und einen Fehler mit dem Titel der Datenbank-Engine - Datenbanken mit vielen VLF vorhanden ist, müssen Sie überprüfen die Anzahl virtueller Protokolldateien für die betroffene Datenbank und die Transaktionsprotokolldateien konfigurieren.
SQL Server 2008
SQL Server 2008 R2






SQL Server 2012 Best Practice Analyzer (BPA für SQL Server 2012)



Datenbanken mit vielen VLF vorhanden




SQL Server 2012 Best Practice Analyzer (BPA für SQL Server 2012) enthält eine Regel, um Situationen erkennen, in dem die Datenbanken eine große Anzahl virtueller Protokolldateien enthalten.

Wenn Sie BPA-Tool ausgeführt und einen Fehler mit dem Titel der Datenbank-Engine - Datenbanken mit vielen VLF vorhanden ist, müssen Sie überprüfen die Anzahl virtueller Protokolldateien für die betroffene Datenbank und die Transaktionsprotokolldateien konfigurieren.
SQL Server 2012








Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 2028436 – Letzte Überarbeitung: 08/05/2015 20:25:00 – Revision: 6.0

Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web

  • kbmt KB2028436 KbMtde
Feedback