Share via


古いフェールオーバー パートナー名の影響

更新 : 2006 年 4 月 14 日

データベース管理者はフェールオーバー パートナーをいつでも変更できます。このため、クライアントが指定したパートナー名が古い場合があります。たとえば、Partner_B というフェールオーバー パートナーが、Partner_C という別のサーバー インスタンスに置き換えられたとします。クライアントが Partner_B をフェールオーバー パートナー名として指定した場合、この名前は古くなります。クライアント指定のフェールオーバー パートナー名が古い場合、データ アクセス プロバイダは、クライアントでフェールオーバー パートナー名が指定されていない場合と同じように動作します。

たとえば、クライアントによって 1 つの接続文字列が 4 回の接続試行に使用される場合を検討します。この接続文字列では、次のようにイニシャル パートナー名が Partner_A で、フェールオーバー パートナー名が Partner B です。

"Server=Partner_A; Failover Partner=Partner_B; Database=AdventureWorks"

次の表は、4 つのパートナー構成と、それぞれの構成でこの接続文字列がクライアントの初回接続時に機能するかどうかを示しています。

ms366350.note(ja-jp,SQL.90).gifメモ :
アプリケーションでは、構成の変更を追跡し、その変更に応じて接続文字列を変更することができます。これには追加のコードが必要ですが、管理上の負担は軽減されます。
構成 プリンシパル サーバー ミラー サーバー Partner_A と Partner_B を指定して接続を試行するときの動作

元のミラー化構成

Partner_A

Partner_B

Partner_A はイニシャル パートナー名としてキャッシュに保存されます。クライアントは Partner_A への接続に成功します。クライアントは、Partner B というミラー サーバーの名前をダウンロードしてキャッシュに保存し、クライアント指定のフェールオーバー パートナー名を無視します。

Partner_A でハードウェア障害が発生し、フェールオーバーを実行 (クライアントの接続を切断)

Partner_B

なし

Partner_A はイニシャル パートナー名としてキャッシュに保存されていますが、クライアント指定のフェールオーバー パートナー名 Partner_B を使用して、クライアントは現在のプリンシパル サーバーに接続できます。

データベース管理者がミラー化を停止し (クライアントの接続を切断)、Partner_A を Partner_C に置き換えて、ミラー化を再開

Partner_B

Partner_C

クライアントは Partner_A への接続を試行して失敗します。その後、Partner_B (現在のプリンシパル サーバー) への接続を試行して成功します。データ アクセス プロバイダは現在のミラー サーバー名である Partner_C をダウンロードし、現在のフェールオーバー パートナー名としてキャッシュに保存します。

サービスを手動で Partner_C にフェールオーバー (クライアントの接続を切断)

Partner_C

Partner_B

クライアントは最初に Partner_A への接続を試行し、次に Partner_B への接続を試行しますが、どちらの名前でも接続に失敗します。最終的に接続要求がタイムアウトし、接続に失敗します。

参照

概念

ネットワーク プロトコルと TDS エンドポイント
データベース ミラーリングの概要
データベース ミラーリング中に発生する可能性のあるエラー

その他の技術情報

SQL Server データベース エンジンへの接続
SQL Native Client での接続文字列キーワードの使用
SQL Server Browser の使用

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

変更内容 :
  • 以前の「ミラー化データベースへのクライアント接続」から、この新しいトピックに内容を移動しました。