代码改变世界

Write on ……… failed: 112(failed to retrieve text for this error. Reason: 15105)

2015-01-07 10:08  潇湘隐者  阅读(3628)  评论(0编辑  收藏  举报

   早上检查数据库的备份邮件时,发现一台Microsoft SQL Server 2008 R2 (SP2)数据库的Maintenance Report有错误

clipboard

 

在SSMS里面执行Exec YourSQLDba.Maint.ShowHistoryErrors 729脚本后,发现如下错误信息(数据库名用XXX替代):

<Exec>

  <ctx>yMaint.backups</ctx>

  <cmd>

backup log [XXXX_XXX]

to disk = 'E:\DB_BACKUP\XXXX_XXX_[2015-01-06_02h03m12_Tue]_logs.TRN'

with noInit, checksum, name = 'YourSQLDba:04h10: E:\DB_BACKUP\XXXX_XXX_[2015-01-06_02h03m12_Tue]_logs.TRN'

</cmd>

  <err>Error 3202, Severity 16, level 1 : Write on "E:\DB_BACKUP\XXXX_XXX_[2015-01-06_02h03m12_Tue]_logs.TRN" failed: 112(failed to retrieve text for this error. Reason: 15105)</err>

  <err>Error 3013, Severity 16, level 1 : BACKUP LOG is terminating abnormally.</err>

</Exec>

检查具体的错误日志信息发现如下错误信息:

clipboard[1]

日期 2015/1/7 6:16:55 
 
日志 SQL Server (当前 - 2015/1/7 0:30:00) 
 
源 Backup 
 
消息 
 
BackupIoRequest::ReportIoError: write failure on backup device 'E:\DB_BACKUP\XXXX_XXX_[2015-01-06_02h03m12_Tue]_logs.TRN'. Operating system error 112(failed to retrieve text for this error. Reason: 15105).
 
日期 2015/1/7 6:16:55 
 
日志 SQL Server (当前 - 2015/1/7 0:30:00) 
 
源 Backup 
 
消息 
 
BACKUP failed to complete the command BACKUP LOG XXXX_XXX. Check the backup application log for detailed messages.
 

 

出现这个“Operating system error 112(failed to retrieve text for this error. Reason: 15105)”错误,意味着数据库事务日志备份失败,具体原因是因为备份的磁盘没有空间了,导致写入磁盘时出现错误。我们另外的一个监控磁盘告警的作业也发出了告警邮件。如下所示:

clipboard[2]

具体原因是因为其中一个数据库的事务日志文件增长的比较厉害。导致磁盘空间被迅速消化殆尽,因为2小时一次的事务日志备份文件消耗了不少存储空间。