Een volledige transactielogboek in SQL Server-database herstellen

INLEIDING

Volledige transactielogboeken kunnen u uw Microsoft SQL Server database onbruikbaar. In dit artikel wordt beschreven hoe afkappen en verkleinen van de transactielogboeken wanneer ze te groot groeien. In dit artikel wordt tevens beschreven hoe om te voorkomen dat de transactielogboeken onverwacht groeien.

Meer informatie

Stap 1: beperken van de grootte van het transactielogboek


Wanneer het transactielogboek vol is, moet u de grootte van de transactielogboeken te verminderen. Hiervoor hebt u de inactieve transacties in het transactie-log afkappen en verklein het transactielogbestand.

Opmerking De transactielogboeken zijn zeer belangrijk voor het onderhouden van de transactionele integriteit van de database. Niet verwijderen de transactielogbestanden, zelfs nadat u een back-up van de database en de transactielogboeken. Stap 2: de niet-actieve transacties in het transactie-log afkappen


Wanneer het transactielogboek vol is, onmiddellijk back-up van het transactielogboek. Tijdens de back-up van de transactielogboeken in SQL Server automatisch het inactieve deel van het transactielogbestand afgekapt. Het inactieve deel van het transactielogbestand bevat de voltooide transacties, zodat het transactielogbestand niet langer door SQL Server tijdens het herstelproces gebruikt wordt. Deze ingekort, inactieve ruimte in het transactielogboek in plaats van dat het transactielogboek blijven groeien en meer ruimte gebruiken hergebruikt door SQL Server.

Ga naar de volgende onderwerpen in SQL Server Books Onlinevoor meer informatie over de problemen die u overwegen moet wanneer u een back-up van de transactielogboeken en bij het terugzetten van de reservekopieën van transactielogbestanden:
  • Transactielogboeken
  • Reservekopie van het transactielogboek maken en terugzetten
U kunt ook de niet-actieve transacties van een transactielogbestand verwijderen met behulp van de methode Truncate . Zie het onderwerp 'Het transactielogboek kappen' in SQL Server Books Onlinevoor meer informatie over het breken van de transactielogboeken.

Belangrijk Nadat u handmatig de transactielogboekbestanden afkappen, moet u een volledige databaseback-up maken voordat u een reservekopie van het transactielogboek maken.

Voor meer informatie over de problemen die optreden kunnen wanneer u de transactielogboekbestanden afkappen, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base:

62866 redenen waarom SQL-transactielogboek niet wordt afgekapt

Stap 3: het transactielogboekbestand wordt verkleind


De back-upbewerking of de methode Truncate daalt niet de grootte van het logboek. U moet het transactielogbestand verkleinen zodat de grootte van het transactielogboekbestand. Verkleinen van een transactielogboekbestand op de aangevraagde grootte en verwijder de ongebruikte pagina's, moet u de bewerking DBCC SHRINKFILE. De DBCC SHRINKFILE Transact-SQL-instructie kan alleen het inactieve deel van het logboekbestand verkleinen.

Opmerking De DBCC SHRINKFILE Transact-SQL-instructie kan het logboek afkappen en verkleinen van de gebruikte schijfruimte van het logbestand op zijn eigen.

Zie de volgende onderwerpen in SQL Server Books Onlinevoor meer informatie over het verkleinen van de transactielogbestanden:
  • Het transactielogboek
  • DBCC SHRINKFILE
Voor meer informatie over het verkleinen van de transactielogboeken in SQL Server 2000, klikt u op het volgende artikelnummer in de Microsoft Knowledge Base:

272318 verkleinen van het transactielogboek in SQL Server 2000 verkleinen met DBCC SHRINKFILE

Voor meer informatie over de problemen die optreden kunnen wanneer u de transactielogboekbestanden verkleinen, klikt u op de volgende artikelnummers om de artikelen in de Microsoft Knowledge Base:

814574 PRB: Foutbericht: 'Kan logboekbestand...' treedt op wanneer u het transactielogbestand verkleinen

324432 PRB: DBCC SHRINKFILE en SHRINKDATABASE opdrachten werken niet omdat het zeer gevulde text, ntext of image-kolommen


Stap vier: voorkomen dat de transactielogbestanden groeien onverwacht


Om te voorkomen dat de transactielogbestanden groeien onverwacht, kunt u overwegen een van de volgende methoden:
  • De grootte van de transactie logboekbestanden op een hoge waarde om te voorkomen dat de automatische uitbreiding van de transactielogboeken instellen.
  • De automatische uitbreiding van transactielogboekbestanden configureren met behulp van geheugen-eenheden in plaats van een percentage, nadat u de grootte van het geheugen optimaal grondig evalueren.

    Voor meer informatie over de afwegingen die moeten worden wanneer u de optie autogrow configureert, klikt u op het volgende artikel in de Microsoft Knowledge Base:

    315512 -overwegingen bij de autogrow- en autoshrink-configuratie

  • Het herstelmodel wijzigen. Als er een ramp of gegevens beschadiging optreedt, moet u de database herstellen zodat de consistentie van de gegevens en de transactionele integriteit van de database worden onderhouden. Op basis van hoe belangrijk is de gegevens in uw database, kunt u een van de volgende herstel modellen om te bepalen hoe uw back-up en wat uw blootstelling aan het verlies van gegevens is:
    • Eenvoudige herstelmodel
    • Model voor volledig herstel
    • Herstelmodel Bulk-logged

    Het eenvoudige herstelmodel kunt u uw database om de meest recente back-up van uw database te herstellen. Of u kunt het model voor volledig herstel of het herstelmodel bulk-logged uw database om het punt te herstellen wanneer de fout is opgetreden. Hiertoe uw database te herstellen met behulp van het bestand van de transactielogboeken.

    In SQL Server 2000 en SQL Server 2005 is het herstelmodel voor de SQL Server-database standaard het model voor volledig herstel. Bij het model voor volledig herstel, regelmatig back-ups van het transactielogboek gebruikt om te voorkomen dat de grootte van het logboek van de transactie in toenemende mate verhoudingen in de grootte van de database. Echter als u regelmatig back-ups van het transactielogboek niet worden uitgevoerd, het transactielogboekbestand groter wordt de schijf vult, en mogelijk niet alle bewerkingen voor het wijzigen van gegevens op de SQL Server-database uitvoeren.

    Kunt u het herstelmodel van volledige op eenvoudig als u niet wilt dat de transactielogboekbestanden gebruiken tijdens een bewerking disaster recovery.
  • Back-up van de transactielogboeken regelmatig om de niet-actieve transacties in het transactie-log verwijderen.
  • De transacties worden kleine ontwerpen.
  • Zorg ervoor dat er geen niet-doorgevoerde transacties worden uitgevoerd voor onbepaalde tijd.
  • Plannen de optie Update Statistics dagelijks plaatsvinden.
  • Om te defragmenteren van de indexen om te profiteren van de prestaties van de werkbelasting in uw productieomgeving, de DBCC INDEXDEFRAG Transact-SQL-instructie te gebruiken in plaats van de DBCC DBREINDEX Transact-SQL-instructie. Als u de instructie DBCC DBREINDEX uitvoert, kan het transactielogboek aanzienlijk uitbreiden wanneer uw SQL Server-database in de modus Full recovery. Ook de instructie DBCC INDEXDEGRAG niet over de vergrendelingen voor een lange tijd, in tegenstelling tot de instructie DBCC DBREINDEX.

    Zie de volgende Microsoft-website voor meer informatie over het defragmenteren van de indexen in SQL Server 2000:
Meer informatie over de transactie-logbestanden
In SQL Server 2000 en SQL Server 2005, wordt elke database bevat ten minste één bestand en één transactielogbestand. SQL Server worden de gegevens fysiek opgeslagen in het gegevensbestand. Het transactielogbestand slaat de details van de wijzigingen die u uitvoert op de SQL Server-database en de details van de transacties die elke wijziging wordt uitgevoerd. Worden aangezien de transactionele integriteit wordt beschouwd als een fundamentele en intrinsieke eigenschap van SQL Server, de details van de transacties te melden kan niet uitgeschakeld in SQL Server.

Het transactielogbestand is logisch onderverdeeld in kleinere segmenten die virtuele logboekbestanden genoemd. U kunt het transactielogbestand uitbreiden naar wens configureren in SQL Server 2000. De groei van transactielogboeken kan worden geregeld door de gebruiker of kan worden geconfigureerd voor het gebruik van de beschikbare schijfruimte. Alle wijzigingen die in SQL Server kunt u de grootte van het transactielogboekbestand, zoals de transactielogboekbestanden worden afgekapt of de transactielogbestanden groeien worden in eenheden van virtuele logboekbestanden uitgevoerd.

Als het transactielogbestand dat overeenkomt met een SQL Server-database wordt gevuld en u de optie voor de transactie automatisch groeien hebt ingesteld, wordt het transactielogboekbestand groter in eenheden van virtuele logboekbestanden. Soms het transactielogbestand kan zeer groot worden en u mogelijk onvoldoende schijfruimte. Wanneer een transactielogboekbestand groter wordt totdat het logboekbestand alle beschikbare schijfruimte gebruikt en niet meer kan groeien, kunt u alle bewerkingen voor het wijzigen van gegevens in de database niet meer uitvoeren. SQL Server kan de database ook markeren als onbetrouwbaar vanwege het gebrek aan ruimte voor de groei van transactielogboeken.

Voor meer informatie over de scenario's waarin het transactielogbestand wordt onverwacht groeien, klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base:

317375 transactielogboek wordt erg groot of raakt vol op SQL Server


Meer bronnen

Voor meer informatie over het beperken van de grootte van het transactielogboek, gaat u naar de volgende Microsoft-websites:


Referenties

Zie het onderwerp 'onvoldoende schijfruimte' in SQL Server Books Online voor meer informatie over het oplossen van de extra vereiste schijfruimte tijdens het herstelproces. Zie de volgende onderwerpen in SQL Server Books Online voor meer informatie over de transactie log-architectuur:
  • Transaction log-architectuur
  • Transaction log logische architectuur
  • Fysieke transactie log-architectuur
Zie de volgende onderwerpen in SQL Server Books Online voor meer informatie over de modellen recovery in SQL Server 2000:
  • Een herstelmodel selecteren
  • Eenvoudig herstel
  • Volledig herstel
  • Herstelmodel Bulk-logged
  • Schakelen tussen herstel modellen

Eigenschappen

Artikel-id: 873235 - Laatst bijgewerkt: 14 feb. 2017 - Revisie: 2

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

Feedback