gpt4 book ai didi

Sitecore 数据库清理失败

转载 作者:行者123 更新时间:2023-12-01 08:59:55 24 4
gpt4 key购买 nike

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 超时增加到无穷大。

还有其他人处理这样的事情吗?如果我能以更小的 block “清理”数据库以避免压倒 SQL Server,那就太好了。

谢谢!

最佳答案

谢谢大家的回复。

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

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

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

关于Sitecore 数据库清理失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19527521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com