Sitecore数据库清理失败

Sitecore数据库清理失败,sitecore,sitecore6,sitecore-media-library,Sitecore,Sitecore6,Sitecore Media Library,Sitecore 6.6 我也在与Sitecore支持人员讨论这一点,但我想我也会接触到社区 我们有一个自定义代理,用于将文件系统上的媒体与媒体库同步。这是一个新的代理,我们犯了一个错误,没有监控数据库大小。它应该导入大约8 GB的数据,但数据库在相当短的时间内膨胀到713 GB。事实证明,“master”和“web”数据库中的“Blobs”表包含了几乎所有的空间 我试图从控制面板使用“清理数据库”工具。我只选择了其中一个数据库。由于使用了SQL Server上的所有可用锁,此操作运行了6个小时

Sitecore 6.6

我也在与Sitecore支持人员讨论这一点,但我想我也会接触到社区

我们有一个自定义代理,用于将文件系统上的媒体与媒体库同步。这是一个新的代理,我们犯了一个错误,没有监控数据库大小。它应该导入大约8 GB的数据,但数据库在相当短的时间内膨胀到713 GB。事实证明,“master”和“web”数据库中的“Blobs”表包含了几乎所有的空间

我试图从控制面板使用“清理数据库”工具。我只选择了其中一个数据库。由于使用了SQL Server上的所有可用锁,此操作运行了6个小时才爆炸:

    Exception: System.Data.SqlClient.SqlException
    Message: The instance of the SQL Server Database Engine cannot obtain a LOCK 
resource at this time. Rerun your statement when there are fewer active users. 
Ask the database administrator to check the lock and memory configuration for 
this instance, or to check for long-running transactions.
然后它把所有的东西都卷回。注意:我将SQL和DataProvider超时增加到无穷大

还有人处理这样的事情吗?如果我可以将数据库“清理”成更小的块,以避免使SQL Server崩溃,那就太好了


谢谢

如果您有一个登台环境,我建议您复制数据库并尝试收缩数据库。部分数据库大小也可能与事务日志有关


如果您有DBA,请让他(她)参与。

我以前遇到过这样的问题,我们已经联系了Sitecore支持部门

他们给了我们一个Sitecore支持DLL,并建议对数据提供程序进行Web.Config更改——从main type=“Sitecore.Data.$(数据库)。$(数据库)数据提供程序、Sitecore.Kernel”更改为新的

我在你的这个问题上发帖的原因是因为我们花费的大部分时间都在清理blob上,他们给了我们这个DLL来提高清理blob的速度。所以我想这可能对你也有帮助

因此,我想建议您是否可以请求Sitecore支持。在这种情况下,我相信您可能会得到解决您的问题的最佳解决方案

希望这对你有帮助

问候,,
Varun Shringarpure

感谢各位的回复

我还与支持人员交谈,他们能够提供一个SQL脚本来清理Blobs表:

DECLARE @UsableBlobs table(
    ID uniqueidentifier
    );

INSERT INTO 
    @UsableBlobs    
select convert(uniqueidentifier,[Value]) as EmpID from [Fields]
where [Value] != '' 
and (FieldId='{40E50ED9-BA07-4702-992E-A912738D32DC}' or FieldId='{DBBE7D99-1388-4357-BB34-AD71EDF18ED3}') 
delete top (1000) from [Blobs] 
where [BlobId] not in (select * from @UsableBlobs)
我对脚本所做的唯一更改是添加“top(1000)”,以便将其删除为更小的块。我最终将这个数字提高到200000,每次运行大约一个小时

关于原因,我们还不太确定。我们认为,我们的定制代理运行得太频繁,导致插入内容彼此重叠


还请注意,Sitecore更新显然解决了Blobs表失控的问题。更新为6.6,更新为3

工作得很有魅力。谢谢克雷格。