如果数据库被删除或损坏,您可以通过以下任一方式进行恢复:
- 执行完整恢复操作
- 创建克隆,或将数据库几乎立即作为虚拟应用挂载,然后将其迁移回原始位置或新位置。如需挂载和迁移数据库,请参阅 SQL Server 挂载和迁移。
恢复过程由向导驱动,因您要恢复单个数据库映像(例如 Always On 可用性组 [AG] 的成员)还是 SQL 实例中的多个映像而略有不同。
准备工作
在运行本部分中的步骤之前,请确保:
数据库未处于紧急模式。
等待正在运行的作业完成。
Microsoft SQL Server 数据库恢复概览
“恢复”功能会将原始生产数据库数据替换为所选时间点的映像,或备份保险柜中的映像。此恢复会导致所有当前数据库数据丢失,因为数据库在恢复到创建映像时刻的状态时会被覆盖。此操作无法撤消。
恢复操作通常用于在发生数据损坏事件后将数据库恢复到有效状态。完成恢复操作所需的时间取决于涉及的数据量。
使用 Microsoft SQL Server 完整恢复模型的数据库使用单一政策来捕获数据库及其日志。通过向前滚动日志,可以将此类数据库恢复到任意时间点。如果您通过指定“恢复并恢复”通过管理控制台恢复数据库,则 SQL Server 数据库将在应用日志后恢复并上线。
在恢复 Microsoft SQL Server 数据库和实例时,备份和灾难恢复支持以下常见用例:
执行原位数据库恢复:如果生产数据库或实例已损坏,但仍处于在线状态,请执行恢复操作。
使用虚拟应用(虚拟应用挂载):您可以使用已损坏的 SQL Server 实例或数据库的最后一个已知良好版本的虚拟应用挂载,以便用户和应用能够尽快恢复工作。然后,您可以使用“挂载和迁移”在后台迁移数据库,请参阅 SQL Server 挂载和迁移。
恢复 Microsoft SQL 实例和数据库
这是最简单、最常见的恢复场景。在这种情况下,您需要将所选的 SQL 数据库从之前的映像恢复到原始数据库服务器。进行此类恢复时,数据库必须处于联机状态。如果数据库处于离线状态,恢复操作将在数据库验证期间失败;在这种情况下,请改为克隆数据库。
如需运行此过程,请执行以下操作:
Microsoft SQL Server 数据库必须处于联机状态。如果数据库处于离线状态,恢复操作将在数据库验证期间失败。
等待正在运行的作业完成。
如需恢复 SQL Server 数据库,请执行以下操作:
打开应用管理器,进入应用页面。
右键点击要恢复的 Microsoft SQL Server 数据库,然后从下拉列表中选择访问。系统会打开“访问权限”页面,其中列出了时间轴坡道视图中捕获的图片。支持“恢复”操作的映像类型包括“快照”和“OnVault”,但前提是使用捕获映像时所用的同一设备。
如果需要使用其他设备进行恢复,请改用克隆操作。
背景可区分包含 SQL Server 数据库和事务日志文件的快照映像,还会说明日志的恢复范围时间段
选择相应映像,然后从操作列表中选择恢复。 系统随即会打开“恢复”页面。
为此恢复操作选择传统。
如果所选数据库没有日志,则“恢复”页面不会显示滚动转移选项。如果 SQL Server 数据库是使用日志保护备份模板进行管理的,并且映像中包含日志,您可以执行以下操作:
指定使用用户时间或主机时间进行滚动。您可以根据用户时间或主机时间设置日期和时间。“用户时长”是相对于当前屏幕的观看者而言的。主机时间相对于托管要恢复的数据的系统而言。
使用“日历”工具为滚动操作选择日期。
使用“恢复范围”滑块选择所选日期的具体时间,以恢复数据库。将滑块工具完全滑动到左侧,选择最早的日期,以便仅恢复 SQL Server 数据库,而不滚动任何日志。
如果您想让数据库保持在恢复模式,请取消选中“恢复并执行恢复”复选框。“恢复并启用”会将恢复的数据库上线。上线后,便无法再应用日志。
点击提交。
系统随即会打开一个警告对话框。阅读该消息,然后输入 DATA LOSS 进行确认。 恢复作业将开始。您可以通过在“系统监视器”中查看作业状态,验证恢复操作是否成功。
恢复 SQL 系统数据库
备份和灾难恢复功能可以像 SQL Server 用户数据库一样发现和备份 Microsoft SQL 系统数据库。
如需恢复 SQL 系统数据库,您必须先挂载该数据库的最后一个已知正常版本,然后使用文件复制操作将正常的 SQL Server 系统数据库 .mdf 和 .ldf 文件复制到托管损坏的 SQL 系统数据库的源 SQL Server。
- 前往应用管理器,然后选择应用。
选择并挂载一致性组的最后一个已知良好映像。 请务必取消选择 创建新的虚拟应用。
如果可能,请使用以下示例查询来显示数据库的文件位置:
SELECT name, physical_name AS current_file_location FROM sys.master_files
在 SQL 实例中,使用 SQL Server 配置管理器或“服务”MMC 停止来源 SQL 实例:
使用 Windows 资源管理器或其他方式,前往 SQL 系统数据库的已挂载备份。
复制要恢复的数据库的已装载 .mdf 和 .ldf 文件。
使用 Windows 资源管理器或其他方式,前往源 SQL Server 数据库:
将 .mdf 和 .ldf 文件粘贴到源 SQL Server 数据库中。
在 SQL 实例中,使用 SQL Server 配置管理器或“服务”MMC 重启源 SQL Server 数据库。
恢复到 SQL Server 集群
对于 SQL Server 故障转移实例,数据库始终会恢复到活动节点。对于 SQL Server 可用性组,系统会对所有节点执行恢复。
恢复一致性组中的 SQL Server 数据库
恢复一致性组中的 Microsoft SQL Server 数据库时,请务必谨慎小心(请参阅恢复一致性组)。当您恢复一致性组中的 SQL Server 数据库时,一致性组中的所有数据库都会被覆盖。
Backup and DR SQL Server DBA 指南
本页是一系列页面中的一页,专门介绍如何使用备份和灾难恢复功能保护和恢复 Microsoft SQL Server 数据库。您可以参阅以下资源了解详情:
- SQL Server 数据库的备份和灾难恢复
- 为 Backup and DR Service 准备 SQL Server 数据库
- 添加 SQL Server 数据库主机并发现数据库
- 为 Microsoft SQL Server 实例和数据库配置备份方案
- 挂载 SQL Server 数据库
- 将数据库挂载到 SQL Always On 可用性组
- 迁移 SQL Server 数据库
- 克隆 SQL Server 数据库
- 恢复 SQL Server 备份