web-dev-qa-db-ja.com

tempdb .ndfファイルを移動するための最良の方法

SQL Serverのインストール中に、tempdbの場所を「C:」ではなく「F:」に指定したと「考え」ましたが、tempdb.mdfとtemplog.ldfは「F:」にありますが、3 ndfセカンダリデータファイルは「C:」にあります。

次の手順を実行して、.ndfファイルを移動することを考えています。

    1。
    ALTER DATABASE tempdb MODIFY FILE ( NAME = temp2 , FILENAME = 'F:\MSSQLData\temp2' )
    ALTER DATABASE tempdb MODIFY FILE ( NAME = temp3 , FILENAME = 'F:\MSSQLData\temp3' )
    ALTER DATABASE tempdb MODIFY FILE ( NAME = temp4 , FILENAME = 'F:\MSSQLData\temp4' )
  1. SQL Serverを停止します(インスタンスは現在何も実行していません)。
  2. 現在のC:の場所から新しいF:\ MSSQLData \の場所に3つの.ndfファイルをコピーして貼り付けます
  3. SQL Serverを再起動します。
  4. 機能したかどうかを確認します。
    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'tempdb'); 

それが最善のアプローチですか?インスタンスは3つの小さなデータベースのみをサポートします(合計10GB未満)。

1
BRW

最良のアプローチは、ドキュメントの tempdbデータベースの移動 セクションにあるものです。

あなたの方法は、あなたがリストした2nd3rdのステップと理由を除いて、マイクロソフトが推奨するものに近いです:

TempdbはSQL Serverのインスタンスが起動するたびに再作成されるため、データファイルとログファイルを物理的に移動する必要はありません。

1
Ronaldo

前述のように、ファイルが存在しない場合は、起動時に作成されます。したがって、問題は、それらを古い場所から削除して、SQL Serverが新しい場所を作成しないようにするかどうかです。または、SQL Serverが新しいファイルを作成する必要がないようにファイルを移動するには?これらの1つは他よりも速いと主張することができます。それが問題ではない場合は、自分に最も適した方を使用してください。

1つの要因は、ファイルの即時初期化がオンになっているかどうかです。これがないと、データファイルを作成する時間が長くなります。

私の推測では、そのファイルサイズでは、大きな違いは見られません。つまり、どちらの方法を使用します。

0
Tibor Karaszi