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 存储服务,可以在本地位置之外的其他区域创建一个站外备份,这样在发生影响本地位置的自然灾难时仍可以使用数据库。
此外,数据库的备份可用于日常管理目的,例如将数据库从一台服务器复制到另一台服务器、设置Always On可用性组或数据库镜像以及存档。
组件和概念
备份 [动词] (back up)
从 SQL Server 数据库或其事务日志中将数据或日志记录复制到备份设备(如磁盘),以创建数据备份或日志备份。
备份 [名词] (backup)
可用于在出现故障后还原或恢复数据的数据副本。 数据库备份还可用于将数据库副本还原到新位置。
备份设备 (backup device)
要将 SQL Server 备份写入其中以及可从其中还原的磁盘或磁带设备。 SQL Server 备份也可以写入 Azure Blob 存储服务,并且使用 URL 格式来指定备份文件的目标和名称。 有关详细信息,请参阅使用 Azure Blob 存储服务执行 SQL Server 备份和还原。
备份介质
已写入一个或多个备份的一个或多个磁带或磁盘文件。
数据备份 (data backup)
完整数据库的数据备份(数据库备份)、部分数据库的数据备份(部分备份)或一组数据文件或文件组(文件备份)。
数据库备份 (database backup)
数据库的备份。 完整数据库备份表示备份完成时的整个数据库。 差异数据库备份只包含自最近完整备份以来对数据库所做的更改。
差异备份 (differential backup)
一种数据备份,基于完整数据库或部分数据库或一组数据文件或文件组(差异基准)的最新完整备份,并且仅包含自确定差异基准以来发生更改的数据。
完整备份 (full backup)
一种数据备份,包含特定数据库或者一组特定的文件组或文件中的所有数据,以及可以恢复这些数据的足够的日志。
日志备份 (log backup)
包括以前日志备份中未备份的所有日志记录的事务日志备份。 (完整恢复模式)
recover
将数据库恢复到稳定且一致的状态。
recovery
将数据库恢复到事务一致状态的数据库启动阶段或 Restore With Recovery 阶段。
恢复模式
用于控制数据库上的事务日志维护的数据库属性。 有三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式。 数据库的恢复模式确定其备份和还原要求。
还原
一种包括多个阶段的过程,用于将指定 SQL Server 备份中的所有数据和日志页复制到指定数据库,然后通过应用记录的更改使该数据在时间上向前移动,以前滚备份中记录的所有事务。
备份和还原策略简介
备份和还原数据必须根据特定环境进行自定义,并且必须使用可用资源。 因此,可靠使用备份和还原以实现恢复需要有一个备份和还原策略。 设计良好的备份和还原策略在考虑到特定业务要求的同时,可以尽量提高数据的可用性并尽量减少数据的丢失。
重要
请将数据库和备份放置在不同的设备上。 否则,如果包含数据库的设备失败,备份也将不可用。 此外,将数据和备份放置在不同的设备上还可以提高写入备份和使用数据库时的 I/O 性能。
备份和还原策略包含备份部分和还原部分。 策略的备份部分定义备份的类型和频率、备份所需硬件的特性和速度、备份的测试方法以及备份介质的存储位置和方法(包括安全注意事项)。 策略的还原部分定义负责执行还原的人员以及如何执行还原以满足数据库可用性和尽量减少数据丢失的目标。 建议您将备份和还原过程记录下来并在运行手册中保留记录文档的副本。
设计有效的备份和还原策略需要仔细计划、实现和测试。 测试是必需环节。 直到成功还原了还原策略中所有组合内的备份后,才会生成备份策略。 必须考虑各种因素。 其中包括:
您的组织对数据库的生产目标,尤其是对可用性和防止数据丢失的要求。
每个数据库的特性,包括:大小、使用模式、内容特性以及数据要求等。
对资源的约束,例如:硬件、人员、备份介质的存储空间以及所存储介质的物理安全性等。
注意
SQL Server磁盘存储格式在 64 位和 32 位环境中相同。 因此,可以将 32 位环境中的备份还原到 64 位环境中,反之亦然。 在运行在某个环境中的服务器实例上,可以还原在运行在另一个环境中的服务器实例上创建的备份。
恢复模式对备份和还原的影响
备份和还原操作发生在恢复模式的上下文中。 恢复模式是一种数据库属性,用于控制事务日志的管理方式。 此外,数据库的恢复模式还决定数据库支持的备份类型和还原方案。 通常,数据库使用简单恢复模式或完整恢复模式。 可以在执行大容量操作之前切换到大容量日志恢复模式,以补充完整恢复模式。 有关这些恢复模式的介绍以及它们如何影响事务日志管理,请参阅事务日志 (SQL Server) 。
数据库的最佳恢复模式取决于您的业务要求。 若要免去事务日志管理工作并简化备份和还原,请使用简单恢复模式。 若要在管理开销一定的情况下使工作丢失的可能性降到最低,请使用完整恢复模式。 有关恢复模式对备份和还原的影响的信息,请参阅备份概述 (SQL Server) 。
设计备份策略
当为特定数据库选择了满足业务要求的恢复模式后,需要计划并实现相应的备份策略。 最佳备份策略取决于各种因素,以下因素尤其重要:
一天中应用程序访问数据库的时间有多长?
如果存在一个可预测的非高峰时段,则建议您将完整数据库备份安排在此时段。
更改和更新可能发生的频率如何?
如果更改经常发生,请考虑下列事项:
在简单恢复模式下,请考虑将差异备份安排在完整数据库备份之间。 差异备份只能捕获自上次完整数据库备份之后的更改。
在完整恢复模式下,应安排经常的日志备份。 在完整备份之间安排差异备份可减少数据还原后需要还原的日志备份数,从而缩短还原时间。
可能只是更改数据库的小部分内容,还是需要更改数据库的大部分内容?
对于更改集中于部分文件或文件组的大型数据库,部分备份和/或文件备份非常有用。 有关详细信息,请参阅部分备份 (SQL Server) 和完整文件备份 (SQL Server) 。
完整数据库备份需要多少磁盘空间?
有关详细信息,请参阅本部分后面的 估计完整数据库备份的大小。
估计完整数据库备份的大小
在实现备份与还原策略之前,应当估计完整数据库备份将使用的磁盘空间。 备份操作会将数据库中的数据复制到备份文件。 备份仅包含数据库中的实际数据,而不包含任何未使用的空间。 因此,备份通常小于数据库本身。 你可以使用 sp_spaceused 系统存储过程估计完整数据库备份的大小。 有关详细信息,请参阅 sp_spaceused (Transact-SQL) 。
计划备份
执行备份操作对运行中的事务影响很小,因此可以在正常操作过程中执行备份操作。 您可以在对生产工作负荷的影响很小的情况下执行 SQL Server 备份。
注意
有关备份期间并发限制的信息,请参阅备份概述 (SQL Server) 。
确定所需的备份类型和必须执行每种备份类型的频率后,建议您将定期备份计划为数据库维护计划的一部分。 有关维护计划以及如何为数据库备份和日志备份创建维护计划的信息,请参阅 Use the Maintenance Plan Wizard。
测试备份
直到完成备份测试后,才会生成还原策略。 必须通过将数据库副本还原到测试系统,针对每个数据库的备份策略进行全面测试。 您必须对每种要使用的备份类型进行还原测试。
建议您为每个数据库维护一个操作手册。 此操作手册应记录备份的位置、备份设备名称(如果有),以及还原测试备份所需的时间。
Related Tasks
计划备份作业
使用备份设备和备份介质
创建备份
注意
对于部分备份或仅复制备份,必须分别将 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
另请参阅
Backup Overview (SQL Server)
还原和恢复概述 (SQL Server)
BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
备份和还原 Analysis Services 数据库
备份和还原全文目录和索引
备份和还原复制的数据库
事务日志 (SQL Server)
恢复模式 (SQL Server)
介质集、介质簇和备份集 (SQL Server)