web-dev-qa-db-ja.com

SQL Serverインスタンスのルートディレクトリを別のドライブに配置すると便利ですか?

SQL Serverをインストールするときに多くのデフォルトパスを変更できることを知っています。通常、インストールを実行すると、データフォルダーとログフォルダーを別のドライブ(通常はDとE)に変更しますが、最近、デフォルト以外のインスタンス名を実行しており、インスタンスのルートディレクトリがmdfファイルと一緒にDドライブにあるように構成されている、プリインストールされたマシン。これは、通常はフォルダとデータベースファイルだけが含まれる比較的クリーンなドライブに、SQL Serverバイナリも完全にインストールされていることを意味します。

すなわち、私は今次のものを持っています:

C:\Program Files\Microsoft SQL Server\ --Base Install
D:\Microsoft SQL Server\MSSQL10_50.MyInstance --Instance Binaries
D:\Microsoft SQL Server\MSSQL10_50.MyInstance\MSSQL\DATA --Data Files
E:\Microsoft SQL Server\MSSQL10_50.MyInstance\MSSQL\LOGS --Log Files

通常、私は次のようなもので実行します:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\ --Base Install & Default Instance Binaries
D:\MSSQL\DATA --Data Files
E:\MSSQL\LOGS --Log Files

別のインスタンスバイナリフォルダーが必要な理由は理解できますが、これらのバイナリをすべて別のドライブに配置すると便利な理由がわかりません。

なぜそれが行うのが理にかなっているのかを誰かに教えてもらえますか?それとも、まったく違いがありませんか?私にはそれはひどく乱雑に見えるだけです...

29
adhocgeek

インスタンスのルートを分割することに関して、それを行うことに賛成するいくつかの議論があります。

  1. 一部の人々は、「C」ドライブをOSとOSバイナリのみに専用にしておくことに賛成です。これにより、Cドライブでクラッシュが発生した場合の回復にいくつかの異なるオプションが提供され、OSが他のアプリとの共有によるスペース関連の問題を引き起こしたり受け取ったりするのを防ぐのに役立ちます。
  2. SQL Serverのバイナリを他のプログラムから分離し、エラーログが保存されるLogsフォルダーなどの重要なフォルダーのいくつかの可用性を確保しています。このフォルダーは、SQL Serverの起動時にアクセスできる必要があります。あなたは基本的に他人から身を守っています。

SQL Serverのバイナリ/インスタンスファイルは、他のプログラムファイルと同じ場所に置くことができます。ただし、それを行う場合は、少なくともシステムデータベースファイルと、場合によってはデフォルトのバックアップの場所を取得して、別の場所に移動してください。

ここでは、再生するドライブ文字を無制限に指定した場合に行う傾向があります(少なくとも、ここでは文字は重要ではありません)。

  • C-OSおよびシステムレベルのファイル。のみ
  • D-すべてのアプリ(SQL Serverを含む)のプログラムファイル
  • S-インスタンスレベルのファイル/ SQL Serverシステムデータベースおよびログファイル(TempDBを除く)(注..複数のインスタンスがある場合、これらの4つは作成しません。すべてのインスタンスのすべてのSQLバイナリをほとんどの状況ではS、フォルダーは分離を提供します)

ED-もう1つの注意-私は「S」ドライブを使用できないことがよくあります。1日の終わりに、Master、Model、MSDB、およびResource dbのシステムデータベースファイルが一部のユーザーデータベースファイルと同じドライブですが、混乱を避けるために論理的に分離するために別のフォルダーにありますが、これで終わりではありません。)

  • F-ユーザーデータベースのデータファイル
  • L-ユーザーデータベースのログファイルドライブ
  • T-TempDB
  • X-バックアップドライブ(多くの場合、バックアップをネットワークドライブにストリーミングすることを選択します。バックアップ後にコピーの代金を支払うことなく、すぐに別の場所のストレージにバックアップします。)

多くの場合、より多くのデータドライブとログドライブがあり、場合によっては別のTempDBドライブがあります。複数のインスタンスを追加すると、ドライブ文字がすぐに不足する可能性があります。 C:にインスタンスレベルのファイルを配置することで、問題を回避できます。そして、私はそのようにセットアップされたクライアントに対して多くのヘルスチェックを行います-そして、私は決して「ああ、すごい。私たちは今それを修正しなければなりません」-今、彼らのTempDBファイルもそこにあれば、私は通常彼らにそれを変えてもらいなさい。マスターデータベースとMSDBデータベースも移動することがあります。

しかし、これらを分けなければ、世界は終わりません。私の利点は本当に-your-ファイルを分離しておくことだと思います。 DBAは、会社の他の役割、他のアプリケーション、他のインストールなどに関して健全なパラノイアを持つ必要があり、競合の可能性から自分自身を分離できるほど、うまくいくでしょう。そしてそれはあなたに再インストールと回復のためのいくつかのより多くのオプションを提供します。つまり、バイナリをCから分離します。しかし、私のアドバイスは、インスタンスごとに個別のドライブに夢中になることではありません。

23
Mike Walsh

まあ、Windowsでは26の可能なドライブ文字しかありません。 1
しかし、マウントポイントを使用する可能性があります。 2

したがって、25台の異なるサーバー(SQL、Webなど)を1台のマシンにインストールする必要がある場合、サーバーの1つにドライブ文字を1つ用意することは理にかなっています。
しかし、サーバーが1つしかない場合は、ログファイル、データベース、プログラムファイルに異なるドライブ文字を使用する方が理にかなっています。
ログ/データベース/プログラムファイルが異なるフォルダーにある場合は、それらを分割することもできます。

  1. sQLサーバーを停止する
  2. パーティションを追加する
  3. すべてのデータベースファイルをパーティションにコピーします
  4. マウントポイントを、データベースファイルが置かれているフォルダーに変更します(例:d:\ database)
  5. 終わった
3
gnomix