还原 Azure VM 上的 SQL Server 数据库

本文介绍如何还原 Azure 虚拟机 (VM) 上运行的、已由 Azure 备份服务备份到 Azure 备份恢复服务保管库的 SQL Server 数据库。

本文介绍如何还原 SQL Server 数据库。 有关详细信息,请参阅备份 Azure VM 上的 SQL Server 数据库

还原到某个时间点或恢复点

Azure 备份可以还原 Azure VM 上运行的 SQL Server 数据库,如下所述:

  • 使用事务日志备份还原到特定的日期或时间(精确到秒)。 Azure 备份可自动确定相应的完整备份、差异备份和日志链备份,这些是根据所选时间进行还原所必需的。
  • 还原特定的完整备份或差异备份,这样就可以还原到特定的恢复点。

还原先决条件

在还原数据库之前,请注意以下事项:

  • 可将数据库还原到同一 Azure 区域中的 SQL Server 实例。
  • 目标服务器必须注册到与源服务器相同的保管库。
  • 如果在服务器上运行多个实例,则所有实例都应启动并运行。 否则,服务器将不会出现在目标服务器列表中,从而无法将数据库还原到该服务器。 有关详细信息,请参阅故障排除步骤
  • 若要将 TDE 加密的数据库还原到另一个 SQL Server,需先将证书还原到目标服务器
  • 应使用还原为文件选项还原启用了 CDC 的数据库。
  • 在还原“master”数据库之前,请使用启动选项 -m AzureWorkloadBackup 在单用户模式下启动 SQL Server 实例。
    • -m 的值是客户端的名称。
    • 只能使用指定的客户端名称打开连接。
  • 对于所有系统数据库(模型数据库、master 数据库、msdb 数据库),请在触发还原操作之前停止 SQL Server 代理服务。
  • 关闭任何可能尝试与其中任何数据库建立连接的应用程序。

还原数据库

若要进行还原,需要以下权限:

  • 在其中执行还原的保管库中的“备份操作员”权限。
  • 对已备份的源 VM 的 参与者(写入) 访问权限。
  • 对目标 VM 的 参与者(写入) 访问权限:
    • 若要还原到同一 VM,则此项将是源 VM。
    • 若要还原到备用位置,则此项将是新的目标 VM。

按如下所述进行还原:

  1. 打开在其中注册 SQL Server VM 的保管库。

  2. 在保管库仪表板的“使用情况”下,选择“备份项”。

  3. 在“备份项”中的“备份管理类型”下,选择“Azure VM 中的 SQL”。

    选择“Azure VM 中 SQL”

  4. 选择要还原的数据库。

    选择要还原的数据库

  5. 查看数据库菜单。 它提供有关数据库备份的信息,其中包括:

    • 最旧和最新的还原点。
    • 处于完整和批量日志记录恢复模式的、且已配置事务日志备份的数据库在过去 24 小时的日志备份状态。
  6. 选择“还原”。

    选择“还原”

  7. 在“还原配置”中,指定要将数据还原到何处(或如何还原):

    • 备用位置:将数据库还原到备用位置,同时保留原始源数据库。

    • 覆盖数据库:将数据还原到原始源所在的同一 SQL Server 实例。 此选项会覆盖原始数据库。

      重要

      如果选定的数据库属于 Always On 可用性组,则 SQL Server 不允许覆盖数据库。 仅“备用位置”可用。

    • 作为文件还原:不是作为数据库还原,而是以后使用 SQL Server Management Studio 在包含备份文件的计算机上,还原可作为数据库恢复的备份文件。 “还原配置”菜单

还原到备用位置

  1. 在“还原配置”菜单中的“还原位置”下,选择“备用位置”。

  2. 选择要将数据库还原到其中的 SQL Server 名称和实例。

  3. 在“还原数据库名称”框中,输入目标数据库的名称。

  4. 如果适用,请选择“当选定的 SQL 实例上已存在同名的 DB 时覆盖”。

  5. 选择“还原点”,并选择是还原到特定时间点,还是还原到特定恢复点

    选择还原点

    还原到时间点

  6. 在“高级配置”菜单中:

    • 若要使数据库在还原后保持不可运行状态,请启用“使用 NORECOVERY 还原”。

    • 若要更改目标服务器上的还原位置,请输入新的目标路径。

      输入目标路径

  7. 选择“确定”以触发还原。 在“通知”区域中或在保管库的“备份作业”视图下跟踪还原进度。

    备注

    时间点还原仅适用于采用完整和批量日志记录恢复模式的数据库日志备份。

还原并覆盖

  1. 在“还原配置”菜单中的“还原位置”下,选择“覆盖数据库” > “确定”。

    选择“覆盖数据库”

  2. 在“选择还原点”中选择“日志(时间点)”,以还原到特定的时间点。 或者选择“完整和差异”以还原到特定的恢复点

    备注

    时间点还原仅适用于采用完整和批量日志记录恢复模式的数据库日志备份。

还原为文件

若要将备份数据作为 .bak 文件而不是数据库还原,请选择“作为文件还原”。 将文件转储到指定的路径后,可将这些文件放在要将其作为数据库还原到的任何计算机上。 由于可将这些文件移到任何计算机上,因此现在可以跨订阅和区域进行数据还原。

  1. 在“还原位置及还原方式”下,选择“作为文件还原” 。

  2. 选择要将备份还原到的 SQL Server 名称。

  3. 在“服务器上的目标路径”中,输入在步骤 2 中选择的服务器上的文件夹路径。 此位置是服务要将全部所需备份文件转储到的位置。 通常,如果将网络共享路径或已装载的 Azure 文件共享的路径指定为目标路径,会使同一网络中的其他计算机或其上装载的同一 Azure 文件共享更加轻松地访问这些文件。

    若要在目标注册 VM 装载的 Azure 文件共享上还原数据库备份文件,请确保 NT AUTHORITY\SYSTEM 有权访问该文件共享。 你可以执行以下步骤,以授予对 VM 上装载的 AFS 的读/写权限:

    • 运行 PsExec -s cmd 进入 NT AUTHORITY\SYSTEM shell
      • 执行 cmdkey /add:<storageacct>.file.core.chinacloudapi.cn /user:AZURE\<storageacct> /pass:<storagekey>
      • 使用 dir \\<storageacct>.file.core.chinacloudapi.cn\<filesharename> 验证访问权限
    • 从备份保管库启动“作为文件还原”操作,以还原到 \\<storageacct>.file.core.chinacloudapi.cn\<filesharename>(路径)
      可以从 Sysinternals 页下载 PsExec。
  4. 选择“确定” 。

    选择“作为文件还原”

  5. 选择“还原点”,并选择是还原到特定时间点,还是还原到特定恢复点

  6. 与所选恢复点关联的所有备份文件将转储到目标路径中。 可以使用 SQL Server Management Studio 在包含这些文件的任何计算机上将其作为数据库还原。

    已在目标路径中还原备份文件

还原到特定时间点

如果已选择“日志(时间点)”作为还原类型,请执行以下操作:

  1. 在“还原日期/时间”下,打开日历。 在“日历”中,包含恢复点的日期以粗体显示,当前日期已突出显示。

  2. 选择包含恢复点的日期。 不能选择没有恢复点的日期。

    打开日历

  3. 选择日期后,时间线图会显示连续范围内的可用恢复点。

  4. 在时间线图表中指定恢复时间,或选择一个时间。 然后选择“确定”。

还原到特定还原点

如果已选择“完整和差异”作为还原类型,请执行以下操作:

  1. 在列表中选择一个恢复点,然后选择“确定”完成还原点过程。

    选择完整恢复点

    备注

    默认情况下,将显示过去 30 天的恢复点。 通过选择“筛选器”并选择自定义范围,可以显示 30 天之前的恢复点。

还原包含大量文件的数据库

如果数据库中文件的总字符串大小超过特定的限制,Azure 备份会将数据库文件列表存储在不同的 PIT 组件中,因此在执行还原操作期间无法设置目标还原路径。 文件将还原到 SQL 默认路径。

还原包含大文件的数据库

后续步骤

管理和监视 Azure 备份服务备份的 SQL Server 数据库。