2009-03-24 9 views
4

Ich habe eine Windows-Anwendung, die Verbindung zur Datenbank, um einige Daten zu lesen. Da die Datenbank für Ausfallsicherheit eingerichtet ist, muss meine Anwendung eine Verbindung zu einer der beiden Datenbanken herstellen. Kann jemand angeben, wie die Syntax lauten würde, um den Failover-Partner in einer Verbindungszeichenfolge mithilfe der SQL Server-Authentifizierung anzugeben?Wie Failover-Partner zu einer Verbindungszeichenfolge in VB.NET hinzugefügt werden

Jede Hilfe wird sehr geschätzt.

Antwort

10

prüfen connectionstrings.com:

Datenbankspiegelung
Wenn Sie mit ADO.NET oder SQL Native Client Verbindung zu einer Datenbank, die gespiegelt wird, kann Ihre Anwendung nutzt die Möglichkeit, Treiber automatisch Umleiten von Verbindungen, wenn ein Datenbankspiegelungs-Failover auftritt. Sie müssen den anfänglichen Prinzipalserver und die erste Datenbank in der Verbindungszeichenfolge und auf dem Failover-Partnerserver angeben.

Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;Initial 
Catalog=myDataBase;Integrated Security=True; 

Es gibt natürlich viele andere Möglichkeiten, um die Verbindungszeichenfolge der Datenbankspiegelung, dies ist nur ein Beispiel den Hinweis auf die Failover-Funktionalität zu schreiben. Sie können dies mit den anderen verfügbaren Verbindungszeichenfolgenoptionen kombinieren.

+0

Hallo Joel, Vielen Dank für Ihre resposne, wird diese Arbeit, auch wenn ich nicht habe Spiegelung Setup? – Vineet

+0

Kann ich dieselben für AD Connection-Zeichenfolgen verwenden, um eine Failover-LDAP-Verbindung anzugeben? –

1

Wenn Sie den Namen eines Failover Partnerserver in der Verbindungs ​​ String liefern, wird der Client transparent eine Verbindung mit dem Partner Failover versuchen, wenn der Prinzipaldatenbank ist nicht verfügbar, wenn der Client Anwendung erste verbindet.

";Failover Partner=PartnerServerName" 

Wenn Sie den Namen des Failover Partner-Server und der Haupt Datenbank weglassen ist nicht verfügbar, wenn die Client-Anwendung verbindet zuerst dann ein SqlException angehoben wird.

Source

+0

Danke Adam. Das sollte für mich funktionieren. – Vineet

0

Wenn Sie zwischen SQL Server nicht festgelegt haben, Spiegelung, können Sie dies erreichen, indem .NET. einfach in einer Fangaussage.

-Code unten ..

enter code here 
Imports System.Data.SqlClient 
Imports System.Data 

Public Class dbConn 
Private primaryServerLocation As String = "SERVER=primaryAddress;DATABASE=yourDB;User id=youruserID;Password=yourPassword;" 
Private secondaryServerLocation As String = "SERVER=secondaryAddress;DATABASE=yourDB;User id=youruserID;Password=yourPassword;" 


Public sqlConnection As SqlConnection 
Public cmd As SqlCommand 

Public Sub primaryConnection() 
    Try 
     sqlConnection = New System.Data.SqlClient.SqlConnection(primaryServerLocation) 
     cmd = New System.Data.SqlClient.SqlCommand() 

     'test connection 
     sqlConnection.Open() 
     sqlConnection.Close() 
    Catch ex As Exception 
     secondaryConnection() 
    End Try 
End Sub 

Public Sub secondaryConnection() 
    'Used as the failover secondary server if primary is down. 
    Try 
     sqlConnection = New System.Data.SqlClient.SqlConnection(secondaryServerLocation) 
     cmd = New System.Data.SqlClient.SqlCommand() 

     'test connection 
     sqlConnection.Open() 
     sqlConnection.Close() 
    Catch ex As Exception 
    End Try 
End Sub 
End Class 
Verwandte Themen