sql-server - VSS 中的还原操作失败返回 VSS_E_OBJECT_NOT_FOUND
问题描述
我正在尝试通过 VSS 备份和恢复 MS SQL 服务器。我的备份操作运行良好,我将备份元数据存储在 XML 文件中。在还原操作期间,我提供了在备份操作期间创建的相同 XML,发生的情况是在返回 VSS_E_OBJECT_NOT_FOUND 的 PreRestore Stage 中还原间歇性失败。我尝试过以下事情:
- 检查我的 VSS 服务在还原时是否正常运行。
- 已检查 Microsoft Shadow Copy 提供程序在还原期间正在运行。
- 检查恢复期间网络服务是否运行良好。
- 在不同的论坛上检查了此错误可能与什么有关,但大多数建议就像尝试重新启动系统一样。
错误出现在以下行之一(间歇性地),有时它在第 1 行,有时在第 2 行或有时在第 3 行中断,我在 PreRestore 事件之前调用的所有这 3 个 api:
CHECK_COM(m_pVssObject->SetAdditionalRestores(myWriterId, VSS_CT_FILEGROUP, logicalPath, compName, true));
CHECK_COM(m_pVssObject->AddNewTarget(myWriterId, VSS_CT_FILEGROUP, logicalPath, compName, wszPath, wszFileNameMdf, false, wszAlternatePath));
CHECK_COM(m_pVssObject->AddNewTarget(myWriterId, VSS_CT_FILEGROUP, logicalPath, compName, wszPath, wszFileNameLdf, false, wszAlternatePath))
这是它返回的响应。
INFO: VSS: ERROR: - Returned HRESULT = 0x80042308
INFO: VSS: ERROR: - Error text: VSS_E_OBJECT_NOT_FOUND
解决方案
错误的一个常见原因VSS_E_OBJECT_NOT_FOUND (Returned HRESULT = 0x80042308)
是 VSS 已在作为备份一部分的一个或多个卷上禁用。
- 单击开始。
- 右键单击我的电脑,然后选择管理。
- 右键单击共享文件夹,选择所有任务。
- 单击管理卷影副本。
- 对于要备份的每个卷,请确保启用了卷影副本。如果某些未启用,则突出显示列表中的卷并单击启用按钮以启用卷影副本。
您还可以测试运行该命令vssadmin list writers
。
推荐阅读
- python - 如何使用 Selenium Python 在 FireFox 中下载 PDF
- rust - 为什么在 trait bound 中引用类型需要生命周期?
- python - 如何判断一个包/模块是否是 Python 标准库的一部分?没有第三方库
- survey - 使用前一年的调查答案在 Surveymonkey 中预先填充调查?
- sql-server - 如何在没有软件的情况下 ping/测试与 SQL Server 的连接(如通过 cmd)?
- php - Laravel 使用 sum 和多连接查询
- python - 从 json 中提取下一个条目的 Python 程序
- android - 将数据从一个 Android 应用程序无线发送到另一部手机
- java - 在实体中覆盖等于导致 LazyInitializationException
- pandas - 如何在不覆盖现有数据框的情况下附加数据框