SQLServerミラーリング設定で陥るエラー1418

posted in: SQLServer, データベース | 0

こんにちは、SQL Serverもチョイチョイ勉強中のサカイです。

ミラーリングが出来ない

SQL Serverの冗長化構成を調べてる時に ミラーリング という方法を見つけました。
物は試し、と思い「Sql Server」「ミラーリング」などで検索して出てきた記事を見ながらチマチマ設定することに。
楽勝だ!と思ったらミラーリングの開始時に起こったエラー1418

sqlerror

親の顔より見たエラーダイアログ
 

いろいろ試す

このエラー自体ミラーリング設定をしていると誰しもが遭遇するエラーらしく、既に有識者らによっていくつかの解決策があった。

  1. そもそもWindowsファイアウォールでポートが空いてない
  2. そもそもポートの開放を許可してない(AWSでいうセキュリティグループ)
  3. そもそもプリンシパルとミラー同士が疎通出来てない
  4. ってかhostsファイルにホスト名とIPアドレスを紐付けて名前解決すればいいのでは

ポートも開放してるしpingも通るし、何故・・・と思って苦闘していたら、どうやら4番のせいでした。

気づけた経緯

SQL Server ログの中に気になる文を発見。

sqllog

※現在を右クリック→SQL Server ログの表示をクリックで見られます。

errorsql

ログには サーバー ネットワーク アドレス”TCP://”にアクセスできません とか 指定されたネットワーク名は利用できません。 と表示がされていました。

指定されたネットワークも何も指定してるじゃん!と思ってましたが、サーバーネットワークアドレスを
IPアドレスではなくホスト名 TCP://以降 でかかれていたのが原因の模様。

つまり、 ホスト名 → IPアドレス
の変換をせず、ホスト名を直指定したままネットワークの海に飛び込んでいた。

そりゃーつながらないですね。
というわけでアドレスとIPアドレスを紐付けてあげましょう。

hostsファイルの場所

参考→Windows7マシンでホスト名―IPアドレスを関連付けする

C:\Windows\System32\drivers\etc\hosts
これをメモ帳で開いて 紐付けたいホスト名 IPアドレス をプリンシパル、ミラーリングの両サーバーで書くことで繋がるようになりました。
プリンシパルだけでも繋がるのかもしれませんが、試してはないです。

何はともあれ繋がるようになりました!

LINEで送る
Pocket