完整数据库备份 (SQL Server)

适用于:SQL Server

完整数据库备份可对整个数据库进行备份。 这包括对部分事务日志进行备份,以便在还原完整数据库备份之后,能够恢复完整数据库备份。 完整数据库备份表示备份完成时的数据库。

随着数据库不断增大,完整备份需花费更多时间才能完成,并且需要占用更多存储空间。 因此,对于大型数据库而言,您可以用一系列“差异数据库备份” 来补充完整数据库备份。 有关详细信息,请参阅差异备份 (SQL Server)

重要

针对数据库备份,TRUSTWORTHY 设置为 OFF。 有关如何将 TRUSTWORTHY 设置为 ON 的信息,请参阅 ALTER DATABASE SET 选项 (Transact-SQL)

简单恢复模式下的数据库备份

在简单恢复模式下,每次备份后,如果出现严重故障,数据库将有可能丢失工作。 每次更新都会增加丢失工作的风险,这种情况将一直持续到下一次备份。这时,工作丢失风险将变为零,并开始新一轮的工作丢失风险。 备份之间的工作丢失风险随着时间的推移而增加。 下图显示了仅使用完整数据库备份的备份策略的工作丢失风险。

Diagram showing the work-loss exposure between database backups.

示例 (Transact-SQL)

下面的示例说明了如何使用 WITH FORMAT 覆盖任意现有备份并创建新介质集,从而创建一个完整数据库备份。

-- Back up the AdventureWorks2022 database to new media set.
BACKUP DATABASE AdventureWorks2022
    TO DISK = 'Z:\SQLServerBackups\AdventureWorksSimpleRM.bak'
    WITH FORMAT;
GO

完整恢复模式下的数据库备份

对于使用完整恢复模式和大容量日志恢复模式的数据库而言,数据库备份是必需的,但并不足够。 还需要事务日志备份。 下图显示了在完整恢复模式下可以使用的复杂性最小的备份策略。

Diagram showing the series of full database backups and log backups.

有关如何创建日志备份的信息,请参阅事务日志备份 (SQL Server)

示例 (Transact-SQL)

下面的示例说明了如何使用 WITH FORMAT 覆盖任意现有备份并创建新介质集,从而创建一个完整数据库备份。 然后,此示例将备份事务日志。 在现实情况下,您必须执行一系列的定期日志备份。 在此示例中, AdventureWorks2022 示例数据库设置为使用完整恢复模式。

USE master;
GO
ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;
GO
-- Back up the AdventureWorks2022 database to new media set (backup set 1).
BACKUP DATABASE AdventureWorks2022
  TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022FullRM.bak'
  WITH FORMAT;
GO
--Create a routine log backup (backup set 2).
BACKUP LOG AdventureWorks2022 TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022FullRM.bak';
GO

使用完整数据库备份还原数据库

您可以通过将数据库从完整数据库备份还原到任意位置的方法一步完成整个数据库的重新创建。 备份中包含了足够的事务日志,这使您能够将数据库恢复到备份完成的时间。 还原的数据库将与还原数据库备份完成时的原始数据库状态相符,但不包含任何未提交的事务。 在完整恢复模式下,随后应还原所有后续日志备份。 恢复数据库后,将回滚未提交的事务。

有关详细信息,请参阅完全数据库还原(简单恢复模式)完全数据库还原(完整恢复模式)