這個(gè)提示是sql sever 服務(wù)器停止了。把sql 服務(wù)器重新啟動(dòng)一下。
10年積累的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有高密免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1.首先使用下面的命令,將有關(guān)的跟蹤標(biāo)志啟用。
SQL codeDBCC TRACEON (3605,1204,1222,-1)
說(shuō)明:
3605
將DBCC的結(jié)果輸出到錯(cuò)誤日志。
1204 返回參與死鎖的鎖的資源和類型,以及受影響的當(dāng)前命令。
1222
返回參與死鎖的鎖的資源和類型,以及使用了不符合任何 XSD 架構(gòu)的 XML 格式的受影響的當(dāng)前命令(比1204更進(jìn)一步,SQL
2005及以上可用)。
-1 以全局方式打開指定的跟蹤標(biāo)記。
以上跟蹤標(biāo)志作用域都是全局,即在SQL
Server運(yùn)行過(guò)程中,會(huì)一直發(fā)揮作用,直到SQL Server重啟。
如 果要確保SQL Server在重啟后自動(dòng)開啟這些標(biāo)志,可以在SQL
Server服務(wù)啟動(dòng)選項(xiàng)中,使用 /T 啟動(dòng)選項(xiàng)指定跟蹤標(biāo)志在啟動(dòng)期
間設(shè)置為開。(位于SQL Server配置管理器-SQL
Server服務(wù)-SQL Server-屬性-高級(jí)-啟動(dòng)參數(shù))
在運(yùn)行上面的語(yǔ)句后,當(dāng)SQL
Server中發(fā)生死鎖時(shí),已經(jīng)可以在錯(cuò)誤日志中看到了,但還不夠直觀(和其它信息混在一起)。(SSMS
- SQL Server實(shí)例 -
管理 - SQL Server日志)
2.建表,存放死鎖記錄
SQL codeUSE [Cole] --Cole是我的示例數(shù)據(jù)庫(kù),你可以根據(jù)實(shí)際情況修改。 GO
CREATE TABLE DeadLockLog ( id int IDENTITY (1, 1) NOT NULL, LogDate DATETIME, ProcessInfo VARCHAR(10), ErrorText VARCHAR(MAX) )
GO
3.建立JOB
新建一個(gè)JOB(假設(shè)名稱為DeadLockJob),在"步驟"中新建一步驟,隨便寫一個(gè)步驟名稱,數(shù)據(jù)庫(kù)為"Cole",在"命令"欄中輸入以下語(yǔ)句:
SQL code--新建臨時(shí)表 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)) --將當(dāng)前日志記錄插入臨時(shí)表
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.新建警報(bào)
在"新建警報(bào)"窗體的"常規(guī)"選項(xiàng)卡中,進(jìn)行以下設(shè)置:
名稱:可根據(jù)實(shí)際自行命名,這里我用DeadLockAlert
類型:選擇"SQL
Server性能條件警報(bào)"
對(duì)象:SQLServer:Locks
計(jì)數(shù)器:Number of
Deadlocks/sec
實(shí)例:_Total
計(jì)數(shù)器滿足以下條件時(shí)觸發(fā)警報(bào):高于
值:0
在"響應(yīng)"選項(xiàng)卡中,選中"執(zhí)行作業(yè)",并選擇步驟3中我們新建的作業(yè)(即DeadlockJob)
到這里為止,我們已經(jīng)完成了全部步驟,以后,你就可以隨時(shí)查詢DeadLockLog表,來(lái)顯示死鎖信息了
SQLServer2005以上版本提供了一個(gè)數(shù)據(jù)庫(kù)鏡像監(jiān)視器,不過(guò)打開它的方法比較特別。有了圖形界面以后,SQLServer數(shù)據(jù)庫(kù)鏡像的維護(hù)難度跟成本大大降低了。
1.首先,打開SMS,在任意一個(gè)數(shù)據(jù)庫(kù)上面點(diǎn)右鍵,任務(wù),啟動(dòng)數(shù)據(jù)庫(kù)鏡像監(jiān)視器。
2.點(diǎn)擊注冊(cè)鏡像數(shù)據(jù)庫(kù),在服務(wù)器實(shí)例下拉菜單中選擇鏡像數(shù)據(jù)庫(kù)的實(shí)例名,如果沒(méi)有,可以直接點(diǎn)連接,然后在鏈接到服務(wù)器窗口中進(jìn)行設(shè)置,如下圖所示:
3.設(shè)置好后點(diǎn)確定就出現(xiàn)如下窗口所示了:
4. 點(diǎn)擊警告選項(xiàng)卡,可以設(shè)置對(duì)警告的閾值進(jìn)行設(shè)置,如下圖所示:
5.在步驟3的窗口上點(diǎn)擊歷史記錄,就可以查看SQLServer數(shù)據(jù)庫(kù)鏡像運(yùn)行的歷史記錄了。如下圖所示:
在管理器里對(duì)SQL查看一下屬性,看看是不是你的SQL服務(wù)登錄身份為指定的帳戶,并你更改過(guò)密碼,改為內(nèi)置帳戶登錄(network Service)這個(gè)帳戶設(shè)為登錄帳戶