none
SQLServer2008R2Stdのセグメントをこえたミラーリングについて RRS feed

  • 質問

  • SQLServerのミラーリング機能を利用して、DBの同期を行おうと考えています。

    プリンシパル、ミラーを同一セグメント内に設置した場合はミラーリング可能ですが

    異なるセグメントに設置した場合、ミラーリングを行うことができません。

    以下、状況をまとめてみました。

     ・OS:WindowsServer2008R2Std(プリンシパル、ミラーともに)

     ・監視サーバ:なし

     ・ファイヤーウォール:Windowsファイヤーウォール:TCP1433,5022受信ポートは解放済み

     ・IPアドレス:プリンシパル=192.168.100.200、ミラー=192.168.1.198

     ・ミラー状態:プリンシパル=TCP://192.168.100.200;5022、ミラー=TCP://192.168.1.198;5022

     ・エラー状況

       プリンシパル側からミラーに接続すること(逆も可)は可能で、したがって、ミラーリングを作成する「セキュリティの構成」ウィザードは正常に完了します。

       そのウィザード直後の「ミラーリングの開始」も問題無く進み、「完全修飾ドメイン名・・・」のメッセージも「はい」を選択し、ミラーリングを開始しようと砂時計表示になります。

       その後、「指定されたポートが繋がらない」という主旨のエラーが表示されます。

    【質問】

    原因としては何が考えられるでしょうか?私の考えるところ

    おそらく、セグメントを分けているルータ(プリンシパル・ミラーそれぞれのデフォルトゲートウェイ)のポートについて

    ミラーリングに利用しているポート(5022)が解放されていないのではないかと考えています(ルータの設定は現在、未確認)。

    ただ、ポート5022というのがエンドポイントと呼ばれて特殊なもので通常のポートとは違うのかな?という、きちんと理解できていない点もあり

    ルータに対してどのような設定が必要かなどはっきりと理解できておりません。

    ミラーリングを行う際のネットワーク上で必要な設定など、何かアドバイス頂けないでしょうか?

    ※補足ですが、現象の切り分けとして、一度Windowsファイヤーウォールをプリンシパル・ミラーそれぞれで完全に無効にさせてミラーリング実施してみましたが、結果は同じでした。

    2013年2月8日 2:30

回答

  • 本日、再度ミラーリング構築を試み、問題無くミラーリングできることを確認できたのでご報告させて頂きます。

    トラブルシューティングを元に再検討したところ

    予想通り、サーバー間の名前解決ができていないことが原因でした。

    ミラーの構成で互いをIPアドレスで参照するようにすると実施できました。

    また、プリンシパルサーバのhostファイルにミラーサーバのIPアドレス/コンピュータ名を記載しておりましたが

    ミラーサーバのhostファイルにはプリンシパルサーバのIPアドレス/コンピュータ名を記載しておりませんでした。

    プリンシパルの方だけ名前解決できればいいように思ってしまっておりました(この認識がそもそもの原因でした)。

    したがって、セグメント間のルータの設定などは一切変更しておりません。

     TO kyk_nkさん。

     ミラーリングについて良い勉強になりました。

     トラブルシューティングを読むことで改めて自分の手順を見直すことができると良く分かりました。

     アドバイス頂きありがとうございました。

    以上、解決とさせていただきます。

    • 回答としてマーク teigeki_hngm 2013年2月14日 8:22
    2013年2月14日 8:22

すべての返信

  • teigeki_hngmさん。

    もしよろしければ、「「指定されたポートが繋がらない」という主旨のエラーが表示されます。」と記載されている箇所の、具体的なエラーメッセージを掲載していただけないでしょうか?

    ご協力いただけましたら、幸いです。

    2013年2月12日 5:35
  • kyk_nkさん。

    ご返信ありがとうございます。

    ご指摘の内容、ごもっともです。現在、対象としているサーバ(プリンシパル、ミラー)が手元になく、エラーメッセージの入手に時間がかかっておりました。

    以下、エラーメッセージなります。

    ※エラーメッセージにあります「サーバーネットワークアドレス"TCP://***:5022"にアクセス・・・」の***の部分はミラーリングサーバのコンピュータ名を入れております。

     現在、DHCP稼働環境ではありますが、DNSはなく名前解決はできません。

     そこで、サーバ(プリンシパル、ミラー)は固定のIPアドレスをふり、hostファイルに直接、ミラーリングサーバのIPアドレスとコンピュータ名を書いて、名前解決させている状況です。

    現在、これだけの情報しかありませんが、何かお気づきの点などありますでしょうか?

    その他、必要な情報があれば、ログファイル等入手したいと考えております。

    アドバイスのほど、よろしくお願い致します。

    2013年2月12日 6:51
  • teigeki_hngmさん。

    迅速なご返信、ありがとうございました。

    もしかしたら、エラー:1418なのでは、、と思っていたのですが、念のためご確認させていただければと思いました。

    まず、下記のトラブルシューティングは確認済でしょうか?

    データベース ミラーリング構成のトラブルシューティング (SQL Server)

    → 特にエラー:1418の詳細に関しては、MSSQLSERVER_1418

     

    もし、これらのサイトは確認済であった場合は、追ってご連絡いただけましたら、また調査協力させていただきます。

    何かしら、調査の参考になりましたら幸いです。

    2013年2月12日 7:16
  • kyk_nkさん。

    アドバイスありがとうございます。

    トラブルシューティングは未確認でした。

    読んでみたところ、ファイヤーウォールなどの必要な設定はできているように思っております(一度、ファイヤーウォール無効にしてみましたが現象変わらずでした)。

    ただ、やはりミラーリング先が見えていないという内容のエラーには間違いないので、

    まず、コンピュータ名をやめて、IPアドレスのみでミラーリングの構成をやってみようかと考えております。

    あさって、14日に再度サーバをさわる機会がありますので、その辺を含めて、改めてトラブルシューティングの内容で確認してみようと思います。

    結果は、追ってご報告させて頂きます。

    その他、何か気になる点などありましたら、ご指摘いただけると助かります(※14日にいろいろ試してこようと思っています)。

    早速のご返信ありがとうございました。助かりました。

    2013年2月12日 7:44
  • 本日、再度ミラーリング構築を試み、問題無くミラーリングできることを確認できたのでご報告させて頂きます。

    トラブルシューティングを元に再検討したところ

    予想通り、サーバー間の名前解決ができていないことが原因でした。

    ミラーの構成で互いをIPアドレスで参照するようにすると実施できました。

    また、プリンシパルサーバのhostファイルにミラーサーバのIPアドレス/コンピュータ名を記載しておりましたが

    ミラーサーバのhostファイルにはプリンシパルサーバのIPアドレス/コンピュータ名を記載しておりませんでした。

    プリンシパルの方だけ名前解決できればいいように思ってしまっておりました(この認識がそもそもの原因でした)。

    したがって、セグメント間のルータの設定などは一切変更しておりません。

     TO kyk_nkさん。

     ミラーリングについて良い勉強になりました。

     トラブルシューティングを読むことで改めて自分の手順を見直すことができると良く分かりました。

     アドバイス頂きありがとうございました。

    以上、解決とさせていただきます。

    • 回答としてマーク teigeki_hngm 2013年2月14日 8:22
    2013年2月14日 8:22