Vraag Hoe kan ik het SQL-serverlogbestand verkleinen?


Dus ik heb verzuimd om backups te maken van mijn fogbugz-database, en nu is het fogbugz ldf-bestand meer dan 2 en half optredens. Dat is de afgelopen zes maanden opgebouwd met Fogbugz.

Ik heb een back-up van de database gemaakt, vervolgens een back-up gemaakt en het transactielog ingekort, maar het transactielogboek is nog steeds 2 en een half jolig. Ik deed een krimp in het logbestand en het is nog steeds twee en een half optredens. Niets wat ik doe lijkt het bestand kleiner te maken.

Is er hoe dan ook om het probleem op te lossen? Of is de enige manier om op dit punt de database te verwijderen, het logbestand te verwijderen en vervolgens opnieuw te koppelen aan een nieuw bestand?


21
2018-05-06 13:26


oorsprong


antwoorden:


Welkom bij de wispelturige wereld van logboekbeheer van SQL Server.

IETS is fout, maar ik denk niet dat iemand je meer kan vertellen dan dat zonder wat extra informatie. Is deze database bijvoorbeeld ooit gebruikt voor transactionele SQL Server-replicatie? Dit kan problemen zoals deze veroorzaken als een transactie niet is gerepliceerd naar een abonnee.

In de tussentijd zou dit je tenminste in staat moeten stellen om het logbestand te doden:

  1. Voer een volledige back-up van uw database uit. Sla dit niet over. Werkelijk.
  2. Wijzig de back-upmethode van uw database in "Eenvoudig"
  3. Open een queryvenster en voer het "ijkpunt" in en voer het uit
  4. Voer nog een back-up van de database uit
  5. Wijzig de back-upmethode van uw database terug naar "Full" (of wat het ook was, als het nog niet eenvoudig was)
  6. Voer een laatste volledige back-up van de database uit.

Je zou nu in staat moeten zijn om de bestanden te verkleinen (als het uitvoeren van de back-up je dat niet deed).

Succes!


25
2018-05-06 13:32



  • Voer een volledige back-up van uw database uit. Sla dit niet over. Werkelijk.
  • Wijzig de back-upmethode van uw database in "Eenvoudig"
  • Open een queryvenster en voer het "ijkpunt" in en voer het uit
  • Voer nog een back-up van de database uit
  • Wijzig de back-upmethode van uw database terug naar "Full" (of wat het ook was, als het nog niet eenvoudig was)
  • Voer een laatste volledige back-up van de database uit.
  • Voer de query's een voor een uit
    1. USE Database_Name
    2. select name,recovery_model_desc from sys.databases
    3. ALTER DATABASE Database_Name SET RECOVERY simple
    4. DBCC SHRINKFILE (Database_Name_log , 1)

25
2018-01-09 03:33



  1. Zorg ervoor dat de back-upmodus van de database is ingesteld op Simple (zie hier voor een overzicht van de verschillende modi). Hiermee wordt voorkomen dat SQL Server wacht op een back-up van het transactielogboek voordat ruimte wordt hergebruikt.

  2. Gebruik dbcc shrinkfile of Management Studio om de logbestanden te verkleinen.

Stap # 2 zal niets doen totdat de back-upmodus is ingesteld.


3
2018-05-06 13:30



U moet een aantal keren krimpen en een back-up maken van het logboek om het logboekbestand kleiner te maken. Dit komt omdat de logboekpagina's niet opnieuw kunnen worden georganiseerd omdat gegevensbestanden alleen kunnen worden afgekapt. Voor een meer gedetailleerde uitleg kijk hier eens naar.

het db verwijderen en het logbestand verwijderen is gevaarlijk! doe dit niet tenzij u gegevensverlies wilt


3
2018-05-06 13:56