Ich besitze eine SQL Server 2008-Datenbank mit einer Datendatei von etwa 2 GB, die Protokolldatei ist jedoch größer als 8 GB. Bei Datenbanken vor 2008 konnte ich das 'Sicherungsprotokoll' und die TRUNCATE_ONLY
Option verwenden, aber dies ist bei Datenbanken ab 2008 nicht mehr verfügbar.
Ich habe ein Skript, das die Protokolldatei abschneidet:
USE [MyDatabase]
GO
ALTER DATABASE [MyDatabase] SET RECOVERY SIMPLE WITH NO_WAIT
DBCC shrinkfile('MyDatabase_log', 1)
ALTER DATABASE [MyDatabase] SET RECOVERY FULL WITH NO_WAIT
GO
Dadurch wird die Protokolldatei vollständig gekürzt. Meine Frage lautet jedoch: Beeinträchtigt dies die Leistung?
Ich führe täglich zwei vollständige Sicherungen durch, sodass das Protokoll für die Datenweiterleitung eigentlich nicht erforderlich sein sollte.
quelle
OK erstmal ja das log ist auch bei den täglichen vollbackups notwendig, wenn du im problemfall nachholen willst. Wir sichern unser Transaktionslog alle 15 Minuten. Das Problem ist, dass Sie Ihr Transaktionsprotokoll nicht sichern und das Protokoll deshalb so empörend wächst. Sie sollten fast nie ein Transaktionsprotokoll verkleinern müssen, wenn Sie korrekte Transaktionsprotokollsicherungen durchführen.
Sie müssen die Datenbank sichern, bevor Sie das Protokoll abschneiden. Ich schlage vor, dies außerhalb der Geschäftszeiten zu tun, damit keine neuen Daten zwischen dem Backup und der Kürzung eingefügt werden. Richten Sie dann die richtigen Transaktionsprotokollsicherungen ein, damit Sie dieses Problem nie wieder haben.
Was die Leistung angeht, so ist dies schwer zu sagen, ohne die Details Ihrer Systemhardware und -nutzung zu kennen.
quelle
Wie schnell wächst das Transaktionslog? Wenn es ziemlich schnell ist, können Sie die Leistung beeinträchtigen, indem Sie es auf nahezu nichts reduzieren, da es einige Zeit in Anspruch nehmen muss, es wieder aufzubauen. Dies bedeutet nicht, dass Sie es nicht von Zeit zu Zeit verkleinern sollten, aber Sie müssen über das Größenproblem nachdenken, anstatt nur auf ein Minimum zu verkleinern. Ist der Perfektionstreffer riesig? Wahrscheinlich nicht, aber es hängt von der Auslastung des Servers ab (Anzahl der Transaktionen usw.).
Eine Sache, die ich als problematisch empfinde, ist "Ich führe täglich 2 vollständige Sicherungen durch, sodass das Protokoll für die Datenweiterleitung eigentlich nicht erforderlich sein sollte." Das Protokoll ist äußerst wichtig für Punkte zwischen Ihren vollständigen Sicherungen. Selbst zweimal am Tag ist keine Protokolldatei für die Notfallwiederherstellung erforderlich, es sei denn, es handelt sich um eine schreibgeschützte Datenbank (wenn dies der Fall wäre, würden Sie die enorme Zunahme der Protokolldatei jedoch nicht feststellen).
quelle