こんにちは、SQL Serverもチョイチョイ勉強中のサカイです。
ミラーリングが出来ない
SQL Serverの冗長化構成を調べてる時に ミラーリング
という方法を見つけました。
物は試し、と思い「Sql Server」「ミラーリング」などで検索して出てきた記事を見ながらチマチマ設定することに。
楽勝だ!と思ったらミラーリングの開始時に起こったエラー1418。
親の顔より見たエラーダイアログ
いろいろ試す
このエラー自体ミラーリング設定をしていると誰しもが遭遇するエラーらしく、既に有識者らによっていくつかの解決策があった。
- そもそもWindowsファイアウォールでポートが空いてない
- そもそもポートの開放を許可してない(AWSでいうセキュリティグループ)
- そもそもプリンシパルとミラー同士が疎通出来てない
- ってかhostsファイルにホスト名とIPアドレスを紐付けて名前解決すればいいのでは
ポートも開放してるしpingも通るし、何故・・・と思って苦闘していたら、どうやら4番のせいでした。
気づけた経緯
SQL Server ログの中に気になる文を発見。
※現在を右クリック→SQL Server ログの表示をクリックで見られます。
ログには サーバー ネットワーク アドレス”TCP://”にアクセスできません とか 指定されたネットワーク名は利用できません。 と表示がされていました。
指定されたネットワークも何も指定してるじゃん!と思ってましたが、サーバーネットワークアドレスを
IPアドレスではなくホスト名 TCP://以降 でかかれていたのが原因の模様。
つまり、 ホスト名 → IPアドレス
の変換をせず、ホスト名を直指定したままネットワークの海に飛び込んでいた。
そりゃーつながらないですね。
というわけでアドレスとIPアドレスを紐付けてあげましょう。
hostsファイルの場所
参考→Windows7マシンでホスト名―IPアドレスを関連付けする
C:\Windows\System32\drivers\etc\hosts
これをメモ帳で開いて 紐付けたいホスト名 IPアドレス をプリンシパル、ミラーリングの両サーバーで書くことで繋がるようになりました。
プリンシパルだけでも繋がるのかもしれませんが、試してはないです。
何はともあれ繋がるようになりました!