2009-03-24 36 views
4

Windowsアプリケーションをデータベースに接続してデータを読み込む方法があります。データベースは耐性のために設定されているので、私のアプリケーションは2つのデータベースのうちの1つに接続する必要があります。 SQL Server認証を使用して接続文字列内のフェールオーバーパートナーを指定する構文を指定できますか。VB.NETの接続文字列にフェールオーバーパートナーを追加する方法

ご協力いただきまして誠にありがとうございます。

答えて

10

チェックconnectionstrings.com:あなたがミラーリングされたデータベースへのADO.NETまたはSQLネイティブクライアントを接続する場合
をミラーリング

データベース、アプリケーションが自動的にドライバの機能を利用することができますデータベースミラーリングフェールオーバーが発生したときに接続をリダイレクトします。接続文字列とフェールオーバーパートナーサーバーで、最初のプリンシパルサーバーとデータベースを指定する必要があります。

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

データベースミラーリングを使用して接続文字列を書き込むためのofcourseの他の多くの方法があり、これは、フェールオーバー機能を指摘ほんの一例です。使用可能な他の接続文字列オプションと組み合わせることができます。

+0

こんにちはジョエル、あなたのresposneのおかげで、意志私はミラーリングの設定を持っていない場合でも、この作品? – Vineet

+0

AD接続文字列に同じものを使用して、フェールオーバーLDAP接続を指定できますか? –

1

あなたは、接続文字列 にフェイルオーバ パートナーサーバの名前を指定した場合、プリンシパルデータベースが利用できない であれば、クライアントは透過的フェイルオーバー パートナーとの接続を試みるとき、クライアントアプリケーション 最初に接続します。

";Failover Partner=PartnerServerName" 

フェールオーバーの名前を省略した場合 クライアントアプリケーションは最初のSQLExceptionが発生し、その後 を接続したときに パートナーサーバと元本 データベースが使用できません。

Source

+0

アダムに感謝します。これは私にとってはうまくいくはずです。 – Vineet

0

あなたはSQLサーバの間に設定ミラーリングをお持ちでない場合は、.NETを使用してこれを達成することができます。単にcatchステートメントで。

以下のコード..

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 
関連する問題