Ich teste, wie bestimmte Vorgänge unter verschiedenen Wiederherstellungsmodellen protokolliert werden. Nachfolgend sind die Schritte aufgeführt, die ich bisher ausgeführt habe
1. Datenbank im vollständigen Wiederherstellungsmodell
erstellen 2. Sicherung durchführen
3. Tabelle erstellen und 10 Millionen Datensätze
einfügen 4. Protokollsicherung durchführen, VLF-Anzahl überprüfen und Prozentsatz des freien Protokollspeicherplatzes
anzeigen 5. Jetzt eine Indexwiederherstellung durchführen und die mit generierten Datensätze anzeigen fn_dblog Funktion
6. Jetzt habe ich auf das Massenwiederherstellungsmodell umgestellt.
7. Eine Sicherung durchgeführt.
8. Eine Protokollsicherung durchgeführt.
9. Eine Indexwiederherstellung durchgeführt
Seltsamerweise schlägt die Indexwiederherstellung mit dem folgenden Fehler fehl.
Die Anweisung wurde beendet. Meldung 9002, Ebene 17, Status 2, Zeile 1 Das Transaktionsprotokoll für die Datenbank 'Bulklogging' ist aufgrund von 'LOG_BACKUP' voll.
das stimmt eigentlich nicht
Das automatische Wachstum des 1.log-Speicherplatzes ist nicht eingeschränkt
2. Platz auf dem Speicherort der Protokolldatei
Kann mir jemand helfen zu verstehen, warum ich über den Fehler hinausgehe, obwohl Platz vorhanden ist und das automatische Wachstum nicht eingeschränkt ist
Hinzufügen eines Bildes mit Indexgröße.
Das Problem wurde behoben, aber nicht sicher, wie diese Änderung den Unterschied ausmachte. Alle Hinweise wären sehr willkommen.
Kommentar sagt zwei lange - also hier posten ...
Ich habe den Index erneut ausgeschrieben, nachdem ich das Wiederherstellungsmodell geändert hatte, und dann hat es funktioniert. Darüber hinaus wurde der geskriptete Index vor und nach genau gleich geblieben, nur die Sitzung wurde geändert. Aber ich bin nicht sicher, wie dies funktioniert hat.
Vor :
USE [bulklogging]
GO
ALTER INDEX [PK__bcc__3213E83FAC9DB5ED] ON [dbo].[bcc]
REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
GO
Nach:
USE [bulklogging]
GO
ALTER INDEX [PK__bcc__3213E83FAC9DB5ED] ON [dbo].[bcc]
REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
GO
Update zum Schließen dieser Frage:
Ich verwende Fn_dblog, um Protokolldatensätze zu überprüfen. Dies scheint einen versteckten Fehler zu haben, wie hier beschrieben , der mein Protokollwachstum beeinflussen kann.
Edit 15.08.13: Vorsicht - Jonathan hat gerade von einem Kundensystem erfahren, das dies ausgiebig nutzt, dass jedes Mal, wenn fn_dump_dblog aufgerufen wird, ein neuer versteckter SQLOS-Scheduler und bis zu drei Threads erstellt werden, die nicht verschwinden (und nicht verschwinden) wiederverwendet werden), bis ein Server neu gestartet wird. Es ist ein Fehler, den das SQL-Team beheben wird, nachdem wir sie darauf aufmerksam gemacht haben. Mit Vorsicht verwenden.
Bearbeiten 15.05.15: Es wurde in SQL Server 2012 SP2 + und SQL Server 2014 behoben. Das Update wird nicht früher zurückportiert.