SQL Server 2008 由于错误 2601 无法将提交表刷新到 dbid 11 中的磁盘,因此无法备份

Rod*_*cks 5 sql-server-2008 sql-server

我尝试使用以下代码备份 SQL Server 2008 数据库:

BACKUP DATABASE [DataStore] TO  DISK ='E:\SQLServerDatabase\DataBasebackUpOct302012.bak'
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

消息 2601,级别 14,状态 1,过程 sp_flush_commit_table,第 15 行无法在具有唯一索引“si_xdes_id”的对象“sys.syscommittab”中插入重复的键行。

消息 3013,级别 16,状态 1,第 1 行 BACKUP DATABASE 异常终止。该语句已终止。

消息 3999,级别 17,状态 1,第 1 行由于错误 2601,无法将提交表刷新到 dbid 11 中的磁盘。检查错误日志以获取更多信息。

有人可以建议解决这个问题吗?

版本是 Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) Jul 9 2008 14:17:44 (64-bit) o​​n Windows NT 6.1 (Build 7600:)


回复以下评论:

亚伦伯特兰,谢谢。我将研究服务包并希望能够解决问题。

SQL学习者

以前从未使用过更改跟踪服务。但由于处理不当,我们的 Windows Server 意外关闭了 2-3 次。

看起来我必须应用服务包。

mrdenny

使用 DBCC CHECKDB 错误后的结果

Msg 2601, Level 14, State 1, Procedure sp_flush_commit_table, Line 15
Cannot insert duplicate key row in object 'sys.syscommittab' with unique index 'si_xdes_id'.
The statement has been terminated.
Msg 2601, Level 14, State 1, Procedure sp_flush_commit_table, Line 15
Cannot insert duplicate key row in object 'sys.syscommittab' with unique index 'si_xdes_id'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Msg 3999, Level 17, State 1, Line 1
Failed to flush the commit table to disk in dbid 11 due to error 2601. Check the errorlog for more information.
Msg 3999, Level 17, State 1, Line 1
Failed to flush the commit table to disk in dbid 11 due to error 2601. Check the errorlog for more information
Run Code Online (Sandbox Code Playgroud)

2012 年 11 月 9 日更新我将 Service Pack3 应用到 SQL Server 2008,但我仍然无法创建数据库的背面。我没有重新启动服务器,因为它没有要求它。必须重新启动并检查是否应用了补丁。

将不胜感激任何关于如何去做的评论/想法。谢谢。

Ali*_*ghi 4

您是否使用过 SQL 2008 Enterprise 中提供的更改跟踪服务?如果是这样,是时候更新您的系统了。请尽量避免在任何地方运行 RTM。从安全甚至稳定性的角度来看,这是非常危险的。:)

以下 Microsoft 知识库文章可能对您有用:


修复:如果在数据库上启用更改跟踪,则在 SQL Server 2008、SQL Server 2008 R2 或 SQL Server 2012 中备份失败

此修复程序首次在 SQL Server 2008 Service Pack 2 的累积更新 7 中发布。

症状

错误:2601,严重性:14,状态:1。无法在具有唯一索引“Name”的对象“sys.syscommittab”中插入重复的键行。错误:3999,严重性:17,状态:1。由于错误 2601,无法在 dbid 中将提交表刷新到磁盘。


修复:在 SQL Server 2008 中更改跟踪的保留期结束后,sys.syscommittab 系统表不会被清理

此修复程序首次在 SQL Server 2008 Service Pack 1 的累积更新 11 中发布。

症状:

您可以在 Microsoft SQL Server 2008 中为数据库启用更改跟踪和自动清理属性。

您可以设置“保留期”和“保留期单位”属性。
在这种情况下,用于更改跟踪的 sys.syscommittab 系统表在指定的保留期后不会被清除。