接頭辞付きデータベースのインスタンスを1つだけではなく、SQL Server 2005の複数のインスタンスを持つことは、どのくらいコストがかかりますか(CPUまたはメモリに関して)。
会社には3つのアプリケーションプロバイダーがあります。それぞれが1つのアプリケーションをインストールし、それぞれが2つまたは3つのデータベースを必要とします。それらはすべて同じインスタンスを使用する必要がありますか、それともすべてのプロバイダーが独自の名前付きインスタンスを使用する必要がありますか?
1つまたは他のセットアップに強い理由はありますか?
同じハードウェアに個別のインスタンスをインストールする唯一の強力な理由は、非常に厳しいセキュリティ分離要件がある場合です。それ以外の場合は、常に1つのインスタンスのみを持つことをお勧めします。 1つのインスタンスで、直面している負荷に合わせてすべてのハードウェアリソースを最適化できます。複数のインスタンスは互いに通信せず、それらはメモリ、I/O、およびCPUの負荷をオーバーラップさせ、パフォーマンスを低下させます。
また、単一のインスタンスは、個別のインスタンスよりも管理、監視、トラブルシューティングが簡単です。
SQL Serverを個々のインスタンス(またはおそらく個別の仮想マシン)に分割すると、次のような利点があります。
より優れたリソース制限。SQL 2008のリソースガバナーは良い出発点ですが、それでも、特にIOの制限に関しては、きめ細かくはありません。仮想サーバーを使用すると、仮想マシンレベルでCPU、メモリ、およびIO=をスロットルできるため、SQL Serverの古いバージョンでもリソースを制限できます。
パフォーマンスのアップグレードとダウングレードがより簡単になりました。アプリケーションが急に人気を博した場合など、1台の仮想マシンをスケールアップする必要がある場合は、VMotionでより多くの停止することなく強力なマシン。一方、複数のインスタンスを使用している場合は、時間と労力のかかるインストールを検討しています。
より柔軟な停止ウィンドウ-すべてのデータベースが単一のOS(SQLの複数のインスタンス)にある場合、多くの調整を行う必要がありますWindowsパッチを実行します。それらが異なる仮想ゲストに分割されている場合は、個々のゲスト(およびそれに対応するデータベース)にとって最も便利なときにいつでもパッチを適用できます。
より優れたセキュリティ制限。1つのSQL Serverで問題が発生し、サードパーティがトラブルシューティングに参加する必要がある場合、OSレベルのアクセス許可を与えることができます。ボックスにインストールされている他のSQL Serverに対して彼らが何をするかについて心配している。
アプリケーションの互換性に関する問題が少なくなります。一部のアプリは、SQL Serverの名前付きインスタンスと互換性がないだけです。
ただし、すべてのユニコーンと虹ではありません。複数インスタンスおよび/または仮想サーバーのアプローチのいくつかの欠点は次のとおりです。
私は SQL Serverの専門家であるKevin KlineとRon Talmageによる統合と仮想化に関するWebキャスト を行いました。ただし、そのためには登録が必要です。
この方法を検討している場合は、同じマシンで個別のインスタンスを実行するのではなく、インスタンスを異なるハードウェアに分離することをお勧めします。これらの各インスタンスがハンマーで打たれることを意図している場合は、同じボックスで3つのインスタンスをハンマーで打つのではなく、すべて1つのインスタンスをハンマーで打たなければなりません。
アプリケーションを別々のインスタンスに保持します。そうすれば、プロバイダーはお互いの仕事を見ることができません。彼らは自分たちのアプリを専有情報として見るので、おそらく彼らはそれを好むでしょう。また、データベースで異なる設定が必要な場合があります(照合など)。
これの欠点は、インスタンスが少し多くのメモリを必要とすることです。
アプリケーションのいずれかに大きな負荷がかかっている場合、それを独自のサーバーまたは少なくとも独自の物理的に分離されたディスクボリュームに配置する場合があります。通常、データベースサーバーのVMを分離するよりも、インスタンスを分離する方が望ましいでしょう。