有一朋友咨询我,他配置的YourSQLDba 备份作业经常出现备份失败的情况,我帮忙查看了一下,首先从告警邮件中查看出错的具体信息,执行了下面SQL语句(来自于告警邮件)

Exec YourSQLDba.dbo.ShowHistory @JobNo = 37732, @DispLimit = 1, @FilterErr = 1

杀毒软件导致YourSQLDba备份失败-LMLPHP

最后一行的详细信息如下所示:

> -- This line is NULL in the command output. If an Antivirus runs on the SQL server ; check that backup directory is excluded from the scan, or that the .cmd files are excluded from the scan. (We suspect that an antivirus could temporarily lock one of YourSQLDba .cmd work files.)

翻译如下:

如果防病毒软件在 SQL服务器上运行;检查确保备份目录不被扫描或将cmd 文件从扫描中排除。(我们怀疑防病毒软件可能暂时锁 住了YourSQLDba 中的一个.cmd 工作文件 )。

于是检查服务器,发现服务器安装了赛门铁克杀毒软件,于是在“Change  Setting”下的"Exceptions"里,排除备份目录后,问题解决。其实排除扫描.bak文件亦可解决问题。

杀毒软件导致YourSQLDba备份失败-LMLPHP杀毒软件导致YourSQLDba备份失败-LMLPHP

后记:关于数据库服务器是否应该安装杀毒软件,争议很多,个人倾向于在数据库服务器安装反病毒软件,但是一定要设置反病毒软件,避免其扫描特定的数据文件或目录:

1:SQL Server数据文件   扩展名为.mdf 、 .ndf、 ldf

2:SQL Server备份文件   扩展名为.bak 、 .trn

…………

详细具体资料,请参考微软官方文档:http://support.microsoft.com/kb/309422

05-11 16:55