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

解決方案
1、找到原tempdb對(duì)應(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ù)庫(kù)中修改對(duì)應(yīng)存放位置
示例執(zhí)行語(yǔ)句:
ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'D:DataBaseNewtempdb.mdf');
ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'D:DataBaseNewtemplog.ldf');
可以通過(guò)如下語(yǔ)句批量獲取多個(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ù)庫(kù)服務(wù)
重啟數(shù)據(jù)庫(kù)服務(wù)后tempdb自動(dòng)重建,因此對(duì)應(yīng)不需要在第2步操作完成后實(shí)際遷移數(shù)據(jù)文件(原數(shù)據(jù)文件不會(huì)被自動(dòng)刪除,因此需要手動(dòng)在重啟服務(wù)后刪除原位置下tempdb數(shù)據(jù)文件)