昨天遇到一個案例,YourSQLDba做事務日誌備份時失敗,檢查YourSQLDba輸出的錯誤信息如下: yMaint.backups backup log [gewem] to disk = 'M:\DB_BACKUP\LOG_BACKUP\xxxx_[2016-11-22_01h11m05_Tu... ...
昨天遇到一個案例,YourSQLDba做事務日誌備份時失敗,檢查YourSQLDba輸出的錯誤信息如下:
<Exec>
<ctx>yMaint.backups</ctx>
<Sql>
backup log [gewem]
to disk = 'M:\DB_BACKUP\LOG_BACKUP\xxxx_[2016-11-22_01h11m05_Tue]_logs.TRN'
with noInit, checksum, name = 'YourSQLDba:16h16: M:\DB_BACKUP\LOG_BACKUP\xxxx_[2016-11-22_01h11m05_Tue]_logs.TRN'
</Sql>
<err>Error 3202, Severity 16, level 2 : Write on "M:\DB_BACKUP\LOG_BACKUP\xxxx_[2016-11-22_01h11m05_Tue]_logs.TRN" failed: 112(error not found)
Error 3013, Severity 16, level 1 : BACKUP LOG is terminating abnormally.
</err>
</Exec>
這個“failed :112”信息一齣現,意味著肯定是磁碟空間不夠,昨天總結的那篇博客DBCC CHECKDB 遭遇Operating system error 112(failed to retrieve text for this error. Reason: 15105) encountered其實遇到的問題也是類似的,Operating System error 112 meaning There is not enough space on the disk.
當時檢查時,發現磁碟空間還剩下十多G,然後自己手工又將代碼取出,手工執行測試,依然報這個錯誤:
backup log [xxxx]
to disk = 'M:\DB_BACKUP\LOG_BACKUP\xxxx_[2016-11-22_01h11m05_Tue]_logs.TRN'
with noInit, checksum,
NAME = 'YourSQLDba:00h10: M:\DB_BACKUP\LOG_BACKUP\xxxx_[2016-11-22_01h11m05_Tue]_logs.TRN'
後面檢查發現這個資料庫的日誌文件暴增,已經超過數據文件的大小。如下截圖所示,所以即使磁碟空間還有不少(19G),部署的磁碟空間告警作業亦正常,沒有出現告警,但是已經不能足夠支撐事務日誌備份完成。所以出現了這個問題,問題有點隱蔽,不過只要細心,問題真相就能水落石出。剔除幾個老舊備份以及已經上帶的備份,騰出了一些磁碟空間,重新運行作業,作業執行成功!