配置默认备份校验和(服务器配置选项)

适用于SQL Server

在实例级别的所有备份和还原操作期间,使用备份校验和默认设置,启用或禁用备份校验和。

若要为单个备份或还原操作配置错误检查,请参阅在备份或还原 (SQL Server) 期间启用或禁用备份校验和

下表描述了有效值:

含义
0(默认值) 已禁用
1 Enabled

若要为实例层级的所有备份和还原操作启用备份校验和,请运行以下命令:

EXEC sp_configure 'backup checksum default', 1;
RECONFIGURE;

设置立即生效。

使用方案

使用本机不公开错误管理选项的备份应用程序或实用程序时,可以使用备份校验和默认设置来提供这些错误管理选项(CHECKSUMNO_CHECKSUM)。 使用实用工具(如 SQL Server 日志传送或 SQL Server 维护计划中的备份数据库任务)时,也可以使用此选项。 这些实用工具和关联的 Transact-SQL 存储过程不提供在备份期间包含 CHECKSUM 选项的选项。

更多信息

如果在备份操作期间页校验和验证失败,SQL Server 将停止备份操作并报告错误消息 3043。 有关错误和故障排除步骤的详细信息,请参阅 MSSQLSERVER_3043 的错误页。

BACKUP 命令中使用显式 NO_CHECKSUM 选项时,将替代备份校验和默认服务器选项。

若要确定备份过程中是否使用了校验和来保护备份集,请使用以下方法之一:

  • RESTORE HEADERONLY 命令输出中的 HasBackupChecksums 标志。 例如:

    RESTORE headeronly FROM disk = 'c:\temp\master.bak'
    
  • msdb 数据库中 backupset 系统表中的 has_backup_checksums 列。 例如:

    SELECT has_backup_checksums, database_name, *
    FROM msdb..backupset
    

如果使用 CHECKSUM 选项执行备份,还原操作会自动执行验证,然后显示错误消息 3183。 有关错误和故障排除步骤的详细信息,请参阅 MSSQLSERVER_3183 的错误页。

SQL Server 2012 及更早版本

在 SQL Server 2012 (11.x) 及更早版本中,此选项不存在。 需要使用跟踪标志 3023 启用 CHECKSUM 选项作为 BACKUP 命令的默认值。 可以通过 DBCC TRACEON 语句动态使用跟踪标志 3023,也可以将其用作启动参数。

动态用法

DBCC TRACEON(3023, -1);
BACKUP DATABASE...;
DBCC TRACEOFF(3023, -1);

启动参数用法

将跟踪标志作为启动参数添加到 SQL Server (-T3023),然后停止并重启 SQL Server 服务。