SQL Serverのインスタンスについて

SQL Serverのインスタンス

「SQL Serverのインスタンス」とはデータベース全般のサービスのことです。SQL Serverを起動するとデータベースが起動し、このデータベースを含めた全体のサービスがインスタンスです。

参照:インスタンスの構成 – MSDN – Microsoft

2種類のインスタンス

SQL Serverのインスタンスは2種類あります。

  • 既定のインスタンス・・・デフォルトのインスタンス「MSSQLSERVER」。1つのみ
  • 名前付きインスタンス・・・名前をつけたインスタンス。複数可

デフォルトのインスタンス「MSSQLSERVER」を使うか、独自の名前をつけた名前付きインスタンスを使います。

SQL Serverは1つのインスタンスにデータベースが複数存在できます。複数のデータベースを1つのインスタンスにできますが、インスタンスを停止するとすべてのデータベースが停止してしまいます。

名前付きインスタンスは複数のインスタンスが作成可能です。同一サーバーに複数のインスタンスが共存できます。無償のExpress Editionはこの名前付きインスタンスになります。

通常、1つのインスタンスで事足りますが、SQL Serverの異なるバージョンを併用したり、開発・テスト環境を併用したりする場合は、複数のインスタンスを追加します。

Oracleのインスタンスとの違い

一方、Oracleはインスタンスはデータベースに対して基本は1つです。

冗長化ではクラスタ(RAC)が使われますが、RACではデータベースが1つに対しインスタンスは2つあります。1つが稼働し、もう一つは待機しています。クラスタは別として、データベースにインスタンスは1つです。

Oracleのインスタンスはデータベースのメモリのことを指します。

Oracleのデータベースとインスタンスとは

かみ砕くと、Oracleのインスタンスはデータベースとペアになるイメージです。データベース(ファイル)とインスタンス(メモリ)はペアです。

しかし、SQL Serverはインスタンスというサービスにデータベースが複数存在し、インスタンスはSQL Serverというサービス全般をさしました。つまり、SQL Serverはサービス全体のことです。

  • SQLServer・・・1つのインスタンス内にデータベースが複数。インスタンスはサービス全体のこと
  • Oracle・・・データベースとインスタンスはペア。データベースに対してインスタンスは1つ。

この違いがあるためにSQL ServerとOracleの技術者は「インスタンス」で話しがかみあわなくなってしまいます。SQL Serverのインスタンスは全体のことなので、インスタンスを停止すると、すべてのデータベースが停止されてしまうので注意が必要ですね。

以上、SQL Serverのインスタンスの解説でした。

コメント