4

有沒有辦法以以編程方式確定SQL Server故障轉移羣集中的哪個節點是活動節點?或者至少確定當前機器是否是主動節點?SQL Server故障轉移羣集 - 確定活動節點

我有一個在故障轉移羣集中的兩個物理節點上運行的Windows程序,但是它應該以不同的方式運行,具體取決於它是否在主動節點上運行。 部分原因是,該程序不應該同時在非活動節點上運行。

(我讀過一些關於使程序集羣感知,但似乎這個簡單的場景嚴重矯枉過正。)

+0

如果您開始關心集羣問題,我認爲您會投入更多的精力去做正確的事情 - 如果在您的支票與您計劃執行的任何事情之間發生手動故障轉移那?當事情不再成立時,你會認爲自己處於主動節點上。 – 2010-12-20 18:14:32

+1

@Damien在這種情況下,你會如何「做對」? – bzlm 2010-12-20 20:51:30

回答

8

從SQL Server:

Select ServerProperty('ComputerNamePhysicalNetBIOS') 

您也可以通過訪問Microsoft.SqlServer.Management.Smo命名空間,如here所示。

+0

你能解釋一下'Select ServerProperty('ComputerNamePhysicalNetBIOS')'如何告訴你你是否在主動節點上? – 2013-10-13 16:14:34

+0

@Neilw:從[documentation](http://technet.microsoft.com/en-us/library/ms174396.aspx):「SQL Server實例當前運行的本地計算機的NetBIOS名稱。」 對於故障轉移羣集上SQL Server的羣集實例,此值會隨着SQL Server實例故障轉移到故障轉移羣集中的其他節點而發生更改。 在SQL Server的獨立實例上,此值保持不變並返回相同值作爲MachineName屬性。「 – 2013-10-15 13:38:05

相關問題