※ ChatGPTを利用し、要約された質問です(原文:SQLServer2005 レプリケーションについて)
SQLServer2005レプリケーションに関する問題と解決方法
このQ&Aのポイント
SQLServer2005でマージレプリケーションのテストを行っていますが、サブスクライバとして設定したサーバーに接続できない問題が発生しています。
サブスクリプションの設定やサーバー名の指定に誤りがある可能性があります。
問題を解消するためには、SQLServer Management Studioを使用してパブリケーションとサブスクリプションを正しく設定する必要があります。
SQLServer2005 レプリケーションについて
SQLServer2005で、
マージレプリケーションのテストを行っています。
サーバーが2台あります。
Serv1・・・パブリッシャ
Serv2・・・サブスクライバ
とします。(どちらも2005です)
困っていることは、
サブスクリプションの上で右クリックし、
「同期状態の表示」を開くと、
「サーバー'Serv2\インスタンス'はサブスクライバではありません。」
とのメッセージが表示されており、
「開始」ボタンを押しても、Serv1側で変更したデータは反映されず、
ログを見ると「Serv2\インスタンス に接続できませんでした。」と残っています。
これを解消したいのですが、
どこから説明してよいのかわからないので、
最後に、設定手順を書いておきます。
-----設定手順-----
SQLServer Management Studioを使って、
Serv1のローカルパブリケーションから、新規パブリケーションの作成ウィザードを実行し、パブリケーションを作成。
ここまでは、問題なく進みました。
次に、先ほど作成したパブリケーションの上で右クリックし、
サブスクリプションの新規作成ウィザードを開始しました。
サブスクライバの選択画面まで進み、
「SQLServer サブスクライバの追加」ボタンで、
[Serv2\インスタンス名]を追加しようとしましたが、認識できなかったので、
[IP\インスタンス名]と指定したら、
「レプリケーションでは、IPではなく実際のサーバー名を指定してください。」のようなメッセージがでたので、いったん中断しました。
hostsファイルに[Serv2]を追加してから、再度ウィザードを実行したら、
サブスクライバの画面から次に進めました。
マージエージェントセキュリティで
1つ目の選択肢で「SQLServerエージェント サービスのアカウントで実行する」
を選択し、
サブスクライバの接続では、
「次のSQLServerのログインを使用する」を選択し、ログインとパスワードを入力しました。
あとは、規定値で、完了しました。
このあと、2アクション(Serv2\インスタンスのサブスクリプションを作成しています、同期エージェントを開始しています)とも成功で終わります。
お礼
jamshid6さん、ありがとうございます! 同期が成功しました。 やってみたことは、 管理者権限のユーザーでログインし、 SQLServerとSQLServerエージェントのサービスをこのユーザーで開始しました。 (変更前は、サービスアカウントとログインが別ユーザになってました。 どちらも、管理者権限ではありましたが・・・) そのあと、サブスクリプションとパブリケーション一旦削除してから 作成しなおしました。 これで、同期が成功しました。 ちなみに・・・ > 「同期状態の表示」を開くと、 > 「サーバー'Serv2\インスタンス'はサブスクライバではありません。」 の表示は解消されず、最初は失敗かと思いましたが レプリケーションモニタで見ると赤丸×が付いてなくて(設定変更前は赤丸×あり) 同期中も同期終了後も正しく表示されていました。 なので、「同期状態の表示」はとりあえず、様子をみることにします。