Applies ToSQL Server 2008 Standard SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Workgroup SQL Server 2008 R2 Developer SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup SQL Server 2008 R2 Enterprise

症状

在 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 表中的重复键行

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。