我已經一個數據庫與高安全性模式一面鏡子(使用見證服務器的時刻,但刨去帶他出去),這個數據庫將用於一個SQL實例的C#程序狀態存儲由ac#程序收集的數據。如何知道
我想知道我可以在我的程序檢查狀態的所有SQL實例,並引起/強制手動故障轉移。
有沒有任何C#API來幫助我呢?
信息: IM使用SQL Server 2008
編輯:我知道我可以查詢sys.database_mirroring但對於這一點,我需要主體數據庫起來,乳寧,我想聯繫每個SQL實例和檢查他們的狀態。
我已經一個數據庫與高安全性模式一面鏡子(使用見證服務器的時刻,但刨去帶他出去),這個數據庫將用於一個SQL實例的C#程序狀態存儲由ac#程序收集的數據。如何知道
我想知道我可以在我的程序檢查狀態的所有SQL實例,並引起/強制手動故障轉移。
有沒有任何C#API來幫助我呢?
信息: IM使用SQL Server 2008
編輯:我知道我可以查詢sys.database_mirroring但對於這一點,我需要主體數據庫起來,乳寧,我想聯繫每個SQL實例和檢查他們的狀態。
張望了一下打後,我發現這個解決方案(我不是,如果這是一個妥善的解決辦法,所以發表評論PLZ)
using Microsoft.SqlServer.Management.Smo.Wmi;
ManagedComputer mc = new ManagedComputer("localhost");
foreach (Service svc in mc.Services) {
if (svc.Name == "MSSQL$SQLEXPRESS"){
textSTW.Text = svc.ServiceState.ToString();
}
if (svc.Name == "MSSQL$TESTSERVER"){
textST1.Text = svc.ServiceState.ToString();
}
if (svc.Name == "MSSQL$TESTSERVER3") {
textST2.Text = svc.ServiceState.ToString();
}
}
這樣我只是在尋找服務的狀態(Running/Stoped),速度更快,我錯過了什麼?
使用SQL Server Management Objects (SMO)。
SQL Server Management Objects(SMO)是一組對象,用於編寫管理Microsoft SQL Server的所有方面。 SQL Server複製管理對象(RMO)是封裝SQL Server複製管理的對象的集合。
我之前在託管應用程序中使用了SMO,
要找出一個實例的狀態,使用Server
對象 - 是有State
和Status
性能。
我發現解決方案的限制...它只適用於本地實例...對於遠程實例,我們需要做其他事情來訪問服務。 – RagnaRock