移動 tempdb 資料庫檔案

移動 tempdb 資料庫檔案

tempdb 資料庫是 SQL Server 的系統資料庫之一,它是全域暫存物件的存放區,很多查詢相關活動都有可能用到,基於避免 I/O 資源競爭,我會盡量把 tempdb 實體檔存放在獨立磁碟,避免與其他存取頻繁的資料庫放在一起。

由於 SQL Server 2005 安裝時並沒有自訂 tempdb 資料檔路徑的選項,為了獲取較好的執行效能,你可以在安裝之後的任何時間點自行變更,其主要步驟有三:
  1. 變更檔案存放路徑
    
    GO
    
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLTempdb\tempdb.mdf');
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = templog, FILENAME = 'E:\SQLTempdb\templog.ldf');
    GO
  2. 重啟 SQL Server 執行個體。(此時會在新路徑重建 tempdb)
    • 利用組態管理員  
      restart_sqlservice
      - 或 -
    • 命令提示字元
      restart_sqlinstance_cmd
      ﹝請注意:不管採用哪一種作法,務必針對變更 tempdb 檔案路徑的那一個 SQL Server 執行個體重啟服務。﹞
  3. 確認檔案變更成功
    
    FROM sys.master_files
    WHERE database_id = DB_ID(N'tempdb');
    GO

變更完成之後,別忘了回去原始位置刪除廢棄的 tempdb.mdf 和 templog.ldf 檔案,這樣就大功告成囉。附帶一提,從 SQL Server 2008 之後的所有版本,安裝時就能讓你自行指定,包括預設使用者資料庫目錄、暫存資料庫目錄、備份目錄: 

custom_sqlinstance_path

所以安裝前的規劃、配置得宜的話是可以免除後續一些維護的問題,也算 SQL Server 持續在進步中吧!


參考資料