症状
在 Microsoft SQL Server 2008 或 SQL Server 2008 R2 中,尝试使用 BACKUP 语句备份数据库。 但是,备份操作将失败,并且以下错误消息将记录在 SQL Server 错误日志文件中:
<> <spid> 错误的日期><时间:2601,严重性:14,状态: 1. <日期><时间> <spid> 无法在对象 "syscommittab" 中插入具有唯一索引 "<索引名称>" 的重复键行。 <日期><的 spid> <错误:3999,严重度:17,状态:1。> 日期 <时间><在 dbid> <数据库 ID> 由于错误2601而无法将提交表刷新到磁盘。 有关详细信息,请查看错误日志。
如果满足以下条件,则会发生此问题:
-
已启用此数据库 trackingon 的 SQL Server 更改。
-
启用更改跟踪后,数据库至少已经历过一次数据库恢复。注意运行数据库恢复的最常见情况如下所示:
-
SQL Server 服务重新启动时。
-
从备份还原数据库时。
-
此外,当 SQL Server 尝试对此数据库执行检查点操作时,也可能会遇到2601错误。有关可导致数据库检查点的活动的详细信息,请参阅以下 SQL Server 2008 文档中 "检查点的活动" 和 "日志的活动部分" 部分中的 "导致检查点的活动" 部分:
解决方案
累积更新信息
SQL Server 2008 Service Pack 3
此问题的修补程序首次发布于 SQL Server 2008 的累积更新2(Service Pack 3)。有关此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2633143 SQL Server 2008 的累积更新包 2 Service Pack 3注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2008 修复版本附带的所有修补程序和所有安全修补程序。 Microsoft 建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2629969 发布 SQL server 2008 Service Pack 3 后发布的 SQL Server 2008 版本 为特定 SQL Server service pack 创建 Microsoft SQL Server 2008 修补程序。 必须将 SQL Server 2008 Service Pack 3 修补程序应用到 SQL Server 2008 Service Pack 3 的安装。 默认情况下,SQL Server service pack 中提供的任何修补程序都包含在下一个 SQL Server service pack 中。
SQL Server 2008 R2 Service Pack 1
此问题的修补程序首次在 SQL Server 2008 R2 Service Pack 1 的累积更新1中发布。有关如何获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2544793 SQL Server 2008 R2 Service Pack 1 的累积更新包1注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2567616 在发布 SQL Server 2008 R2 Service Pack 1 之后发布的 SQL Server 2008 R2 版本
SQL Server 2008 R2
此问题的修补程序首次发布,即累积更新8。有关如何为 SQL Server 2008 R2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2534352 SQL Server 2008 R2 累积更新程序包8 注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
981356 发布 SQL Server 2008 R2 后发布的 SQL Server 2008 R2 版本
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
有关软件更新术语的更多信息,请单击下面的文章编号以查看 Microsoft 知识库中的相应文章:
824684 用于描述 Microsoft 软件更新的标准术语的说明
更多信息
若要修复 SQL Server 中的相关问题,请参阅以下知识库文章:SQL server 中的 syscommittab 表中的重复键行