十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
1、解決實(shí)時(shí)數(shù)據(jù)同步,請(qǐng)參閱:
10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有王屋免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Sql Server 2008 數(shù)據(jù)庫(kù)實(shí)時(shí)同步復(fù)制
網(wǎng)頁(yè)鏈接
2、監(jiān)控,請(qǐng)參閱 :sql server profile怎么監(jiān)控跟蹤性能語(yǔ)句
網(wǎng)頁(yè)鏈接
具體步驟如下:
1.首先使用下面的命令,將有關(guān)的跟蹤標(biāo)志啟用。
SQL codeDBCC TRACEON (3605,1204,1222,-1)
說(shuō)明:
3605
將DBCC的結(jié)果輸出到錯(cuò)誤日志。
1204 返回參與死鎖的鎖的資源和類(lèi)型,以及受影響的當(dāng)前命令。
1222
返回參與死鎖的鎖的資源和類(lèi)型,以及使用了不符合任何 XSD 架構(gòu)的 XML 格式的受影響的當(dāng)前命令(比1204更進(jìn)一步,SQL
2005及以上可用)。
-1 以全局方式打開(kāi)指定的跟蹤標(biāo)記。
以上跟蹤標(biāo)志作用域都是全局,即在SQL
Server運(yùn)行過(guò)程中,會(huì)一直發(fā)揮作用,直到SQL Server重啟。
如 果要確保SQL Server在重啟后自動(dòng)開(kāi)啟這些標(biāo)志,可以在SQL
Server服務(wù)啟動(dòng)選項(xiàng)中,使用 /T 啟動(dòng)選項(xiàng)指定跟蹤標(biāo)志在啟動(dòng)期
間設(shè)置為開(kāi)。(位于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è)名稱(chēng)為DeadLockJob),在"步驟"中新建一步驟,隨便寫(xiě)一個(gè)步驟名稱(chēng),數(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 --將死鎖信息插入用戶(hù)表
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è)置:
名稱(chēng):可根據(jù)實(shí)際自行命名,這里我用DeadLockAlert
類(lèi)型:選擇"SQL
Server性能條件警報(bào)"
對(duì)象:SQLServer:Locks
計(jì)數(shù)器:Number of
Deadlocks/sec
實(shí)例:_Total
計(jì)數(shù)器滿(mǎn)足以下條件時(shí)觸發(fā)警報(bào):高于
值:0
在"響應(yīng)"選項(xiàng)卡中,選中"執(zhí)行作業(yè)",并選擇步驟3中我們新建的作業(yè)(即DeadlockJob)
到這里為止,我們已經(jīng)完成了全部步驟,以后,你就可以隨時(shí)查詢(xún)DeadLockLog表,來(lái)顯示死鎖信息了。
自定義性能監(jiān)控
在這一點(diǎn)上,我假定你已經(jīng)閱讀了,或者至少瀏覽了所有監(jiān)控步驟的建議。我猜你也許讀了一些,但那些真正不適合于你。既然大部分的SQLServer安裝稍微有點(diǎn)不同,那么這是有意義的。因此我建議你為你特定的環(huán)境自定義這個(gè)監(jiān)控,添加或刪除一些步驟使其更適合你的需求。
使用Word或Excel維護(hù)你的監(jiān)控列表
當(dāng)你對(duì)你的每一個(gè)SQLServer進(jìn)行監(jiān)控時(shí),你需要一個(gè)方法去記錄結(jié)果。當(dāng)你有大量的選項(xiàng)時(shí),從這一系列的文章里復(fù)制適合的監(jiān)控列表到你的Word或Excel文檔作為起點(diǎn)是比較快速的方法。你可能要為每個(gè)服務(wù)器創(chuàng)建一個(gè)單獨(dú)的監(jiān)控列表。如果你決定為你的監(jiān)控表格使用Excel的話,你能輸入所有的監(jiān)控列表項(xiàng)目作為行,每一個(gè)監(jiān)控的服務(wù)器作為單獨(dú)的列。這樣你能快速的查看每個(gè)SQLServer的結(jié)果。
設(shè)置SQLServer和數(shù)據(jù)庫(kù)的優(yōu)先級(jí)
如果你管理大量的SQLServer和數(shù)據(jù)庫(kù),你也許不知道從哪兒開(kāi)始性能監(jiān)控。理論上,你應(yīng)該設(shè)置SQLServer和數(shù)據(jù)庫(kù)的優(yōu)先級(jí),一些需要立即進(jìn)行最多的性能監(jiān)控,而其他的則不必進(jìn)行那么多的監(jiān)控。這會(huì)幫助你決定從哪兒開(kāi)始。最可能的是,你將不會(huì)立即監(jiān)控全部。相反,要在能監(jiān)控的時(shí)候監(jiān)控,按照從最重要到最不重要的順序進(jìn)行。
謹(jǐn)記性能監(jiān)控的關(guān)鍵
當(dāng)對(duì)SQLServer進(jìn)行監(jiān)控的時(shí)候
,記住目的是分辨并糾正容易的問(wèn)題。但是,正如你所料,你將可能也分辨出一些更難于解決的問(wèn)題。為了幫助你更好的管理有限的時(shí)間,你現(xiàn)在需要著眼于那些容易的問(wèn)題,把困難的問(wèn)題留到容易的問(wèn)題先解決完之后。所以在你執(zhí)行監(jiān)控和分辨問(wèn)題時(shí),按照難易程度分類(lèi)設(shè)置它們的優(yōu)先級(jí),將困難的問(wèn)題留待你有足夠時(shí)間處理它們的時(shí)候。
不要過(guò)早行動(dòng)
當(dāng)你執(zhí)行監(jiān)控時(shí),你可能會(huì)急于對(duì)偶然遇到的問(wèn)題進(jìn)行糾正和修改。大多數(shù)情況下,那樣做可能不是問(wèn)題。但理論上,最好先執(zhí)行監(jiān)控,然后基于你的發(fā)現(xiàn),決定正式動(dòng)手解決你分辨出的問(wèn)題,然后系統(tǒng)地實(shí)現(xiàn)它們。
一個(gè)推薦步驟,但或許會(huì)招來(lái)很多疑問(wèn)
理想情況下,如有很多的時(shí)間,在服務(wù)器上執(zhí)行一個(gè)性能基準(zhǔn)是一個(gè)好的想法,然后執(zhí)行監(jiān)控,做任何需要的更改,再執(zhí)行另一個(gè)性能基準(zhǔn)去看看有什么情況發(fā)生。這會(huì)立即讓你知道你所做的是否有幫助,大多數(shù)情況下,沒(méi)有做正確的事。雖然這個(gè)建議被強(qiáng)烈的推薦,也許從時(shí)間來(lái)看不很實(shí)際。但如果你有時(shí)間的話,應(yīng)該認(rèn)真考慮。
另一個(gè)推薦步驟,但或許也會(huì)招來(lái)很多疑問(wèn)
在執(zhí)行監(jiān)控之后,你也許發(fā)現(xiàn)在單個(gè)的SQLServer上所有需要的更改僅只有一兩個(gè),但在其他SQLServer上,也許需要做一打的更改。如果有那么的更改要做,不要立刻全部實(shí)現(xiàn)它們,僅僅一次一個(gè)或幾個(gè)的更改也許是一個(gè)明智的選擇。這樣,你能夠看看每個(gè)或每批更改對(duì)服務(wù)器產(chǎn)生的效果。如果你一次做了很多的更改,那么遇到問(wèn)題時(shí),你將不會(huì)知道是由哪個(gè)更改引起的問(wèn)題,這要求你回滾所有的更改,然后一個(gè)一個(gè)的測(cè)試它們直到找到問(wèn)題所在為止。
這個(gè)建議不會(huì)有太多疑問(wèn)
如果你要做更改的服務(wù)器是有緊要事務(wù)的生產(chǎn)服務(wù)器,你要對(duì)你做的更改倍加小心。理論上,你應(yīng)該在生產(chǎn)服務(wù)器應(yīng)用更改之前在測(cè)試用的SQLServer上測(cè)試所有的更改。如果你不實(shí)踐,那么每次僅做一個(gè)更改,確信如果有任何問(wèn)題你知道怎樣回滾更改。另外,試著選取一天中不很忙的時(shí)候做更改,萬(wàn)一有問(wèn)題的話。
有一個(gè)取消計(jì)劃
你因監(jiān)控而做出的大多數(shù)更改應(yīng)該能夠很容易的回滾。但一些也許不那么容易。在那些情況下,你需要有一個(gè)萬(wàn)一需要的取消計(jì)劃。例如,在你做出任何關(guān)鍵的更改之前備份系統(tǒng)和用戶(hù)數(shù)據(jù)庫(kù)。那樣,即使出現(xiàn)問(wèn)題,你也能將你的服務(wù)器恢復(fù)到更改之前的狀態(tài)。我不是嚇唬你不要做更改,但你總應(yīng)該有所準(zhǔn)備。
記錄所有更改
當(dāng)你基于性能監(jiān)控做出更改時(shí),確定你對(duì)所有的更改做了記錄。這樣,即使后來(lái)有什么問(wèn)題,你也能更容易的找出錯(cuò)誤所在。最容易記錄下你的更改的方法可能就是把它們添加到你的監(jiān)控表格里,或者其他你用來(lái)收集監(jiān)控信息的文檔里。
每年都要執(zhí)行SQLServer的性能監(jiān)控
許多SQLServer(并非全部)隨著時(shí)間而改變。設(shè)置改變,打了SP補(bǔ)丁,甚至數(shù)據(jù)也改變了。所有的這些都會(huì)影響性能。確定你SQLServer最優(yōu)性能的最好方法是做一個(gè)手工的性能監(jiān)控。
你要閑著沒(méi)事,系統(tǒng)的性能監(jiān)控器里sql server的每個(gè)參數(shù)都可以看看啊,這要寫(xiě)可以寫(xiě)一本書(shū)了。
系統(tǒng)
內(nèi)存: 可用字節(jié)數(shù),page\sec
processor: processor time
physical disk:disk time
需要的話還有網(wǎng)絡(luò)流量
至于sqlserver的監(jiān)控,至少有
full scans/sec
cache hit ratio
transaction/sec
user connection
lock
number of dead lock/sec
query...