Sql-Server

移動 tempdb .ndf 文件的最佳方法

  • March 10, 2022

在 SQL Server 安裝期間,我“認為”我在 ‘F:’ 而不是 ‘C:’ 上指定了 tempdb 的位置,但我可以看到雖然 tempdb.mdf 和 templog.ldf 在 ‘F:’ 上,但 3 . ndf 輔助數據文件位於“C:”上。

我正在考慮通過執行以下步驟來移動 .ndf 文件:

   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. 將 3 個 .ndf 文件從其目前 C: 位置複製/粘貼到新的 F:\MSSQLData\ 位置
  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)。

最好的方法是您可以在文件的移動 tempdb 數據庫部分找到的方法。

您的方法接近 Microsoft 推薦的方法,除了您列出的第 2步和 第 3步,原因是:

因為每次啟動 SQL Server 實例時都會重新創建 tempdb,所以您不必物理移動數據和日誌文件。

請記住在步驟 5 之後從舊位置手動刪除文件。

如前所述,如果文件不存在,則它們會在啟動時創建。所以問題是是否要從舊位置刪除它們,以免 SQL Server 創建新位置?或者移動文件以便 SQL Server 不必創建新文件?有人可能會爭辯說,其中一個會比另一個更快。如果這不是問題,請使用最適合您的方法。

一個因素是您是否打開了即時文件初始化。沒有它,您將需要更長的時間來創建數據文件。

我的猜測是,對於該文件大小,您不會看到任何顯著差異。即,使用任何一種方法。

引用自:https://dba.stackexchange.com/questions/251615