萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> 清除SQL SERVER錯誤日志出現操作系統錯誤

清除SQL SERVER錯誤日志出現操作系統錯誤

   之前在UAT環境搭建的SQL SERVER 2008 R2數據庫一直用得比較正常,但最近發現在Sharepoint中不能進行任何操作了,開始以為是什麼配置出了問題(因為一直在研究一些新的應用和集成,需要不斷地測試),但後來發現是數據庫硬盤沒用一點空間了,那麼自然是不能存任何數據了,所以最先開始清理一些無用的數據庫日志,磁盤空間多了幾個G的容量,但是等到第二天情況依然如此,數據庫硬盤還是滿了,問題依舊存在,後台仔細檢查了一下所有數據庫的容量(因為最初以為是數據庫空間每天增長太快了把硬盤占滿了),發現才十幾個G的,而硬盤總空間有126G,因此進一步檢查了這個磁盤空間,發現才三十多個G,一開始感覺很納悶,為什麼會缺少將近90G呢?後來發現是原來windows賬號的關系,之前用的登錄賬號權限有限,無法獲取磁盤的所有空間容量,因此換了管理員的賬號登錄後,發現原來是SQL SERVER有一個錯誤日志的容量將近90G,總算找到磁盤滿的原因了,下一步就是如何去解決它。

  一開始聽了同事的建議,直接通過文件剪貼的方式把這個SQL SERVER 錯誤日志文件直接移動到另外一個硬盤上,折騰了好幾個小時最終以失敗告終,說明錯誤日志被系統進程占用著,並不能通過這個暴力方式進行,因此走回正軌,通過SQL SERVER維護命令進行操作,最終成功清除了90G的錯誤日志文件,具體過程如下:

  由於默認情況下,SQL Server 保存 7 個 ErrorLog 文件,名為:

  ErrorLog

  ErrorLog.1

  ErrorLog.2

  ErrorLog.3

  ErrorLog.4

  ErrorLog.5

  ErrorLog.6

  --清除 SQL Server 錯誤日志文件 存檔

  EXEC sp_cycle_errorlog

  GO

  執行一次EXEC sp_cycle_errorlog就會產生一個新的errorlog,然後把errorlog.6給刪掉。就是先進先出(隊列類似的情況)這樣循環6次就可以把errorlog都刷新一遍。

  當查詢窗口中,出現以下錯誤信息時:

  消息 17049,級別 16,狀態 1,過程 sp_cycle_errorlog,第 9 行

  由於出現操作系統錯誤 '5(拒絕訪問。)',無法將錯誤日志文件從 'C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLLogERRORLOG.5' 循環到 'C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLLogERRORLOG.6'。SQL Server 外部的進程可能會阻止 SQL Server 讀取這些文件。因此,錯誤日志條目可能已丟失,並且或許不可能查看某些 SQL Server 錯誤日志。請確保任何其他進程都未將該文件鎖定為只寫訪問。"

  DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。

  手工刪除那個90G的錯誤日志文件即可。

  通過本次的經歷,適當掌握一些SQL SERVER維護命令在實際工作上也非常有必要的,而且相對於ORACEL數據庫,SQL SERVER的維護要相對簡單一些。

copyright © 萬盛學電腦網 all rights reserved