In diesem Artikel wird hauptsächlich beschrieben, wie das Problem der Verkleinerung von Transaktionsprotokollen und Protokolldateien gelöst werden kann. Er ist sehr gut und hat Referenzwert. Ich hoffe, er kann helfen alle.
1. MS SQL SERVER 2005
--1. Löschen Sie das Protokoll
exec('DUMP TRANSACTION Database Name WITH NO_LOG')
--2. Kürzen Sie das Transaktionsprotokoll :
exec('BACKUP LOG Datenbankname WITH NO_LOG')
--3. Verkleinern Sie die Datenbankdatei (wenn nicht komprimiert, wird die Datenbankdatei nicht verkleinert
exec('DBCC SHRINKDATABASE(Datenbankname) ')
--4. Automatische Verkleinerung festlegen
exec('EXEC sp_dboption Datenbankname,autoshrink,TRUE')
2. MS SQL SERVER 2008 &2008r2 &2012 &2016
--在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。 USE [master] GO ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE 数据库名 SET RECOVERY SIMPLE --简单模式 GO USE 数据库名 GO --crm50sp1_log 为数据库日志文件逻辑名 DBCC SHRINKFILE (N'crm50sp1_log' , 11, TRUNCATEONLY) GO USE [master] GO ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE 数据库名 SET RECOVERY FULL --还原为完全模式 GO
3. Das Problem, dass die Protokolldatei ungewöhnlich groß ist und nicht verkleinert werden kann
Wenn die Protokolldatei ungewöhnlich groß ist und beim Verkleinern nicht verkleinert werden kann, müssen Sie zu diesem Zeitpunkt überprüfen, ob nicht festgeschriebene Dateien vorhanden sind zurückgesetzte Transaktionen
Führen Sie den DBCC OPENTRAN-Befehl aus, um zu sehen, ob Transaktionen sehr früh ausgeführt werden (die Startzeit der Transaktion wird in der Meldung angezeigt. Was angezeigt wird, bedeutet, dass die Transaktion nicht festgeschrieben oder zurückgesetzt wurde). Daher kann MinLSN nicht wiederhergestellt werden. In diesem Fall gibt es zwei Methoden: Die eine besteht darin, den Prozess über die in den Informationen angezeigte Prozessnummer abzubrechen ist auch möglich, wenn der Shutdown-Vorgang erlaubt ist);
Der logische Name der Protokolldatei kann über die folgende Anweisung USE erp database go SELECT [name] FROM sys.database_files WHERE type_desc='LOG' abgerufen werden Verwandte Empfehlungen:
php So verwenden Sie Beispielcode für MySQL-Transaktionen
Erläuterung eines Beispiels für die MySQL-Transaktionsverarbeitung
Das obige ist der detaillierte Inhalt vonLösen von Mysql Shrink-Transaktionsprotokollen und Problemlösungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!