none
ミラー側のミラーリング監視接続が切断になる。 RRS feed

  • 質問

  • みなさん、はじめまして。よろしくお願いします。

     

    Aサーバ(プリシンパル)、Bサーバ(ミラー)、Cサーバ(ウィットネス)でサーバを構成しています。

    AサーバのDBをBサーバへ復元し、ミラー設定しました。

    データベースミラーリングモニタを確認したところ、ミラーのミラーリング監視接続が切断に

    なっています。

    接続済みに変更するための、解決方法を教えてください。

     

    ■環境

     OS:サーバ3台ともWindows2003 R2 64bit(SP2)

     SQLserver:3台ともSQLserver2005 64bit(SP2)

     3台とも同じセグメント上にいます。

     

    ■状況

     手動では、フェールオーバー可能できます。

     データベース ミラーリング モニタを確認したところ、

     A-DB(同期済み、A->B)と表示されていますが、

     状態タブのミラーリング接続監視をみてみると

     プリシンパルは「接続済み」になっていますが、

     ミラーは「切断」になっています。

     

    ミラーも接続済みになるのが正常だと思いますが、

    なぜ切断になっているか原因が不明です。

    切断を接続済みにするには、どのようにすればよいのでしょうか?

     

    以上、よろしくお願いします。

     

    2008年10月23日 8:10

回答

  • 直接の回答になっていませんが、

    http://blogs.sqlpassj.org/mitsugi/archive/2006/03/24/16494.aspx

    に詳細なミラーリングの設定手順が掲載されています。

     

    ひょっとすると、ミラーリングの設定が途中で完了していないとかは無いでしょうか?

    正しい状態は「同期中」のようです。

     

    参考情報

    SQL Server 2005 データベース ミラーリングの「データベース ミラーリングの状態と遷移」の項目

    上三分の一あたりです。

    http://www.microsoft.com/japan/technet/prodtechnol/sql/2005/dbmirror.mspx

    2008年10月23日 14:21
  • ちょっと、ミラーリングの経験がないので、まとはずれな回答をしている気がしますが、、、

    このFixが

    「The synchronous database mirroring session status may remain disconnected when you set up synchronous database mirroring 」

    http://support.microsoft.com/kb/912422/

     

    となっています。

    読める英語から妄想したら、今回のケースのようにも見えたりするのですが。。。

    2008年10月27日 12:15
  • こんにちは、naginoです。

     

    監視サーバからセカンダリサーバへ通信ができるかどうか(例えば監視サーバ上の SQL Server Management Studio からセカンダリサーバの DB にアクセスできるかどうか)、また監視サーバでセカンダリサーバのサーバ名をタイプミスしていないかどうか、をまずご確認ください。

     

    なお蛇足ながら、監視サーバがセカンダリを「ダウンしている」と認識していると思われるので、現状では自動フェールオーバーはできないかもしれません。

    プリンシパルのサービスを停止させた場合にどうなるか、技術的には興味があるところです。

     

    一助になれば幸いです。

     

    2008年10月29日 8:21
  • こんにちは、naginoです。

     

    ご確認ありがとうございます。

     

    以下のクエリを、プリンシパルとミラーで実行して「mirroring_role_desc」以外に差異がある場合は、ミラーリングの構築に失敗していると考えられます。

    Code Snippet
    SELECT
        DB_NAME(database_id) AS 'DatabaseName',
        mirroring_role_desc,
        mirroring_safety_level_desc,
        mirroring_state_desc,
        mirroring_safety_sequence,
        mirroring_role_sequence,
        mirroring_partner_instance,
        mirroring_witness_name,
        mirroring_witness_state_desc,
        mirroring_failover_lsn
    FROM sys.database_mirroring
    WHERE mirroring_guid IS NOT NULL;

    その場合、再度手順を確認しながら設定しなおしになります。

     

    クエリの結果に差異が無く、何らかのエラーログなどがあれば、そのログを手がかりに調べていくことになるかと思います。

     

    もしクエリの結果に差異が無く、エラーログなども無い場合は、環境などを詳細に確認する必要が出てきますので、有償サポートの利用をご検討されたほうが良いかもしれません。

     

    ご参考になれば幸いです。

     

    2008年10月31日 9:23

すべての返信

  • 直接の回答になっていませんが、

    http://blogs.sqlpassj.org/mitsugi/archive/2006/03/24/16494.aspx

    に詳細なミラーリングの設定手順が掲載されています。

     

    ひょっとすると、ミラーリングの設定が途中で完了していないとかは無いでしょうか?

    正しい状態は「同期中」のようです。

     

    参考情報

    SQL Server 2005 データベース ミラーリングの「データベース ミラーリングの状態と遷移」の項目

    上三分の一あたりです。

    http://www.microsoft.com/japan/technet/prodtechnol/sql/2005/dbmirror.mspx

    2008年10月23日 14:21
  • データベースミラリングモニタで確認すると

     DB名(同期済み、A->B)

    と表示されています。

    情報不足であれば、ご教示ください。

     

    2008年10月24日 2:50
  •  めんそうる さんからの引用

    データベースミラリングモニタで確認すると

     DB名(同期済み、A->B)

    と表示されています。

    情報不足であれば、ご教示ください。

     

    当初SQLserverを名前付きインスタンスでインストールし、

    その後、規定のインスタンスに再インストールしています。

    この作業でMSSQLフォルダを削除せず、再インストールしたので

    その影響が考えられるのでしょうか?

     

    2008年10月27日 8:11
  • ちょっと、ミラーリングの経験がないので、まとはずれな回答をしている気がしますが、、、

    このFixが

    「The synchronous database mirroring session status may remain disconnected when you set up synchronous database mirroring 」

    http://support.microsoft.com/kb/912422/

     

    となっています。

    読める英語から妄想したら、今回のケースのようにも見えたりするのですが。。。

    2008年10月27日 12:15
  • ヒントをありがとうございます。

    読んでみたのですが、ちょっと状況が違うような気がします。

     

    ミラー自体は出来ているのですが、セカンダリと監視サーバと接続できない。

    しかし、プリシンパルと監視サーバは接続できている。

     

    Hotfixなんかを適用してみたのですが、「接続済み」にならなくて。。。

    こういう状況で自動フェールオーバーってできるのでしょうか?

    プロシンパルにDBを作成して、開発者が利用しているので、

    自動フェールオーバーの検証もできなくて困っているんです。

    2008年10月29日 2:09
  • こんにちは、naginoです。

     

    監視サーバからセカンダリサーバへ通信ができるかどうか(例えば監視サーバ上の SQL Server Management Studio からセカンダリサーバの DB にアクセスできるかどうか)、また監視サーバでセカンダリサーバのサーバ名をタイプミスしていないかどうか、をまずご確認ください。

     

    なお蛇足ながら、監視サーバがセカンダリを「ダウンしている」と認識していると思われるので、現状では自動フェールオーバーはできないかもしれません。

    プリンシパルのサービスを停止させた場合にどうなるか、技術的には興味があるところです。

     

    一助になれば幸いです。

     

    2008年10月29日 8:21
  • ありがとうございます。

    監視サーバからセンカンダリサーバへのDBアクセスはできています。

    タイプミスはしていません。

     

    自動フェールオーバーのテストをしてみましたが、

    (プリシンパルのサーバのLAN接続を無効にしてみました)

    案の定、フェールオーバーはできませんでした。

     

    別に何かあるのかもしれません。

    セカンダリのSQLserverを再インストールしてみるとか

    をやってみたいと思います。

     

    2008年10月31日 7:11
  • こんにちは、naginoです。

     

    ご確認ありがとうございます。

     

    以下のクエリを、プリンシパルとミラーで実行して「mirroring_role_desc」以外に差異がある場合は、ミラーリングの構築に失敗していると考えられます。

    Code Snippet
    SELECT
        DB_NAME(database_id) AS 'DatabaseName',
        mirroring_role_desc,
        mirroring_safety_level_desc,
        mirroring_state_desc,
        mirroring_safety_sequence,
        mirroring_role_sequence,
        mirroring_partner_instance,
        mirroring_witness_name,
        mirroring_witness_state_desc,
        mirroring_failover_lsn
    FROM sys.database_mirroring
    WHERE mirroring_guid IS NOT NULL;

    その場合、再度手順を確認しながら設定しなおしになります。

     

    クエリの結果に差異が無く、何らかのエラーログなどがあれば、そのログを手がかりに調べていくことになるかと思います。

     

    もしクエリの結果に差異が無く、エラーログなども無い場合は、環境などを詳細に確認する必要が出てきますので、有償サポートの利用をご検討されたほうが良いかもしれません。

     

    ご参考になれば幸いです。

     

    2008年10月31日 9:23
  • 返信ありがとうございます。

    SQL文をプリンパル側とセカンダリ側で実行すると、

    相違点は、mirroring_witness_state_descが、

    プリンシパル側では、CONNECTEDとなっていて、

    ミラー側は、DISCONNECTEDになっています。

    そのほかは、大きな差はありませんでした。

     

    プレミアサポートに問い合わせてみることにします。

     

    2008年11月4日 4:02
  • C(Witness)サーバを再起動することによって、接続済みになることができました。

     

     

    2008年11月7日 6:14
  • こんにちは、フォーラムオペレータ 大久保です。

     

    解決後に出てきてすみません。もしかして、ミラーリングの設定を FQDN ではなく、IP Address で設定してませんか?
    その場合、設定直後は Disconnected になってしまう、という制限があるらしく、
    解決するには(めんそうる さんがとられた対処法どおりですが)Witness を再起動する必要があるようです。
    もし同じような現象に会われた方がいらっしゃったら、ダメもとでお試しください。

     

    それはそれとして、アドバイスを下さった皆様の投稿に「回答済み」チェックをつけさせていただきました。
    今回、直接は めんそうる さんのお役に立てなかったんですが、これに懲りずにまたフォーラムをご利用いただければと思います。

     

    ではー
    2008年11月17日 9:03
  • 私も同様の現象を確認しています(ほぼ毎回)。

    IPアドレスではなく、ノード名のみでも発生するようです。

    対応としては、Witnessのサービス「SQL Server (MSSQLSERVER)」の再起動でOKのようです。
    2008年12月8日 8:26