sql-server - 如何将 mssql 中的维护计划备份错误“BackupIoRequest::ReportIoError: read failure on backup device ...”修复到共享文件夹
问题描述
我在维护计划中的备份作业已经连续 3 天出现错误(请检查下面遇到的错误)。
作业配置如下:
- (步骤一):将数据库备份到服务器A的共享文件夹中
- (步骤 2):如果步骤 1 成功,它会将备份
Server A
从Server B
.
根据事件查看器的错误,错误在步骤 1停止。我仍然不知道错误来自哪里,但是根据检查在服务器 A 中创建的备份都已完成,这很奇怪。
这是我的隔离:
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).
解决方案
根据事件查看器的错误,错误在步骤 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 的回答可能对您的情况有所帮助,以制定更好的备份策略
推荐阅读
- html - 如何在 CSS 中稳定背景图像
- php - MySql Group By Count item count Distinct
- swift - OAuthSwift - 弹出 Safari 视图,不跳转到 Safari
- javascript - 使用 console.log 或 document.write 将转换后的字符串显示为数字不起作用。串联显示不工作也不工作
- flutter - 如何在 Flutter 中将容器粘贴到屏幕底部
- django-models - 如何将数据提供给选择字段 django 中的每个选项
- python - Selenium 与 python 并尝试在网站中发送带有图像的密钥,但它上传了多个图像
- python-3.x - 深度视差矩阵 Q
- java - ARCore 模型大小
- oracle - Codeigniter 中的 DataTables(显示百万行数据)