你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

排查 Microsoft Azure 恢复服务 (MARS) 代理问题

本文介绍如何解决在配置、注册、备份和还原期间可能会出现的错误。

准备工作

我们建议在开始排查 Microsoft Azure 恢复服务 (MARS) 代理问题之前检查以下各项:

排查错误

本部分介绍排查可能遇到的错误的过程。

提供的保管库凭据无效

错误消息:提供的保管库凭据无效。 该文件已损坏,或者没有与恢复服务关联的最新凭据。 (ID:34513)

注意

确保更新 MARS 代理,使保管库凭据能够正常工作。 旧版本可能会导致验证错误。

原因 建议的操作
保管库凭据无效

保管库凭据文件可能已损坏、可能已过期,或者其文件扩展名可能不是“.vaultCredentials”。 (例如它们可能在注册前 10 多天就下载了。)
请从 Azure 门户上的恢复服务保管库下载新凭据。 然后相应地执行以下步骤:

- 如果已经安装和注册了 MARS,请打开 Microsoft Azure 备份代理 MMC 控制台。 然后,在“操作”窗格中选择“注册服务器”,以使用新凭据完成注册 。
- 如果新的安装失败,请尝试使用新凭据重新安装。

注意:如果已下载多个保管库凭据文件,在接下来的 10 天内,只有最新文件才有效。 我们建议下载新的保管库凭据文件。

- 若要防止在保管库注册过程中出现错误,请确保已安装 MARS 代理版本 2.0.9249.0 或更高版本。 如果没有,我们建议你从此处安装它。
代理服务器/防火墙正在阻止注册

未建立 Internet 连接

如果你的计算机具有有限的 Internet 访问权限,并且你不确保防火墙、代理和网络设置是否允许访问 FQDN 和公共 IP 地址,则注册将失败。
执行以下步骤:


- 与 IT 团队协作,确保系统已建立 Internet 连接。
- 如果没有代理服务器,请确保在注册代理时不要选择代理选项。 检查代理设置
- 如果你有防火墙/代理服务器,请与你的网络团队合作,以允许访问以下 FQDN 和公共 IP 地址。 对以下列出的所有 URL 和 IP 地址的访问都使用端口 443 上的 HTTPS 协议。

URLs
*.microsoft.com
*.windowsazure.com
*.microsoftonline.com
*.windows.net
*blob.core.windows.net
*queue.core.windows.net
*blob.storage.azure.net


- 如果你是美国政府客户,请确保你有权访问以下 URL:

www.msftncsi.com
*.microsoft.com
*.windowsazure.us
*.microsoftonline.us
*.windows.net
*.usgovcloudapi.net
*blob.core.windows.net
*queue.core.windows.net
*blob.storage.azure.net

完成上述故障排除步骤后,再次尝试注册。

如果通过 Azure ExpressRoute 进行连接,请确保按照 Azure ExpressRoute 支持中所述的内容配置设置。

如果要将 Entra 租户限制功能用于代理,请确保将用于注册 MARS 代理的恢复服务保管库的租户 ID 添加到 Restrict-Access-To-Tenants 标头中允许的租户列表中。 此租户 ID 对于每个 Azure 区域是唯一的。 可以通过打开保管库凭据文件并查找 <AadTenantId> 元素来查找租户 ID。
防病毒软件正在阻止注册 如果你在服务器上安装了防病毒软件,请针对以下项将排除规则添加到防病毒扫描中:

- scratch 和 bin 文件夹位置(<InstallPath>\Scratch\*<InstallPath>\Bin\*)下的每个文件和文件夹。
- cbengine.exe

其他建议

  • 转到 C:/Windows/Temp,检查是否存在超过 60,000 或 65,000 个扩展名为 .tmp 的文件。 如果存在,请删除这些文件。
  • 确保计算机的日期和时间与本地时区相匹配。
  • 确保已将这些站点添加到 Internet Explorer 中的受信任站点。

验证 Windows 的代理设置

  1. Sysinternals 页下载 PsExec。

  2. 在权限提升的命令提示符下运行 psexec -i -s "c:\Program Files\Internet Explorer\iexplore.exe"

    此命令将打开 Internet Explorer。

  3. 转到“工具”>“Internet 选项”>“连接”>“局域网设置”。

  4. 检查系统帐户的代理设置。

  5. 如果未配置代理但提供了代理详细信息,请删除这些详细信息。

  6. 如果已配置代理但代理详细信息不正确,请确保“代理 IP”和“端口”详细信息正确。

  7. 关闭 Internet Explorer。

无法下载保管库凭据文件

错误 建议的操作
未能下载保管库凭据文件。 (ID:403) - 使用其他浏览器尝试下载保管库凭据,或执行以下步骤:

a. 启动 Internet Explorer。 按 F12。
b. 转到“网络”选项卡,并清除缓存和 Cookie。
c. 刷新页面。

- 检查订阅是否被禁用/已过期。

- 检查是否有任何防火墙规则在阻止下载。

- 确保未用完保管库的限额(每个保管库 50 台计算机)。

- 确保用户拥有所需的 Azure 备份权限,可以下载保管库凭据并将服务器注册到保管库。 请参阅使用 Azure 基于角色的访问控制来管理 Azure 备份恢复点

Microsoft Azure 恢复服务代理无法连接到 Microsoft Azure 备份

错误 可能的原因 建议的操作
- Microsoft Azure 恢复服务代理无法连接到 Microsoft Azure 备份。 (ID: 100050) 请检查网络设置,并确保能够连接到 Internet。

- (407) 需要代理身份验证。
代理正在阻止连接。 - 在 Internet Explorer 中,转到“工具”>“Internet 选项”>“安全性”>“Internet”。 选择“自定义级别”,向下滚动到“文件下载”部分。 选择“启用”。
可能还需要将这些 URL 和 IP 地址添加到 Internet Explorer 中的受信任站点。

- 更改设置以使用代理服务器。 然后提供代理服务器详细信息。


- 如果计算机的 Internet 访问状态受限,请确保计算机或代理上的防火墙设置允许以下 URL 和 IP 地址

- 如果服务器中安装了防病毒软件,请从防病毒软件扫描中排除这些文件:
- CBEngine.exe(而非 dpmra.exe)。
- CSC.exe(与 .NET Framework 相关)。 服务器上安装的每个 .NET Framework 版本都有一个 CSC.exe。 排除受影响服务器上的所有 .NET Framework 版本的 CSC.exe 文件。

- scratch 文件夹或缓存位置。
scratch 文件夹的默认位置或缓存路径为 C:\Program Files\Microsoft Azure Recovery Services Agent\Scratch。

- bin 文件夹 C:\Program Files\Microsoft Azure Recovery Services Agent\Bin。
无法通过 Microsoft Azure 备份验证服务器注册状态。 验证是否已连接到 Internet 并正确配置代理设置。 MARS 代理无法联系 Azure 服务。 - 确保网络连接和代理设置。

- 确保正在运行最新的 MARS 代理。

- 确保服务器在 TLS 1.2 上运行

无法使用指定的保管库凭据文件,因为它不是从与此服务器关联的保管库中下载的

错误 可能的原因 建议的操作
无法使用指定的保管库凭据文件,因为它不是从与此服务器关联的保管库中下载的。 (ID:100110) 请提供相应的保管库凭据。 保管库凭据文件来自与此服务器已注册到的保管库不同的保管库。 确保目标计算机和源计算机已还原到同一个恢复服务保管库。 如果目标服务器已注册到其他保管库,请使用“注册服务器”选项注册到正确的保管库。

备份作业已完成,但出现警告

  • 当 MARS 代理在备份过程中循环访问文件和文件夹时,可能会遇到各种情况,这些情况可能会导致备份标记为已完成,但出现警告。 在这些情况下,作业显示为已完成,但出现警告。 这样是可以的,但这意味着至少有一个文件未能备份成功。 即作业跳过了该文件,但备份了数据源中的所有其他相关文件。

    备份作业已完成,但出现警告

  • 可能导致备份跳过文件的情况包括:

    • 不受支持的文件属性(例如,OneDrive 文件夹中不支持压缩流和重新分析点)。 有关完整列表,请参阅支持矩阵
    • 文件系统问题
    • 其他进程干扰(例如,包含文件句柄的防病毒软件可能会阻止 MARS 代理访问文件)
    • 应用程序锁定的文件
  • 备份服务会将日志文件中的这些文件标记为失败,采用以下命名约定:C:\Program Files\Microsoft Azure Recovery Service Agent\temp 文件夹下的 LastBackupFailedFilesxxxx.txt 。

  • 若要解决此问题,请查看日志文件以了解问题的性质:

    错误代码 原因 建议
    0x80070570 该文件或目录已损坏且无法读取。 在源卷上运行 chkdsk。
    0x80070002、0x80070003 系统找不到指定的文件。 确保暂存文件夹未满

    检查在其中配置暂存空间的卷是否存在(未删除)

    确保从计算机上安装的防病毒软件中排除 MARS 代理
    0x80070005 访问被拒绝 检查是否有防病毒软件或其他第三方软件在阻止访问
    0x8007018b 拒绝访问云文件。 OneDrive 文件、Git 文件或计算机上可处于脱机状态的任何其他文件
  • 可使用将排除规则添加到现有策略,从备份策略中排除不受支持的、缺少的或已删除的文件,以确保备份成功。

  • 避免在顶级文件夹中删除并重新创建具有相同名称的受保护文件夹。 这样做可能会导致在出现警告的情况下完成备份,并显示错误:检测到严重的不一致,因此无法复制更改。如果需要删除和重新创建文件夹,请考虑在受保护的顶级文件夹下的子文件夹中执行此操作。

未能设置安全备份的加密密钥

错误 可能的原因 建议的操作
无法设置安全备份的加密密钥。 激活未完全成功,但是加密通行短语已保存到以下文件中。 - 服务器已注册到另一个保管库。

- 在配置期间,通行短语已损坏。
从该保管库中取消注册服务器,然后使用新通行短语重新注册。

激活未成功完成

错误 可能的原因 建议的操作
激活未成功完成。 由于内部服务错误 [0x1FC07],当前操作失败。 稍后重试操作。 如果该问题仍然存在,请联系 Microsoft 支持部门。 - scratch 文件夹位于空间不足的卷上。

- 错误地移动了 scratch 文件夹。

- 缺少 OnlineBackup.KEK 文件。
- 升级到最新版本的 MARS 代理。

- 将 scratch 文件夹或缓存位置移到可用空间相当于备份数据总大小 5% 到 10% 的卷。 若要正确移动缓存位置,请参阅有关备份文件和文件夹的常见问题中的步骤。

- 确保 OnlineBackup.KEK 文件存在。
scratch 文件夹的默认位置或缓存路径为 C:\Program Files\Microsoft Azure Recovery Services Agent\Scratch。

未正确配置加密通行短语

错误 可能的原因 建议的操作
错误 34506。 未在此计算机上正确配置存储的加密通行短语。 - scratch 文件夹位于空间不足的卷上。

- 错误地移动了 scratch 文件夹。

- 缺少 OnlineBackup.KEK 文件。
- 升级到最新版本的 MARS 代理。

- 将 scratch 文件夹或缓存位置移到可用空间相当于备份数据总大小 5% 到 10% 的卷。 若要正确移动缓存位置,请参阅有关备份文件和文件夹的常见问题中的步骤。

- 确保 OnlineBackup.KEK 文件存在。
scratch 文件夹的默认位置或缓存路径为 C:\Program Files\Microsoft Azure Recovery Services Agent\Scratch。

- 如果最近移动了暂存文件夹,请确保暂存文件夹位置的路径与如下所示的注册表项项的值匹配:

注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Azure Backup\Config
注册表项:ScratchLocation
:新缓存文件夹位置

注册表路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Azure Backup\Config\CloudBackupProvider
注册表项:ScratchLocation
:新缓存文件夹位置

备份不按计划运行

如果计划的备份未自动触发,而手动备份却能正常进行,请尝试以下操作:

  • 确保 Windows Server 备份计划与 Azure 文件和文件夹备份计划不冲突。

  • 确保联机备份状态设置为“启用”。 若要验证状态,请执行以下步骤:

    1. 在任务计划程序中,展开“Microsoft”并选择“联机备份”。
    2. 双击“Microsoft-OnlineBackup”,然后转到“触发器”选项卡。
    3. 检查状态是否设置为“已启用”。 如果不是,请依次选择“编辑”、“已启用”、“确定”。
  • 确保为运行任务而选择的用户帐户是服务器上的 SYSTEM本地管理员组。 若要验证用户帐户,请转到“常规”选项卡并检查“安全性”选项。

  • 确保服务器上已安装 PowerShell 3.0 或更高版本。 若要检查 PowerShell 版本,请运行以下命令,并确认 Major 版本号是否为 3 或更高:

    $PSVersionTable.PSVersion

  • 确保此路径包含在 PSMODULEPATH 环境变量中:

    <MARS agent installation path>\Microsoft Azure Recovery Services Agent\bin\Modules\MSOnlineBackup

  • 如果 LocalMachine 的 PowerShell 执行策略设置为 restricted,则触发备份任务的 PowerShell cmdlet 可能会失败。 以权限提升的模式运行以下命令,将执行策略设置为 UnrestrictedRemoteSigned

Get-ExecutionPolicy -List

Set-ExecutionPolicy Unrestricted
  • 确保 PowerShell 模块的 MSOnlineBackup 文件无缺失或损坏。 如果有任何文件缺失或损坏,请执行以下步骤:

    1. 在可正常运行 MARS 代理的任何计算机上,从 C:\Program Files\Microsoft Azure Recovery Services Agent\bin\Modules 复制“MSOnlineBackup”文件夹。
    2. 在有问题的计算机上,将复制的文件粘贴到相同的文件夹位置 (C:\Program Files\Microsoft Azure Recovery Services Agent\bin\Modules)。

    如果该计算机上已有一个 MSOnlineBackup 文件夹,请将文件粘贴到其中,或替换所有现有文件。

提示

为确保一致地应用所做的更改,请在执行上述步骤后重启服务器。

服务戳中未预配资源

错误 可能的原因 建议的操作
由于出现“服务戳中未预配资源”的内部服务错误,当前操作失败。 请稍后重试操作。 (ID:230006) 受保护的服务器已重命名。 - 将服务器重命名回在保管库中注册的原始名称。

- 用新名称向保管库重新注册服务器。

作业无法启动,因为正在进行另一个作业

如果“MARS 控制台”>“作业历史记录”中出现警告消息“作业无法启动,因为正在进行另一个作业”,那么这可能是由于任务计划程序触发的作业的重复实例。

作业无法启动,因为正在进行另一个作业

若要解决此问题,请执行下列操作:

  1. 在“运行”窗口中键入“taskschd.msc”,以启动任务计划程序管理单元
  2. 在左窗格中,导航到“任务计划程序库”->“Microsoft”->“OnlineBackup”。
  3. 对于此库中的每个任务,双击该任务以打开属性,然后执行以下步骤:
    1. 切换到“设置”选项卡。

      “设置”选项卡

    2. 更改“如果任务已在运行,则应用以下规则”选项。 选择“不启动新实例”。

      更改规则,以不启动新实例

排查还原问题

即使等待几分钟,Azure 备份也可能不会成功装载恢复卷。 在此过程中,可能会出现错误消息。 若要开始正常恢复,请执行以下步骤:

  1. 如果装载过程已运行了几分钟,请取消此过程。

  2. 检查是否使用了最新版本的备份代理。 若要检查版本,请在 MARS 控制台的“操作”窗格中,选择“关于 Microsoft Azure 恢复服务代理”。 确认“版本号”等于或高于此文中所述的版本。 选择下载最新版本的链接。

  3. 转到“设备管理器”>“存储控制器”,并找到“Microsoft iSCSI 发起程序”。 如果找到,请直接转到步骤 7。

  4. 如果找不到 Microsoft iSCSI 发起程序服务,请尝试在“设备管理器”>“存储控制器”下找到硬件 ID 为“ROOT\ISCSIPRT”的“未知设备”条目

  5. 右键单击“未知设备”并选择“更新驱动程序软件”

  6. 选择“自动搜索更新的驱动程序软件”选项,更新驱动程序。 此项更新应会将“未知设备”更改为“Microsoft iSCSI 发起程序”

    Azure 备份设备管理器的屏幕截图,其中突出显示了“存储控制器”

  7. 转到“任务管理器”>“服务(本地)”>“Microsoft iSCSI 发起程序服务”

    Azure 备份任务管理器的屏幕截图,其中突出显示了“服务(本地)”

  8. 重启 Microsoft iSCSI 发起程序服务。 为此,请右键单击该服务,并选择“停止”。 然后再次右键单击它并选择“启动”

  9. 使用 即时还原 重试恢复。

如果恢复仍然失败,请重启服务器或客户端。 如果不想要重启,或者即使重启服务器,恢复也仍然失败,请尝试从另一台计算机恢复

排查缓存问题

如果缓存文件夹(也称为 scratch 文件夹)配置不正确、缺少必备项或具有受限访问权限,则备份操作可能会失败。

先决条件

要使 MARS 代理操作成功,缓存文件夹需要符合以下要求:

增加影子副本存储

如果用于保护数据源的影子副本存储空间不足,则备份操作可能会失败。 若要解决此问题,请使用 vssadmin 增加受保护卷上的影子副本存储空间,如下所示:

  • 在提升的命令提示符下检查当前的影子存储空间:
    vssadmin List ShadowStorage /For=[Volume letter]:
  • 使用以下命令增加影子存储空间:
    vssadmin Resize ShadowStorage /On=[Volume letter]: /For=[Volume letter]: /Maxsize=[size]

阻止访问缓存文件夹的其他进程或防病毒软件

如果你在服务器上安装了防病毒软件,请针对以下项将排除规则添加到防病毒扫描中:

  • scratch 和 bin 文件夹位置(<InstallPath>\Scratch\*<InstallPath>\Bin\*)下的每个文件和文件夹。
  • cbengine.exe

备份或还原作业在 Azure 中显示为正在进行很多天,但在控制台中不可见

如果 MARS 代理备份或还原作业在执行期间故障,则会在 MARS 控制台中将其标记为失败,但状态可能不会传播到 Azure。 因此,即使作业未运行,它也可能在 Azure 门户中显示为“正在进行”。 此过时的作业条目将在 30 天后自动从 Azure 门户中删除。

常见问题

本部分介绍在使用 MARS 代理时会遇到的常见错误。

SalChecksumStoreInitializationFailed

错误消息 建议的操作
Microsoft Azure 恢复服务代理无法访问存储在暂存位置的备份校验和 若要解决此问题,请执行以下步骤,然后重启服务器
- 检查是否存在防病毒或其他进程锁定暂存位置文件
- 检查暂存位置是否有效,是否可由 MARS 代理访问。

SalVhdInitializationError

错误消息 建议的操作
Microsoft Azure 恢复服务代理无法访问暂存位置,因此无法初始化 VHD 若要解决此问题,请执行以下步骤,然后重启服务器
- 检查防病毒或其他进程是否在锁定暂存位置文件
- 检查暂存位置是否有效,是否可由 MARS 代理访问。

SalLowDiskSpace

错误消息 建议的操作
由于暂存文件夹所在的卷中存储空间不足,备份失败 若要解决此问题,请验证以下步骤,然后重试操作:
- 确保 MARS 代理是最新的
- 验证并解决影响备份暂存空间的存储问题

SalBitmapError

错误消息 建议的操作
找不到文件中的更改。 这可能是由于各种原因。 请重试该操作 若要解决此问题,请验证以下步骤,然后重试操作:
- 确保 MARS 代理是最新的
- 验证并解决影响备份暂存空间的存储问题

无法使用客户拥有的磁盘(导入/导出)进行 MARS 脱机种子设定

Azure 导入/导出现在使用 Azure Data Box API 对客户拥有的磁盘进行脱机种子设定。 Azure 门户还会将使用新 API 创建的导入导出作业列在 Azue Data Box 作业下,其“模型”列显示为“导入/导出”。

低于 2.0.9250.0 的 MARS 代理版本使用旧版 Azure 导入/导出 API(将在 2023 年 2 月 28 日之后停用),且旧版 MARS 代理(低于 2.0.9250.0 的版本)无法使用你自己的磁盘执行脱机种子设定。 因此,建议使用 MARS 代理 2.0.9250 或更高版本,其使用较新的 Azure Data Box API 对你自己的磁盘进行脱机种子设定。

如果继续从旧版 MARS 代理创建导入/导出作业,仍可在Azure 门户的“导入/导出作业”下监视这些作业。

后续步骤