web-dev-qa-db-ja.com

SQL 2008でSANを使用してデータ、ログ、TempDBを分割することは重要ですか?

私はサーバー管理者ではありません。優しくしてください。しかし、私は会議に参加しており、トレーニングクラスの1つで、インストラクターがSQL DBAのベストプラクティスについて説明しました。その1つは、パフォーマンスを向上させるためにMdf、Ldf、およびTempDBを別々のドライブに分離することでした。

今、私たちのオフィスにはsanがあります。システム管理者は、データ用、ログ用、TempDB用の3つのドライブを作成しました。

私の直感は無駄な努力だったと私に告げています...それはそうでしたか?

詳細はよくわかりませんが、質問があれば、この質問に正確に回答するために必要な仕様を記入してみます。

enter image description here

4
MVCylon

データベースファイル、トランザクションログファイル、一時データファイルは通常、それらの間のI/O競合を減らすために異なるボリュームに配置されます。これは、データベースごとに複数のデータファイルを作成し、さらに多くのボリュームに分散してSQLに伝えることによってさらに拡張できます。特定のテーブルとインデックスを保存するサーバー。そのため、はい、これはDBAにとって一般的な方法であり、実際にパフォーマンスが大幅に向上する可能性があります。

SANを使用すると完全に無意味になる可能性があることも事実です。 SANが実際に構成されている方法に応じて、さまざまなLUN(ボリューム)を物理ディスク、RAIDアレイ、およびストレージコントローラーの任意のセットにマップできるため、2つのLUN間のI/O競合「完全に分離された」から「同じディスクを効果的に共有する」までの範囲に及ぶ可能性があります。したがって、DBAがストレージ管理者と緊密に連携していない限り、データベースファイルを分散させるために異なるLUNを要求することは、実際に完全に無駄な作業になる可能性があります。 。

ただし、データベースファイルとトランザクションログファイルを分離することは、パフォーマンスだけでなく信頼性の面でもベストプラクティスと見なされます。SQLServerで使用されるトランザクションストレージエンジン(および既存のほとんどすべてのDBMSで使用される同様のエンジン)のため、ログファイル災害復旧シナリオでトランザクションを再生するために使用でき、システムが何が起こったかを復旧できるようにしますafter最後のバックアップが取られました。ただし、これが機能するためには、データファイルとログファイルを同時に失いたくないので、パフォーマンスが向上しなくても、少なくともそれらを異なるボリュームに配置することをお勧めします。

5
Massimo

データベースファイルをログファイルから分離する理由は、データベースアクセスがランダムで、ログアクセスがシーケンシャルであるためです。ベストプラクティスでは、ディスクがサーバーに提供される方法(ローカル、DAS、iSCSIなど)に関係なく、これら2つのI/Oタイプを同じディスク上で混在させないように指示しています。いいえ、それは無駄な努力ではありませんでした。

Tempdbに関しては、データベースから分離することがMicrosoftの推奨のようです。

http://msdn.Microsoft.com/en-us/library/ms175527(v = sql.105).aspx

3
joeqwerty

ログのディスクのI/Oは、ログファイルが1つだけ含まれている場合にのみシーケンシャルになります。別のものを追加すると、ランダムI/Oが発生します。

0
Michael