none
既定のインスタンスの定義 RRS feed

  • 質問

  • SQL Server の「既定のインスタンス」で教えていただきたいことがあります。

    SQL Server の既定のインスタンスは、サーバ名のみ(インスタンス名なし)で接続ができますが、
    実際にインスタンス名がないのではなく MSSQLSERVER というインスタンス名が設定されていると思います。

    そこで、よくわからないのですが、
    「MSSQLSERVER というインスタンス名が設定されている イコール 既定のインスタンスである」
    おなじく
    「MSSQLSERVER というインスタンス名の場合は、サーバ名だけで接続ができる」
    という認識で良いのでしょうか。

    例えば、MSSQLSERVER 以外のインスタンス名でも、既定のインスタンスという設定が可能なものでしょうか。

    恥ずかしながら「既定のインスタンス」の定義が理解不足であるため、的を得ない質問かもしれず、
    根本的に何か認識違いがあると思います。

    この件、ご教示ならびに認識違いをご指摘いただけると助かります。

     

    2010年12月17日 5:57

回答

  • 認識は合ってると思います。

    詳しくは、以下をご覧ください。

    「インスタンスの構成」
    http://msdn.microsoft.com/ja-jp/library/ms143531.aspx

    • 回答としてマーク 山本春海 2010年12月29日 4:51
    2010年12月17日 6:40
  • もしかすると、「インスタンスID」と「インスタンス名」を混同されているかもしれません。

    「インスタンス名を省略して接続されるインスタンス」を「既定のインスタンス」と呼びますが、

    • SQL ブラウザによって接続先インスタンスを解決する場合、MSSQLSERVER という名前のインスタンスが検索されます。
    • TCP 接続によって接続先インスタンスを解決する場合、ポート 1433 で待機するインスタンスが選択されます。(このとき、インスタンスID やインスタンス名は関係ありません)

    最近の構成では、SQL Browser が無効状態でインストールされることも多く、どちらかというと後者で解決されていることも多いように思います。

    ※ クライアント側でプロトコルが無効にされていない限り、接続先に "SERVER" とだけ指定すると、1433/udp でSQL Browser による名前解決を試み、失敗したら 1433/tcp に接続します。(実際はもう少し複雑ですが)

    • 回答としてマーク 山本春海 2010年12月29日 4:51
    2010年12月17日 6:59

すべての返信

  • 認識は合ってると思います。

    詳しくは、以下をご覧ください。

    「インスタンスの構成」
    http://msdn.microsoft.com/ja-jp/library/ms143531.aspx

    • 回答としてマーク 山本春海 2010年12月29日 4:51
    2010年12月17日 6:40
  • もしかすると、「インスタンスID」と「インスタンス名」を混同されているかもしれません。

    「インスタンス名を省略して接続されるインスタンス」を「既定のインスタンス」と呼びますが、

    • SQL ブラウザによって接続先インスタンスを解決する場合、MSSQLSERVER という名前のインスタンスが検索されます。
    • TCP 接続によって接続先インスタンスを解決する場合、ポート 1433 で待機するインスタンスが選択されます。(このとき、インスタンスID やインスタンス名は関係ありません)

    最近の構成では、SQL Browser が無効状態でインストールされることも多く、どちらかというと後者で解決されていることも多いように思います。

    ※ クライアント側でプロトコルが無効にされていない限り、接続先に "SERVER" とだけ指定すると、1433/udp でSQL Browser による名前解決を試み、失敗したら 1433/tcp に接続します。(実際はもう少し複雑ですが)

    • 回答としてマーク 山本春海 2010年12月29日 4:51
    2010年12月17日 6:59
  • 皆さま、ご返信ありがとうございます。

    「インスタンス名を省略して接続されるインスタンス」を「既定のインスタンス」と呼びますが、

    MYINSTANCE のようなインスタンス名でも、静的 TCP/IPの1433ポートで接続できるように構成すると、
    インスタンス名を省略して接続できるようになるかと思います。つまりこの場合は、このインスタンスが「既定のインスタンス」
    ということでよいですよね?

    今まで MSSQLSERVER というインスタンス名だけが既定のインスタンスなのかと思っていたのですが、
    上記の私の考えが正しい認識であれば、それは間違えということになりますね。

    なかなか、奥が深いですね(というより私の理解が浅かったですね)。

     

    2010年12月17日 8:20