web-dev-qa-db-ja.com

MS SQLサーバー:単一または複数のインスタンス?

接頭辞付きデータベースのインスタンスを1つだけではなく、SQL Server 2005の複数のインスタンスを持つことは、どのくらいコストがかかりますか(CPUまたはメモリに関して)。

会社には3つのアプリケーションプロバイダーがあります。それぞれが1つのアプリケーションをインストールし、それぞれが2つまたは3つのデータベースを必要とします。それらはすべて同じインスタンスを使用する必要がありますか、それともすべてのプロバイダーが独自の名前付きインスタンスを使用する必要がありますか?

1つまたは他のセットアップに強い理由はありますか?

6

同じハードウェアに個別のインスタンスをインストールする唯一の強力な理由は、非常に厳しいセキュリティ分離要件がある場合です。それ以外の場合は、常に1つのインスタンスのみを持つことをお勧めします。 1つのインスタンスで、直面している負荷に合わせてすべてのハードウェアリソースを最適化できます。複数のインスタンスは互いに通信せず、それらはメモリ、I/O、およびCPUの負荷をオーバーラップさせ、パフォーマンスを低下させます。

また、単一のインスタンスは、個別のインスタンスよりも管理、監視、トラブルシューティングが簡単です。

6
Remus Rusanu

SQL Serverを個々のインスタンス(またはおそらく個別の仮想マシン)に分割すると、次のような利点があります。

より優れたリソース制限。SQL 2008のリソースガバナーは良い出発点ですが、それでも、特にIOの制限に関しては、きめ細かくはありません。仮想サーバーを使用すると、仮想マシンレベルでCPU、メモリ、およびIO=をスロットルできるため、SQL Serverの古いバージョンでもリソースを制限できます。

パフォーマンスのアップグレードとダウングレードがより簡単になりました。アプリケーションが急に人気を博した場合など、1台の仮想マシンをスケールアップする必要がある場合は、VMotionでより多くの停止することなく強力なマシン。一方、複数のインスタンスを使用している場合は、時間と労力のかかるインストールを検討しています。

より柔軟な停止ウィンドウ-すべてのデータベースが単一のOS(SQLの複数のインスタンス)にある場合、多くの調整を行う必要がありますWindowsパッチを実行します。それらが異なる仮想ゲストに分割されている場合は、個々のゲスト(およびそれに対応するデータベース)にとって最も便利なときにいつでもパッチを適用できます。

より優れたセキュリティ制限。1つのSQL Serverで問題が発生し、サードパーティがトラブルシューティングに参加する必要がある場合、OSレベルのアクセス許可を与えることができます。ボックスにインストールされている他のSQL Serverに対して彼らが何をするかについて心配している。

アプリケーションの互換性に関する問題が少なくなります。一部のアプリは、SQL Serverの名前付きインスタンスと互換性がないだけです。

ただし、すべてのユニコーンと虹ではありません。複数インスタンスおよび/または仮想サーバーのアプローチのいくつかの欠点は次のとおりです。

  • おそらくより高価です-仮想化レイヤーの料金を支払う必要があり、一部のソフトウェアのライセンス方法によっては、別の方法で支払う必要がある場合があります。一部のユーティリティは、ホストマシン上のCPUの数によってライセンスが付与され、すべてのCPUがSQL Serverに割り当てられるとは限りません。
  • おそらくより困難なトラブルシューティング-一部のベンダーは、仮想化レイヤーに指を向けたがります。
  • より多くのOS管理-追加するすべてのOSは、より多くの管理とメンテナンスを意味します。

私は SQL Serverの専門家であるKevin KlineとRon Talmageによる統合と仮想化に関するWebキャスト を行いました。ただし、そのためには登録が必要です。

5
Brent Ozar

この方法を検討している場合は、同じマシンで個別のインスタンスを実行するのではなく、インスタンスを異なるハードウェアに分離することをお勧めします。これらの各インスタンスがハンマーで打たれることを意図している場合は、同じボックスで3つのインスタンスをハンマーで打つのではなく、すべて1つのインスタンスをハンマーで打たなければなりません。

2
TheTXI

アプリケーションを別々のインスタンスに保持します。そうすれば、プロバイダーはお互いの仕事を見ることができません。彼らは自分たちのアプリを専有情報として見るので、おそらく彼らはそれを好むでしょう。また、データベースで異なる設定が必要な場合があります(照合など)。

これの欠点は、インスタンスが少し多くのメモリを必要とすることです。

アプリケーションのいずれかに大きな負荷がかかっている場合、それを独自のサーバーまたは少なくとも独自の物理的に分離されたディスクボリュームに配置する場合があります。通常、データベースサーバーのVMを分離するよりも、インスタンスを分離する方が望ましいでしょう。