tempdb太大引起磁盤(pán)容量不足的處理

最近公司項(xiàng)目在用sqlserver2012,因數(shù)據(jù)量非常大,程序跑起來(lái)臨時(shí)表的數(shù)據(jù)量高達(dá)40多G,嚴(yán)重影響C盤(pán)的存量,所以決定將臨時(shí)表文件遷移到存量比較大的分區(qū)。

  • 臨時(shí)方法:重啟MSSQLSERVER服務(wù)可刪除緩存,可是不方便,更好的方法是更換緩存分區(qū)。

具體方法:

1.在sqlserver中運(yùn)行以下代碼:
SELECT name, physical_name
FROM sys.master_files
WHERE database_id = DB_ID('tempdb');

運(yùn)行后會(huì)返回tempdb.mdf與templog.ldf的路徑。

2.在控制面板-管理工具-服務(wù)中停止MSSQLSERVER的服務(wù)并將以上兩個(gè)文件移動(dòng)到其他分區(qū),并記下路徑。再執(zhí)行以下語(yǔ)句:

GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = tempdev, FILENAME = 'D:\tempdb\tempdb.mdf');
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = templog, FILENAME = 'D:\tempdb\templog.ldf');

NAME = tempdev,NAME = templog 是邏輯名,F(xiàn)ILENAME 指向的是數(shù)據(jù)庫(kù)文件的實(shí)際位置
3.重啟服務(wù),檢查sqlserver是否移動(dòng)成功:

FROM sys.master_files
WHERE database_id = DB_ID('tempdb'); 
運(yùn)行后會(huì)返回新的tempdb.mdf與templog.ldf的路徑。  

坑來(lái)了!

第二天重啟電腦后發(fā)現(xiàn)sqlserver2012不能登錄了,MSSQLSERVER 顯示[[SQL Server無(wú)法連接到服務(wù)器]標(biāo)題: 連接到服務(wù)器 --------- 無(wú)法連接到 ****],找不到指定文件......并且啟動(dòng)MSSQLSERVER服務(wù)時(shí)會(huì)自動(dòng)停止,經(jīng)過(guò)查看計(jì)算機(jī)管理日志后發(fā)現(xiàn)錯(cuò)誤:

  • 嘗試打開(kāi)或創(chuàng)建物理文件 'F:\tempdb\tempdb.mdf' 時(shí),CREATE FILE 遇到操作系統(tǒng)錯(cuò)誤 5(拒絕訪問(wèn)。)。
  • FCB::Open failed: 無(wú)法打開(kāi)文件號(hào) 1 的文件 F:\tempdb\tempdb.mdf。操作系統(tǒng)錯(cuò)誤: 5(拒絕訪問(wèn)。)。

確定是改變臨時(shí)表路徑引起的權(quán)限問(wèn)題!

解決方法:
分區(qū)->屬性->安全
把User的權(quán)限改為完全控制,重啟服務(wù)即可。

參考資料:http://www.cnblogs.com/shadow-ccos/p/5304106.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容