【问题标题】:Sitecore Database Cleanup FailsSitecore 数据库清理失败
【发布时间】:2013-10-22 20:19:09
【问题描述】:

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,那就太好了。

谢谢!

【问题讨论】:

    标签: sitecore sitecore6 sitecore-media-library


    【解决方案1】:

    谢谢大家的回复。

    我还与支持人员进行了交谈,他们能够提供一个 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)”,以便将其删除为更小的块。我最终将这个数字提高到了 200,000,每次运行大约一个小时。

    关于原因,我们还不太确定。我们认为我们的自定义代理运行过于频繁,导致插入相互堆叠。

    另请注意,有一个 Sitecore 更新显然解决了 Blob 表失控的问题。更新是 6.6,更新 3。

    【讨论】:

    • 工作就像一个魅力。谢谢克雷格。
    【解决方案2】:

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

    他们给了我们一个 Sitecore 支持 DLL,并建议对 Dataprovider 的 Web.Config 进行更改——来自 ma​​in type="Sitecore.Data.$(database).$(database)DataProvider, Sitecore.Kernel" 到新的。

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

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

    希望对您有所帮助!

    问候, Varun Shringarpure

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多