Heim Datenbank MySQL-Tutorial 如何捕获和记录SQL Server中发生的死锁_MySQL

如何捕获和记录SQL Server中发生的死锁_MySQL

Jun 01, 2016 pm 01:25 PM
具体步骤 如何 记录 资源

bitsCN.com

方法一:利用SQL Server代理(Alert+Job)
具体步骤如下:
1.首先使用下面的命令,将有关的跟踪标志启用。
SQL code
DBCC TRACEON (3605,1204,1222,-1) 
说明:
3605 将DBCC的结果输出到错误日志。
1204 返回参与死锁的锁的资源和类型,以及受影响的当前命令。
1222 返回参与死锁的锁的资源和类型,以及使用了不符合任何 XSD 架构的 XML 格式的受影响的当前命令(比1204更进一步,SQL 2005及以上可用)。
-1 以全局方式打开指定的跟踪标记。
以上跟踪标志作用域都是全局,即在SQL Server运行过程中,会一直发挥作用,直到SQL Server重启。
如果要确保SQL Server在重启后自动开启这些标志,可以在SQL Server服务启动选项中,使用 /T 启动选项指定跟踪标志在启动期间设置为开。(位于SQL Server配置管理器->SQL Server服务->SQL Server->属性->高级->启动参数)
在运行上面的语句后,当SQL Server中发生死锁时,已经可以在错误日志中看到了,但还不够直观(和其它信息混在一起)。(SSMS -> SQL Server实例 -> 管理 -> SQL Server日志)

2.建表,存放死锁记录
SQL code
USE [Cole] --Cole是我的示例数据库,你可以根据实际情况修改。 
GO 
CREATE TABLE DeadLockLog ( 
id int IDENTITY (1, 1) NOT NULL,  
LogDate DATETIME,  
ProcessInfo VARCHAR(10),  
ErrorText VARCHAR(MAX) 

GO 

3.建立JOB
新建一个JOB(假设名称为DeadLockJob),在"步骤"中新建一步骤,随便写一个步骤名称,数据库为"Cole"(见2.建表),在"命令"栏中输入以下语句:
SQL code
--新建临时表 
IF OBJECT_ID('tempdb.dbo.#ErrorLog') IS Not Null 
DROP TABLE #ErrorLog 
CREATE TABLE #ErrorLog (Id int IDENTITY (1, 1) NOT NULL, a DATETIME, b VARCHAR(10), c VARCHAR(MAX)) 
--将当前日志记录插入临时表 
INSERT INTO #ErrorLog EXEC master.dbo.sp_readerrorlog 
--将死锁信息插入用户表 
insert DeadLockLog 
select a, b, c  
from #ErrorLog  
where id >= (select MAX(id) from #ErrorLog WHERE c Like '%Deadlock encountered%')
DROP TABLE #ErrorLog 

4.新建警报
在"新建警报"窗体的"常规"选项卡中,进行以下设置:
名称:可根据实际自行命名,这里我用DeadLockAlert
类型:选择"SQL Server性能条件警报"
对象:SQLServer:Locks
计数器:Number of Deadlocks/sec
实例:_Total
计数器满足以下条件时触发警报:高于
值:0
设置完成后,应该如下图所示:

在"响应"选项卡中,选中"执行作业",并选择步骤3中我们新建的作业(即DeadlockJob)
到这里为止,我们已经完成了全部步骤,以后,你就可以随时查询DeadLockLog表,来显示死锁信息了。

方法二:利用服务器端跟踪。
具体实现步骤如下:
1.编写如下脚本,并执行
SQL code
-- 定义参数 
declare @rc int 
declare @TraceID int 
declare @maxfilesize bigint 
set @maxfilesize = 5  
-- 初始化跟踪 
exec @rc = sp_trace_create @TraceID output, 0, N'e:/DbLog/deadlockdetect', @maxfilesize, NULL  
--此处的e:/dblog/deadlockdetect是文件名(可自行修改),SQL会自动在后面加上.trc的扩展名 
if (@rc != 0) goto error 
-- 设置跟踪事件 
declare @on bit 
set @on = 1 
--下述语句中的148指的是locks:deadlock graph事件(参见sys.trace_events),12指的是spid列(参见sys.trace_columns) 
exec sp_trace_setevent @TraceID, 148, 12, @on   
exec sp_trace_setevent @TraceID, 148, 11, @on 
exec sp_trace_setevent @TraceID, 148, 4, @on 
exec sp_trace_setevent @TraceID, 148, 14, @on 
exec sp_trace_setevent @TraceID, 148, 26, @on 
exec sp_trace_setevent @TraceID, 148, 64, @on 
exec sp_trace_setevent @TraceID, 148, 1, @on 
-- 启动跟踪 
exec sp_trace_setstatus @TraceID, 1 
-- 记录下跟踪ID,以备后面使用 
select TraceID = @TraceID 
goto finish 
error:  
select ErrorCode=@rc 
finish:  
go 
运行上述语句后,每当SQL Server中发生死锁事件,都会自动往文件e:/DbLog/deadlockdetect.trc中插入一条记录。

2.暂停和停止服务器端跟踪
如果要暂停上面的服务器端跟踪,可运行下面的语句:
SQL code
exec sp_trace_setstatus 1, 0 --第一个参数表示TraceID,即步骤1中的输出参数。第二个参数表示将状态改为0,即暂停
如果要停止上面的服务器端跟踪,可运行下面的语句:
SQL code
exec sp_trace_setstatus 1, 2 --第一个参数表示TraceID,即步骤1中的输出参数。第二个参数表示将状态改为2,即停止

3.查看跟踪文件内容
对于上面生成的跟踪文件(e:/DbLog/deadlockdetect.trc),可通过两种方法查看:
1).执行t-sql命令
SQL code
select * from fn_trace_gettable('e:/DbLog/deadlockdetect.trc',1) 

结果中的TextData列即以XML的形式返回死锁的详细信息。
2).在SQL Server Profiler中打开。
依次 进入Profiler -> 打开跟踪文件 ->选择e:/DbLog/deadlockdetect.trc,就可以看到以图形形式展现的死锁信息了。

bitsCN.com
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wo kann ich die Aufzeichnungen der Dinge einsehen, die ich auf Pinduoduo gekauft habe? Wie kann ich die Aufzeichnungen der gekauften Produkte einsehen? Wo kann ich die Aufzeichnungen der Dinge einsehen, die ich auf Pinduoduo gekauft habe? Wie kann ich die Aufzeichnungen der gekauften Produkte einsehen? Mar 12, 2024 pm 07:20 PM

Die Pinduoduo-Software bietet viele gute Produkte, die Sie jederzeit und überall kaufen können. Die Qualität jedes Produkts wird streng kontrolliert, jedes Produkt ist echt und es gibt viele Vorzugsrabatte beim Einkaufen, sodass jeder online einkaufen kann. Ich kann einfach nicht aufhören. Geben Sie Ihre Mobiltelefonnummer ein, um sich online anzumelden, fügen Sie online mehrere Lieferadressen und Kontaktinformationen hinzu und prüfen Sie jederzeit die neuesten Logistiktrends. Suchen Sie nach oben und unten, um zu kaufen und eine Bestellung aufzugeben. Sie können den Komfort genießen, ohne das Haus zu verlassen. Mit dem Online-Einkaufsservice können Sie auch alle Einkaufsunterlagen, einschließlich der von Ihnen gekauften Waren, einsehen und erhalten Dutzende von roten Einkaufsumschlägen und Gutscheinen kostenlos Detaillierte Online-Methode zum Anzeigen gekaufter Produktdatensätze. 1. Öffnen Sie Ihr Telefon und klicken Sie auf das Pinduoduo-Symbol.

So zeigen Sie den Linux-Befehlsverlauf an und verwalten ihn So zeigen Sie den Linux-Befehlsverlauf an und verwalten ihn Aug 01, 2023 pm 09:17 PM

So zeigen Sie den Befehlsverlauf unter Linux an: Unter Linux verwenden wir den Befehl „history“, um die Liste aller zuvor ausgeführten Befehle anzuzeigen. Die Syntax ist sehr einfach: „history“ Zu den Optionen für die Kopplung mit dem Befehl „history“ gehören: Optionsbeschreibung –c löscht den Befehlsverlauf für die aktuelle Sitzung –w schreibt den Befehlsverlauf in eine Datei –r lädt den Befehlsverlauf aus der Verlaufsdatei neu – n Begrenzen Sie die Anzahl der Ausgaben der letzten Befehle. Führen Sie einfach den Befehl „history“ aus, um eine Liste aller zuvor ausgeführten Befehle in einem Linux-Terminal anzuzeigen: Zusätzlich zur Anzeige des Befehlsverlaufs können Sie auch den Befehlsverlauf verwalten und Änderungen an zuvor ausgeführten Befehlen vornehmen, rückgängig machen Durchsuchen Sie den Befehlsverlauf oder löschen Sie den Verlauf sogar vollständig

Wie kann ich den Anrufverlauf im iPhone überprüfen und exportieren? Wie kann ich den Anrufverlauf im iPhone überprüfen und exportieren? Jul 05, 2023 pm 12:54 PM

Die Anrufaufzeichnung im iPhone wird oft unterschätzt und ist eine der wichtigsten Funktionen des iPhone. Aufgrund ihrer Einfachheit ist diese Funktion von entscheidender Bedeutung und kann wichtige Erkenntnisse über die auf dem Gerät getätigten oder empfangenen Anrufe liefern. Ob für Arbeitszwecke oder für Gerichtsverfahren, die Möglichkeit, auf Anrufaufzeichnungen zuzugreifen, kann von unschätzbarem Wert sein. Vereinfacht ausgedrückt bezieht sich der Anrufverlauf auf die Einträge, die auf Ihrem iPhone erstellt werden, wenn Sie einen Anruf tätigen oder entgegennehmen. Diese Protokolle enthalten wichtige Informationen, einschließlich des Namens des Kontakts (oder der Nummer, falls nicht als Kontakt gespeichert), Zeitstempel, Dauer und Anrufstatus (gewählt, verpasst oder nicht angenommen). Sie sind eine prägnante Aufzeichnung Ihres Kommunikationsverlaufs. Der Anrufverlauf umfasst auf Ihrem iPhone gespeicherte Anrufverlaufsstreifen

So finden Sie Ressourcen auf einer 115-Netzwerkfestplatte So finden Sie Ressourcen auf einer 115-Netzwerkfestplatte Feb 23, 2024 pm 05:10 PM

Auf der 115-Netzwerkfestplatte befinden sich viele Ressourcen. Wie findet man also Ressourcen? Benutzer können in der Software nach den benötigten Ressourcen suchen, dann die Download-Schnittstelle aufrufen und dann das Speichern auf der Netzwerkfestplatte auswählen. Diese Einführung in die Methode zum Auffinden von Ressourcen auf 115 Netzwerkfestplatten kann Ihnen den spezifischen Inhalt erklären. Im Folgenden finden Sie eine detaillierte Einführung. Schauen Sie sich um. Wie finde ich Ressourcen auf 115 Netzwerkfestplatten? Antwort: Suchen Sie den Inhalt in der Software und klicken Sie dann, um ihn auf der Netzwerkfestplatte zu speichern. Ausführliche Einführung: 1. Geben Sie zunächst die gewünschten Ressourcen in der App ein. 2. Klicken Sie dann auf den angezeigten Schlüsselwort-Link. 3. Rufen Sie dann die Download-Oberfläche auf. 4. Klicken Sie im Inneren auf „Auf Netzwerkfestplatte speichern“.

So zeigen Sie den Verlauf Ihres Medikamentenprotokolls in der Health-App auf dem iPhone an So zeigen Sie den Verlauf Ihres Medikamentenprotokolls in der Health-App auf dem iPhone an Nov 29, 2023 pm 08:46 PM

Mit dem iPhone können Sie Medikamente zur Gesundheits-App hinzufügen, um die Medikamente, Vitamine und Nahrungsergänzungsmittel, die Sie täglich einnehmen, zu verfolgen und zu verwalten. Anschließend können Sie eingenommene oder ausgelassene Medikamente protokollieren, wenn Sie eine Benachrichtigung auf Ihrem Gerät erhalten. Nachdem Sie Ihre Medikamente protokolliert haben, können Sie sehen, wie oft Sie sie eingenommen oder ausgelassen haben, um Ihren Gesundheitszustand besser im Auge zu behalten. In diesem Beitrag zeigen wir Ihnen, wie Sie den Protokollverlauf ausgewählter Medikamente in der Health-App auf dem iPhone anzeigen. Eine kurze Anleitung zum Anzeigen Ihres Medikamentenprotokollverlaufs in der Gesundheits-App: Gehen Sie zu Gesundheits-App>Durchsuchen>Medikamente>Medikamente>Medikament auswählen>Optionen&a

C#-Entwicklungsratschläge: Protokollierungs- und Überwachungssysteme C#-Entwicklungsratschläge: Protokollierungs- und Überwachungssysteme Nov 22, 2023 pm 08:30 PM

C#-Entwicklungsvorschläge: Protokollierungs- und Überwachungssystem Zusammenfassung: Im Softwareentwicklungsprozess sind Protokollierungs- und Überwachungssysteme entscheidende Werkzeuge. In diesem Artikel werden die Rolle und Implementierungsvorschläge von Protokollierungs- und Überwachungssystemen in der C#-Entwicklung vorgestellt. Einleitung: Protokollierung und Überwachung sind wesentliche Werkzeuge in großen Softwareentwicklungsprojekten. Sie können uns helfen, den laufenden Status des Programms in Echtzeit zu verstehen und Probleme schnell zu erkennen und zu lösen. In diesem Artikel wird erläutert, wie Protokollierungs- und Überwachungssysteme in der C#-Entwicklung verwendet werden, um die Softwarequalität und Entwicklungseffizienz zu verbessern. Die Rolle des Protokollierungssystems

Warum hatte Han Xiaoquan plötzlich keine Ressourcen mehr? Warum hatte Han Xiaoquan plötzlich keine Ressourcen mehr? Feb 24, 2024 pm 03:22 PM

Han Xiaoquan ist eine Software, mit der man viele koreanische Dramen ansehen kann. Warum gibt es also plötzlich keine Ressource mehr? Aufgrund von Netzwerkproblemen, Versionsproblemen oder Urheberrechtsproblemen verfügt diese Software möglicherweise nicht über Ressourcen. Dieser Artikel über den Grund, warum Han Xiaoquan plötzlich keine Ressourcen mehr hat, kann Ihnen den spezifischen Inhalt erklären. Im Folgenden finden Sie eine detaillierte Einführung. Schauen Sie sich um. Warum hatte Han Xiaoquan plötzlich keine Ressourcen mehr? Antwort: Aufgrund von Netzwerkproblemen, Versionsproblemen und Urheberrechtsproblemen, detaillierte Einführung: 1. Lösung von Netzwerkproblemen: Sie können ein anderes Netzwerk auswählen und sich dann erneut bei der Software anmelden, um es zu versuchen . 2. Lösung von Versionsproblemen: Benutzer können die neueste Version dieser Software von der offiziellen Website herunterladen. 3. Lösungen für Urheberrechtsprobleme: Einige koreanische Dramen werden aufgrund von Urheberrechtsproblemen aus den Regalen genommen. Sie können andere koreanische Dramen zum Ansehen auswählen.

So protokollieren und überwachen Sie Java-Entwicklungsprojekte So protokollieren und überwachen Sie Java-Entwicklungsprojekte Nov 03, 2023 am 10:09 AM

So protokollieren und überwachen Sie Java-Entwicklungsprojekte 1. Einführung in den Hintergrund Mit der rasanten Entwicklung des Internets haben immer mehr Unternehmen damit begonnen, Java zu entwickeln und verschiedene Arten von Anwendungen zu erstellen. Im Entwicklungsprozess sind Protokollierung und Überwachung ein wichtiges Bindeglied, das nicht ignoriert werden darf. Durch Protokollierung und Überwachung können Entwickler Probleme rechtzeitig erkennen und lösen, um die Stabilität und Sicherheit von Anwendungen zu gewährleisten. 2. Die Bedeutung der Protokollierung 1. Problemverfolgung: Wenn ein Anwendungsfehler auftritt, kann die Protokollierung uns dabei helfen, das Problem schnell zu lokalisieren.

See all articles