首页 > 解决方案 > 如何将 mssql 中的维护计划备份错误“BackupIoRequest::ReportIoError: read failure on backup device ...”修复到共享文件夹

问题描述

我在维护计划中的备份作业已经连续 3 天出现错误(请检查下面遇到的错误)。

作业配置如下:

  1. (步骤一):将数据库备份到服务器A的共享文件夹中
  2. (步骤 2):如果步骤 1 成功,它会将备份Server AServer B.

根据事件查看器的错误,错误在步骤 1停止。我仍然不知道错误来自哪里,但是根据检查在服务器 A 中创建的备份都已完成,这很奇怪。

这是我的隔离:

  1. Server A和的共享文件夹Server B是可访问的(在 Windows 中也以用户身份尝试了 SQL 服务作业的帐户)

这是在事件查看器中发现的错误:

1. BackupIoRequest::ReportIoError: read failure on backup device '\\\Server_A\Shared Folder\Database.bak'. Operating system error 64(The specified network name is no longer available.)."
2. "Package "Backup Databases Directly to Server_A Shared Folder" failed."
3. "SQL Server Scheduled Job 'Backup Databases Directly to Server_A Shared Folder.Subplan_1' (0xD20650B4C8A10F41A130C734D053DB63) - Status: Failed - Invoked on: 2019-08-24 00:00:00 - Message: The job failed.  The Job was invoked by Schedule 89 (Backup Databases Directly to Server_A Shared Folder.Subplan_1).  The last step to run was step 1 (Subplan_1).

标签: sql-serversql-server-2008

解决方案


根据事件查看器的错误,错误在步骤 1 停止。我仍然不知道错误来自哪里

通常,当您从 SQL 代理历史记录中检查它时,展开作业并选择步骤 1,以便我们可以看到导致该错误的原因,信息必须打印在消息部分(底部)中:

“BackupIoRequest::ReportIoError: 备份设备 '\Server_A\Shared Folder\Database.bak' 读取失败。操作系统错误 64(指定的网络名称不再可用。)

在这种情况下,一定是路径有问题(拼写错误),或者 SQL Server 服务帐户(不仅是 SQL 代理服务帐户)对共享文件夹没有权限。

当您说SERVER-A 和 SERVER-B 可以访问共享文件夹时,您可能已经验证了使用特定用户在服务器上的登录,以便登录用户获得共享文件夹的权限,只要同一用户是服务帐户SQL Server的用户,那么我们可以假设,SQL Server 确实可以访问共享文件夹。

希望,修复权限问题将解决导致的错误。

但是,您是否有任何问题直接在共享文件夹上创建备份,SERVER-B因为我觉得我们正在做不必要的额外步骤。

Ps:我个人,建议使用自定义脚本进行维护任务,尤其是备份。我在 DBA.SE 的回答可能对您的情况有所帮助,以制定更好的备份策略


推荐阅读