之前在UAT環(huán)境搭建的SQL SERVER 2008 R2數(shù)據(jù)庫(kù)一直用得比較正常,但最近發(fā)現(xiàn)在Sharepoint中不能進(jìn)行任何操作了,開(kāi)始以為是什么配置出了問(wèn)題(因?yàn)橐恢痹谘芯恳恍┬碌膽?yīng)用和集成,需要不斷地測(cè)試),但后來(lái)發(fā)現(xiàn)是數(shù)據(jù)庫(kù)硬盤(pán)沒(méi)用一點(diǎn)空間了,那么自然是不能存任何數(shù)據(jù)了,所以最先開(kāi)始清理一些無(wú)用的數(shù)據(jù)庫(kù)日志,磁盤(pán)空間多了幾個(gè)G的容量,但是等到第二天情況依然如此,數(shù)據(jù)庫(kù)硬盤(pán)還是滿了,問(wèn)題依舊存在,后臺(tái)仔細(xì)檢查了一下所有數(shù)據(jù)庫(kù)的容量(因?yàn)樽畛跻詾槭菙?shù)據(jù)庫(kù)空間每天增長(zhǎng)太快了把硬盤(pán)占滿了),發(fā)現(xiàn)才十幾個(gè)G的,而硬盤(pán)總空間有126G,因此進(jìn)一步檢查了這個(gè)磁盤(pán)空間,發(fā)現(xiàn)才三十多個(gè)G,一開(kāi)始感覺(jué)很納悶,為什么會(huì)缺少將近90G 呢?后來(lái)發(fā)現(xiàn)是原來(lái)windows賬號(hào)的關(guān)系,之前用的登錄賬號(hào)權(quán)限有限,無(wú)法獲取磁盤(pán)的所有空間容量,因此換了管理員的賬號(hào)登錄后,發(fā)現(xiàn)原來(lái)是SQL SERVER有一個(gè)錯(cuò)誤日志的容量將近90G,總算找到磁盤(pán)滿的原因了,下一步就是如何去解決它。
一開(kāi)始聽(tīng)了同事的建議,直接通過(guò)文件剪貼的方式把這個(gè)SQL SERVER 錯(cuò)誤日志文件直接移動(dòng)到另外一個(gè)硬盤(pán)上,折騰了好幾個(gè)小時(shí)最終以失敗告終,說(shuō)明錯(cuò)誤日志被系統(tǒng)進(jìn)程占用著,并不能通過(guò)這個(gè)暴力方式進(jìn)行,因此走回正軌,通過(guò)SQL SERVER維護(hù)命令進(jìn)行操作,最終成功清除了90G的錯(cuò)誤日志文件,具體過(guò)程如下:
由于默認(rèn)情況下,SQL Server 保存 7 個(gè) ErrorLog 文件 ,名為:
ErrorLog
ErrorLog.1
ErrorLog.2
ErrorLog.3
ErrorLog.4
ErrorLog.5
ErrorLog.6
--清除 SQL Server 錯(cuò)誤日志文件 存檔
EXEC sp_cycle_errorlog
GO
執(zhí)行一次EXEC sp_cycle_errorlog就會(huì)產(chǎn)生一個(gè)新的errorlog,然后把errorlog.6給刪掉。就是先進(jìn)先出(隊(duì)列類似的情況)這樣循環(huán)6次就可以把errorlog都刷新一遍。
當(dāng)查詢窗口中,出現(xiàn)以下錯(cuò)誤信息時(shí):
消息 17049,級(jí)別 16,狀態(tài) 1,過(guò)程 sp_cycle_errorlog,第 9 行
由于出現(xiàn)操作系統(tǒng)錯(cuò)誤 '5(拒絕訪問(wèn)。)',無(wú)法將錯(cuò)誤日志文件從 'C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLLogERRORLOG.5' 循環(huán)到 'C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLLogERRORLOG.6'。SQL Server 外部的進(jìn)程可能會(huì)阻止 SQL Server 讀取這些文件。因此,錯(cuò)誤日志條目可能已丟失,并且或許不可能查看某些 SQL Server 錯(cuò)誤日志。請(qǐng)確保任何其他進(jìn)程都未將該文件鎖定為只寫(xiě)訪問(wèn)。"
DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。
手工刪除那個(gè)90G的錯(cuò)誤日志文件即可。
通過(guò)本次的經(jīng)歷,適當(dāng)掌握一些SQL SERVER維護(hù)命令在實(shí)際工作上也非常有必要的,而且相對(duì)于ORACEL數(shù)據(jù)庫(kù),SQL SERVER的維護(hù)要相對(duì)簡(jiǎn)單一些。