問題描述
TEMP數(shù)據(jù)庫過大,存在于C盤,單機(jī)環(huán)境下操作比較簡單,僅需要重啟即可重建tempdb數(shù)據(jù)庫;AlwaysOn群集環(huán)境同樣,重啟服務(wù)即可重建本機(jī)節(jié)點(diǎn)tempdb數(shù)據(jù)庫;但以上操作治標(biāo)不治本,為徹底解決temp數(shù)據(jù)庫過大問題,我們需要將tempdb數(shù)據(jù)庫轉(zhuǎn)移位置放在其他盤符。

解決方案
1、找到原tempdb對應(yīng)文件邏輯名及實(shí)際文件存放位置
select name,physical_name from sys.master_files where database_id=db_id('tempdb')
新存放tempdb數(shù)據(jù)路徑如下
F:db
2、數(shù)據(jù)庫中修改對應(yīng)存放位置
示例執(zhí)行語句:
ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'D:DataBaseNewtempdb.mdf');
ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'D:DataBaseNewtemplog.ldf');
可以通過如下語句批量獲取多個(gè)(若有)tempdb數(shù)據(jù)文件更改:
select name,'ALTER DATABASE tempdb MODIFY FILE (NAME= '+name+' , FILENAME= '''+REPLACE(physical_name,'C:Program FilesMicrosoft SQL ServerMSSQL14.MSSQLSERVERMSSQLDATA','D:tempdbdata') +''')'from sys.master_files where database_id=db_id('tempdb')
3、重啟數(shù)據(jù)庫服務(wù)
重啟數(shù)據(jù)庫服務(wù)后tempdb自動重建,因此對應(yīng)不需要在第2步操作完成后實(shí)際遷移數(shù)據(jù)文件(原數(shù)據(jù)文件不會被自動刪除,因此需要手動在重啟服務(wù)后刪除原位置下tempdb數(shù)據(jù)文件)