0

我們的IT部門最近從我們的數據庫遷移到羣集。此舉打破了用下面的代碼枚舉數據庫中的許多遺留應用程序:連接到一個獨立的數據庫時,但不會連接到命名實例的SQL羣集上枚舉SQL Server 2008羣集上的數據庫

Dim objConn As ServerConnection 
objConn = New ServerConnection() 

If Me.ComboServers.Text.Trim.Length() > 0 Then 
    objConn.ServerInstance = Me.ComboServers.Text.Trim() 
End If 


Me.SMOServer = New Server(objConn) 
Me.ComboDatabases.Items.Clear() 
For Each objDB As Database In Me.SMOServer.Databases 
    Me.ComboDatabases.Items.Add(objDB.Name) 
Next 

此代碼的工作不夠好。

如何枚舉SQL羣集上的命名實例上的數據庫?

+0

請對代碼沒有任何評論。我沒有寫,今天是我看到它的第一天。 – detroitpro 2011-03-17 18:58:29

+0

它是否給出錯誤?如果是這樣,錯誤是什麼? – 2011-03-17 19:01:32

+0

您是使用羣集的實例名稱,還是嘗試使用其中一個物理盒子的實例名稱? – 2011-03-17 19:03:23

回答

0

命名實例的發現依賴於SQL Server Browser Service。在羣集上發生的SQL瀏覽器服務和Windows防火牆存在已知問題。見Unable to connect to a SQL Server named instance on a cluster。有需要應用的操作系統和SQL本身的特定更新,請參閱鏈接的文章以瞭解詳細信息。一個很好的解決方法是使用靜態端口並在連接字符串中顯式指定偵聽端口。