- PR -

リンクサーバがミラー構成の時、Failover側にも接続できるようにする方法

1
投稿者投稿内容
hideaki
会議室デビュー日: 2007/11/14
投稿数: 1
投稿日時: 2007-11-18 23:36
サーバ機が3台あり、それぞれ、DB1svr,DB2svr,WWWsvrとします。
いずれも、Windows Server 2003 Standardです。

DB1svr,DB2svrには、SQL Server 2005 Standardをインストール
しており、インスタンス名はINS1とします。ここにTESTDBという
DBを作成し、ミラーリング構成としています。

直接TESTDBに、Accessや、VBで作成したプログラムからは、
Failoverしても、そのときのプリンシパルに接続され、
ミラーリングは正しく動いています。

WWWsvrにSQL Server 2005 Expressをインストールして、
クライアントからは、WWWsvr経由で、TESTDBにアクセスさせる
ようにしたいのですが、Failoverすると、接続に失敗して
しまいます。


以下は、WWWsvr上で、SQL Server Management Studio Express
からクエリを実行した結果です。


1.OPENDATASOURCEを実行した結果

select * from
OPENDATASOURCE (
'SQLNCLI',
'server=DB1svr.local\\INS1; FailoverPartner=DB2svr.local\\INS1;
database=TESTDB; UID=**; PWD=***; Network=dbmssocn;')
.INS1.dbo.test01

DB1svrがプリンシパルのとき、正しく結果を得られますが、DB2svr
だと、エラーになります。


2.リンクサーバとして登録しクエリを実行した結果

まず、下記コマンドで、リンクサーバを登録します。

EXEC sp_addlinkedserver
@server = 'TEST012',
@srvproduct = '',
@datasrc = 'DB1svr.local\\INS1' ,
@provider = 'SQLNCLI',
@provstr = 'Database=TESTDB; FailoverPartner=DB2svr.local\\INS1;
UID=***; PWD=***'


下記を実行すると、DB2svrがプリンシパルのとき、接続に失敗します。

select * from TEST012.ins1.dbo.test01;


メッセージは、下記のような形です。

==============================================================
--リンク サーバー "TEST012" の OLE DB プロバイダ "SQLNCLI" から、メッセージ "ログイン タイムアウトが時間切れになりました" が返されました。
--リンク サーバー "TEST012" の OLE DB プロバイダ "SQLNCLI" から、メッセージ "サーバーへの接続確立時にエラーが発生しました。接続先が SQL Server 2005 である場合は、既定の設定では SQL Server がリモート接続を許可していないことが原因である可能性があります。" が返されました。
--メッセージ 65535、レベル 16、状態 1、行 0
--SQL ネットワーク インターフェイス : 指定された Server/Instance の位置を特定しているときにエラーが発生しました [xFFFFFFFF].
--メッセージ 18456、レベル 14、状態 1、行 1
--ユーザー 'sa' はログインできませんでした。
--メッセージ 4060、レベル 11、状態 1、行 1
--このログインで要求されたデータベース "SORA" を開けません。ログインに失敗しました。

(18456,4060を7回繰り返し。)

--リンク サーバー "TEST012" の OLE DB プロバイダ "SQLNCLI" から、メッセージ "接続文字列の属性が正しくありません。" が返されました。
==============================================================

1,2ともに、DB1svr,DB2svrを逆にしても、Failover側に接続してくれ
ないので、接続文字列の指定だけの問題のような気もしています。

MSDNなどを見ると、対応は出来そうに思えますが、具体的なサンプルを
見つけられないため、具体例をお教えいただけるとありがたいと
思います。


よろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)