备份和还原 SQL Server 数据库

本主题介绍备份 SQL Server 数据库、基本备份和还原术语的好处,并介绍了 SQL Server 的备份和还原策略以及 SQL Server 备份和还原的安全注意事项。

SQL Server 备份和还原组件为保护存储在 SQL Server 数据库中的关键数据提供了基本保障。 若要最大程度地降低灾难性数据丢失的风险,需要备份数据库以定期保留对数据的修改。 计划良好的备份和还原策略有助于保护数据库免受各种故障导致的数据丢失。 通过还原一组备份并恢复数据库来测试策略,以便为应对灾难做好准备。

除了用于存储备份的本地存储外,SQL Server 还支持从 Azure Blob 存储服务备份和还原。 有关详细信息,请参阅 使用 Azure Blob 存储服务的 SQL Server 备份和还原

优点

  • 备份 SQL Server 数据库、在备份上运行测试还原过程,并将备份副本存储在安全的异地位置,从而防止潜在的灾难性数据丢失。

    重要

    这是可靠地保护 SQL Server 数据的唯一方法。

    使用数据库的有效备份,可以从许多故障中恢复数据,例如:

    • 媒体故障。

    • 用户错误,例如,不小心删除了表。

    • 例如,硬件故障(例如损坏的磁盘驱动器或服务器永久丢失)。

    • 自然灾害。 通过使用 SQL Server 备份到 Azure Blob 存储服务,可以在与本地位置不同的区域中创建场外备份,以在影响本地位置的自然灾害时使用。

  • 此外,数据库的备份可用于常规管理目的,例如将数据库从一台服务器复制到另一台服务器、设置 AlwaysOn 可用性组或数据库镜像以及存档。

组件和概念

备份 [谓词]
将数据或日志记录从 SQL Server 数据库或其事务日志复制到备份设备(例如磁盘)以创建数据备份或日志备份。

备份 [名词]
一个数据副本,可用于在发生故障后还原和恢复数据。 还可以使用数据库的备份将数据库复制到新位置。

备份设备
将 SQL Server 备份写入到的磁盘或磁带设备,可以从中还原备份。 SQL Server 备份也可以写入 Azure Blob 存储服务, URL 格式用于指定备份文件的目标和名称。 有关详细信息,请参阅 使用 Azure Blob 存储服务的 SQL Server 备份和还原

备份介质
已写入一个或多个备份的一个或多个磁带或磁盘文件。

数据备份
完整数据库(数据库备份)、部分数据库(部分备份)或一组数据文件或文件组(文件备份)中的数据备份。

数据库备份
数据库的备份。 完整数据库备份表示备份完成后的整个数据库。 差异数据库备份仅包含自最近完整数据库备份以来对数据库的更改。

差异备份
一个数据备份,该备份基于完整或部分数据库或一组数据文件或文件组(差异基)的最新完整备份,并且仅包含自该基数以来已更改的数据。

完整备份
一个数据备份,其中包含特定数据库或文件组或文件集中的所有数据,以及足够的日志,以便恢复这些数据。

日志备份
事务日志的备份,其中包括以前日志备份中未备份的所有日志记录。 (完整恢复模式)

恢复
将数据库返回到稳定且一致的状态。

恢复
数据库启动阶段或具有恢复的还原阶段,使数据库处于事务一致性状态。

恢复模式
用于控制数据库事务日志维护的数据库属性。 存在三种恢复模式:简单、完整和大容量日志恢复。 数据库的恢复模式确定其备份和还原要求。

还原
一个多阶段的过程,将所有数据和日志页从指定的 SQL Server 备份复制到指定的数据库,然后通过应用日志中的记录更改来前滚所有事务,从而使数据更新至当前时间。

备份和还原策略简介

备份和还原数据必须自定义为特定环境,并且必须使用可用资源。 为了可靠地使用备份和还原执行恢复,需制定备份和还原策略。 设计良好的备份和还原策略可最大程度地提高数据可用性并最大程度地减少数据丢失,同时考虑特定的业务需求。

重要

将数据库和备份放在单独的设备上。 否则,如果包含数据库的设备失败,则备份将不可用。 将数据和备份放置在单独的设备上也增强了写入备份和数据库生产使用的 I/O 性能。

备份和还原策略包含备份部分和还原部分。 策略的备份部分定义了备份的类型和频率、备份所需的硬件的性质和速度、备份测试方式以及备份介质的存储位置以及存储方式(包括安全注意事项)。 策略的还原部分定义谁负责执行还原以及如何执行还原,以满足数据库可用性的目标,并最大程度地减少数据丢失。 建议记录备份和还原过程,并在 Run book 中保留文档的副本。

设计有效的备份和还原策略需要仔细规划、实施和测试。 需要测试。 只有在成功还原所有备份,并且这些备份符合您的还原策略中的多种组合后,您才能真正拥有一个有效的备份策略。 必须考虑各种因素。 其中包括:

  • 组织针对数据库的生产目标,尤其是对数据丢失的可用性和保护的要求。

  • 每个数据库的性质:其大小、其使用模式、内容的性质、数据的要求等。

  • 对资源的约束,例如:硬件、人员、用于存储备份介质的空间、存储介质的物理安全性等。

    注释

    磁盘上的 SQL Server 存储格式在 64 位和 32 位环境中是相同的。 因此,备份和还原可在 32 位和 64 位环境中工作。 可以在在其他环境中运行的服务器实例上还原在一个环境中运行的服务器实例上创建的备份。

恢复模式对备份和还原的影响

备份和还原操作发生在恢复模型的上下文中。 恢复模式是一个数据库属性,用于控制事务日志的托管方式。 此外,数据库的恢复模式确定数据库的备份类型以及支持哪些还原方案。 通常,数据库使用简单的恢复模式或完整恢复模式。 可以通过在进行批量操作之前切换到大容量-日志恢复模型来补充完整恢复模式。 有关这些恢复模式及其影响事务日志管理的简介,请参阅事务日志(SQL Server)。

数据库的最佳恢复模式取决于业务需求。 若要避免事务日志管理和简化备份和还原,请使用简单的恢复模式。 若要最大程度地减少工作损失风险,请以管理开销为代价使用完整恢复模式。 有关恢复模式对备份和还原的影响的信息,请参阅备份概述(SQL Server)。

设计备份策略

选择满足特定数据库的业务需求的恢复模式后,必须规划和实施相应的备份策略。 最佳备份策略取决于各种因素,其中以下因素特别重要:

  • 应用程序每天必须访问数据库多少小时?

    如果有可预测的非高峰期,建议在该时间段内计划完整数据库备份。

  • 更改和更新的发生频率如何?

    如果更改频繁,请考虑以下事项:

    • 在简单的恢复模式下,请考虑在完整数据库备份之间计划差异备份。 差异备份仅捕获自上次完整数据库备份以来的更改。

    • 在完整恢复模式下,应计划频繁的日志备份。 在完整备份之间安排差异备份可减少数据还原后需要还原的日志备份数,从而缩短还原时间。

  • 更改可能只发生在数据库的一小部分或大部分数据库中?

    对于大型数据库,更改集中在文件或文件组的一部分,部分备份和文件备份可能很有用。 有关详细信息,请参阅部分备份(SQL Server)完整文件备份(SQL Server)。

  • 完整数据库备份需要多少磁盘空间?

    有关详细信息,请参阅本节后面的 “估计完整数据库备份的大小”。

估计完整数据库备份的大小

在实施备份和还原策略之前,应估计完整数据库备份将使用多少磁盘空间。 备份作会将数据库中的数据复制到备份文件。 备份仅包含数据库中的实际数据,而不包含任何未使用的空间。 因此,备份通常小于数据库本身。 可以使用 sp_spaceused 系统存储过程来估计完整数据库备份的大小。 有关详细信息,请参阅sp_spaceused(Transact-SQL)。

计划备份

执行备份操作对正在运行的事务影响最小,因此备份操作可以在常规操作期间进行。 可以执行 SQL Server 备份,对生产工作负荷的影响最小。

注释

有关备份期间并发限制的信息,请参阅备份概述(SQL Server)。

确定所需的备份类型以及执行每种类型的备份的频率后,建议将定期备份作为数据库的数据库维护计划的一部分。 有关维护计划以及如何为数据库备份和日志备份创建计划的信息,请参阅 “使用维护计划向导”。

测试备份

在测试备份之前,你没有还原策略。 通过将数据库的副本还原到测试系统,彻底测试每个数据库的备份策略非常重要。 必须测试还原要使用的每种类型的备份。

我们建议您为每个数据库维护操作手册。 此作手册应记录备份的位置、备份设备名称(如果有)以及还原测试备份所需的时间。

相关任务

计划备份作业

使用备份设备和备份介质

创建备份

注释

对于部分备份或仅复制备份,必须分别将 Transact-SQLBACKUP 语句与 PARTIAL 或 COPY_ONLY 选项一起使用。

使用 SQL Server Management Studio

使用 Transact-SQL

还原数据备份

使用 SQL Server Management Studio

使用 Transact-SQL

还原事务日志(完整恢复模式)

使用 SQL Server Management Studio

使用 Transact-SQL

其他还原任务

使用 Transact-SQL

另请参阅

备份概述 (SQL Server)
还原和恢复概述 (SQL Server)
BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
Analysis Services 数据库的备份和还原
备份和还原 Full-Text 目录和索引
备份和还原复制的数据库
事务日志 (SQL Server)
恢复模式 (SQL Server)
媒体集、媒体系列和备份集 (SQL Server)