2

在大型站点核心数据库上运行 db cleanup(控制面板 > 数据库 > 清理数据库)时出现错误,主要是由于媒体库 blobs 表。运行大约 4 分钟后出现错误。

Job started: CleanUpDatabases|System.InvalidOperationException: This SqlTransaction has completed; it is no longer usable.
at System.Data.SqlClient.SqlTransaction.ZombieCheck()
at System.Data.SqlClient.SqlTransaction.Rollback()
at Sitecore.Data.DataProviders.Sql.DataProviderTransaction.Dispose()
at Sitecore.Data.DataProviders.Sql.SqlDataProvider.CleanupBlobs(CallContext context)
at Sitecore.Data.DataProviders.Sql.SqlDataProvider.CleanupDatabase(CallContext context)
at Sitecore.Data.DataProviders.DataProvider.CleanupDatabase(CallContext context, DataProviderCollection providers)
at Sitecore.Shell.Applications.Databases.CleanUp.CleanUpForm.Cleaner.CleanUp()|Job ended: CleanUpDatabases (units processed: )

DefaultSQLTimeoutweb.config 中的值增加到一个较大的值似乎并没有什么不同。

4

2 回答 2

2

尝试在 sitecore/settings 的 web.config 中添加 DataProviderTimeout 设置,这对我有用——我们的主数据库大约 50GB。运行 v6.4.1 Update-1

于 2012-11-16T07:42:00.250 回答
0

对我来说,接受的解决方案不起作用。在我的情况下,我有一个很大的主数据库(显然)有很多孤立的媒体项目。一些研究表明,Sitecore 有一个 SQL 服务器脚本可以解决这个问题。Bjarke Istrup Pedersen 创建了一个小型控制台 .NET 程序,它通过一个漂亮、简单的界面运行这个脚本:

http://mixedsitecore.blogspot.dk/2014/05/fixing-database-with-too-many-orphaned.html

它为我解决了这个问题。

于 2015-07-02T11:47:34.267 回答