SQL Server:名前付きインスタンスおよびデフォルトインスタンスとは何ですか?


35

名前付きインスタンスおよびデフォルトインスタンスとは何ですか?それらの違いは何ですか?なぜ使用されるのですか?

回答:


30

Microsoftによると名前付きvsデフォルトに関する

クライアントアプリケーションは、Microsoft SQL Server 2005のインスタンスに接続して、SQL Serverデータベースを操作します。各SQL Serverインスタンスは、一意の設定を持つことができる別個のサービスのセットで構成されています。ディレクトリ構造、レジストリ構造、およびサービス名はすべて、セットアップ中に特定した特定のインスタンス名を反映しています。

インスタンスは、デフォルトの名前のないインスタンスであるか、名前のあるインスタンスです。SQL Server 2005が既定のインスタンスにインストールされている場合、接続を確立するためにクライアントがインスタンスの名前を指定する必要はありません。クライアントはサーバー名を知っているだけです。

名前付きインスタンスは、コンピューターのネットワーク名とインストール時に指定したインスタンス名によって識別されます。クライアントは、接続時にサーバー名とインスタンス名の両方を指定する必要があります。

既定では、インスタンス名を指定しない限り、SQL Serverは既定のインスタンスにインストールされます。ただし、セットアップ中にデフォルトのインストールを強制しない限り、SQL Server Expressは常に名前付きインスタンスにインストールされます。


17

また、デフォルト(名前のないインスタンス)を1つだけインストールできますが、多くの名前のインスタンスをインストールできます。

多くのサードパーティソフトウェアは、通常、デフォルトの名前付きインスタンスを使用しますが、言及していません。上記の回答から理由は明らかです。標準バージョンはデフォルトで名前のないインスタンスをインストールしますが、Expressバージョンはデフォルトで名前の付いたインスタンスをインストールします。

2つまたは3つのDBサーバーを実行している場合、適切なバージョンに接続できない可能性があるため、この観点との違いについて知っておくことが重要です。サードパーティソフトウェアは、接続しようとしているSQLEXPRESSインスタンスであると考えている間に、デフォルトインスタンスを探しているためです。名前付きインスタンスと名前なしインスタンスへの接続方法がわからない場合、トラブルシューティング時間が大幅に増加する可能性があります。

したがって、名前付きバージョンまたは名前なしバージョンに接続する場合は、次のガイドラインを使用してください。

MY-MACHINE-NAME\SQLEXPRESS  /* named version - correct */
MY-MACHINE-NAME             /* unnamed version (default instance) - correct */
MY-MACHINE-NAME\MSSQLSERVER /* unnamed version (default instance) - Wrong */

デフォルトのインスタンスには名前がありますが、その名前で参照することはできません!


5

Brett Gが投稿した説明に加えて、それらを使用する理由のいくつかの理由があります。

  • 異なるバージョンのSQLを使用して異なるインスタンスを持つことができます(つまり、SQL 2008を使用するデフォルト、SQL 2005を使用する名前付きインスタンス)
  • 懸念の分離、アプリやセキュリティなどに関係なく
  • さまざまな開発環境
  • さまざまなアプリ環境(つまり、自社開発とサードパーティ)

それらを使用するあらゆる種類の理由。しかし、常に良いアイデアだとは限りません:P


5

さらに別の実用的な違い:SQL2005以降では、システムごとに16以上のインスタンスをインストールできます。ライセンスは物理CPUごと、SQLサーバーのインストールごと(インスタンスごとではありません!)であるため、これまでよりも多くの費用を支払うことなく、SQL Server 2005のインスタンスを最大16個実行できます。

CPUライセンスは1ソケットあたり15000ドル(!)まで実行できるため、これは、たとえば16コアと256GBのメモリを備えた大規模なインストールには必須です。


1

また、メモリに上限を設定し、インスタンスごとに制限プロセッサ使用量を割り当てることもできます。また、システム管理者権限を「必要とする」ベンダー作成アプリのインスタンスを作成して、他のアプリケーションを危険にさらさないようにすることもできます。


0

最良の理由の1つは、データベースの分離です。独自のアプリケーションを開発し、それを使用してSQL Expressをパッケージ化する場合は、独自のインスタンスにインストールするのが理にかなっています。さらに、既存のSQLインストールを指定するオプションをユーザーに提供します。

他のユーザーがアクセスできないようにする必要がある重要なデータベースがある場合、非常に限定されたセキュリティ認証でそれが独自のインスタンスに入ることができます。それがあなたの製品データベースであるとしましょう。そして、それは同じサーバー上のレポート用データベースに複製されます**。ユーザー(管理者)が本番インスタンスのセキュリティグループを実際に更新できるユーザーを少数に制限することで、ユーザーが本番DBに誤ってアクセスする可能性は低くなります。

**レポートサーバーを別のマシンにすることをお勧めしますが、例としてこれを行っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.