问题现象
- 您已经为SQL实例创建了保护计划。
- 最近,SQL实例的备份失败,错误为:“系统找不到指定的文件”
Error 0x00400456: Backup has failed on database level.
| line: 0x0x5cbbc79243bb224d
| $module: ArsAgentProvider_vsa64_32047
Error 0x015D0164: Failed to back up a file.
| line: 0x0xfa5fa19516b1ffa
| $module: ArsAgentProvider_vsa64_32047
| path: F:\MSSQL\Logs\Prophet_log.ldf
Error 0x015D0012: Failed to perform the file operation.
| line: 0x0x14feb4c2d30ab6ca
| $module: ArsDbBackupProvider_vsa64_32047
Error 0x00040011: The specified file does not exist.
| line: 0x0xf35f747b3b21fc76
| $module: ArsDbBackupProvider_vsa64_32047
| function: NtOpenFile
| path: \\?\'..'\Device\HarddiskVolumeShadowCopy58\MSSQL\Logs\
Error 0x0000FFF0: The system cannot find the file specified
| line: 0x0xbd28fdbd64edb8f8
| $module: ArsDbBackupProvider_vsa64_32047
| code: 2147942402
问题原因
原因一
如果错误消息包含路径“HarddiskVolumeShadowCopyXX”,则问题是由快照销毁引起的。这意味着快照通常不适合卷影存储,并且已被销毁。原因二
如果错误消息不包含路径“HarddiskVolumeShadowCopyXX”,则表示SQL server端存在一些错误配置,其中SQL server中的一些元数据指向不存在的数据库或日志文件。
解决方法
方法1
若要解决此问题,请使用以下方法之一:
- 增加卷影副本所在的存储空间。
- 将卷影存储移动到另一个具有更多空间的驱动器。
参照这篇Microsoft文章中的说明进行操作。
方法2
确保所有SQL数据库的所有文件都位于文件系统(MDF和LDF)中。