こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLServer2005 レプリケーションについて

SQLServer2005で、
マージレプリケーションのテストを行っています。

サーバーが2台あります。
Serv1・・・パブリッシャ
Serv2・・・サブスクライバ
とします。(どちらも2005です)

困っていることは、
サブスクリプションの上で右クリックし、
「同期状態の表示」を開くと、
「サーバー'Serv2\インスタンス'はサブスクライバではありません。」
とのメッセージが表示されており、
「開始」ボタンを押しても、Serv1側で変更したデータは反映されず、
ログを見ると「Serv2\インスタンス に接続できませんでした。」と残っています。

これを解消したいのですが、
どこから説明してよいのかわからないので、
最後に、設定手順を書いておきます。

-----設定手順-----
SQLServer Management Studioを使って、
Serv1のローカルパブリケーションから、新規パブリケーションの作成ウィザードを実行し、パブリケーションを作成。
ここまでは、問題なく進みました。

次に、先ほど作成したパブリケーションの上で右クリックし、
サブスクリプションの新規作成ウィザードを開始しました。

サブスクライバの選択画面まで進み、
「SQLServer サブスクライバの追加」ボタンで、
[Serv2\インスタンス名]を追加しようとしましたが、認識できなかったので、
[IP\インスタンス名]と指定したら、
「レプリケーションでは、IPではなく実際のサーバー名を指定してください。」のようなメッセージがでたので、いったん中断しました。

hostsファイルに[Serv2]を追加してから、再度ウィザードを実行したら、
サブスクライバの画面から次に進めました。

マージエージェントセキュリティで
1つ目の選択肢で「SQLServerエージェント サービスのアカウントで実行する」
を選択し、
サブスクライバの接続では、
「次のSQLServerのログインを使用する」を選択し、ログインとパスワードを入力しました。

あとは、規定値で、完了しました。
このあと、2アクション(Serv2\インスタンスのサブスクリプションを作成しています、同期エージェントを開始しています)とも成功で終わります。

投稿日時 - 2009-09-15 17:06:14

QNo.5292275

困ってます

質問者が選んだベストアンサー

SQL Serverエージェントのサービスアカウントは何を使っていますか?
なんだかhosts読めてないみたいな感じですね。
(名前解決できないとそのメッセージが出るはず)
レプリケーションを設定したときのアカウントで実行したらどうなりますか?

投稿日時 - 2009-09-15 20:49:49

お礼

jamshid6さん、ありがとうございます!

同期が成功しました。

やってみたことは、
管理者権限のユーザーでログインし、
SQLServerとSQLServerエージェントのサービスをこのユーザーで開始しました。
(変更前は、サービスアカウントとログインが別ユーザになってました。
どちらも、管理者権限ではありましたが・・・)

そのあと、サブスクリプションとパブリケーション一旦削除してから
作成しなおしました。

これで、同期が成功しました。

ちなみに・・・
> 「同期状態の表示」を開くと、
> 「サーバー'Serv2\インスタンス'はサブスクライバではありません。」
の表示は解消されず、最初は失敗かと思いましたが
レプリケーションモニタで見ると赤丸×が付いてなくて(設定変更前は赤丸×あり)
同期中も同期終了後も正しく表示されていました。
なので、「同期状態の表示」はとりあえず、様子をみることにします。

投稿日時 - 2009-09-16 11:35:43

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)