Heim > Datenbank > MySQL-Tutorial > Hauptteil

Lösen von Mysql Shrink-Transaktionsprotokollen und Problemlösungen

小云云
Freigeben: 2017-12-25 13:33:08
Original
1352 Leute haben es durchsucht

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
Nach dem Login kopieren

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);

Wenn die Transaktion längere Zeit nicht heruntergefahren wurde: Sichern Sie zuerst die Datenbank und führen Sie dann BACKUP LOG Datenbankname WITH NO_LOG Full aus Modus: Wenn keine vollständige Sicherung durchgeführt wurde, führen Sie zuerst eine vollständige Sicherung durch, sichern Sie dann die Protokolldatei und führen Sie schließlich DBCC SHRINKFILE (N'Logdatei-Logikname', 0, TRUNCATEONLY) aus. Verkleinern Sie nur die Protokolldatei

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:


Über MySQL-Transaktionen

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage