从Trac获取"数据库已锁定"错误消息

时间:2020-03-06 14:38:44  来源:igfitidea点击:

想知道是否有人从Trac获得了臭名昭著的"数据库已锁定"错误,以及如何解决它。对于我们来说,它开始越来越频繁地发生。我们是否真的必须硬着头皮迁移到另一个数据库后端,还是有另一种方法?

有关更多信息,请参见以下两个Trac错误条目:

http://trac.edgewall.org/ticket/3446

http://trac.edgewall.org/ticket/3503

编辑1感谢回答和建议,这似乎证实了我们的怀疑,即迁移到PostgreSQL似乎是最好的选择。从SQLite到PostgreSQL的脚本在这里:http://trac-hacks.org/wiki/SqliteToPgScript这里什么都不做...

编辑2(已解决)迁移进行得很顺利,我希望我们不会再看到锁了。据我所知,速度并没有明显提高,但至少锁已消失。谢谢!

解决方案

当前的SQLite适配器存在问题。有一些脚本可以迁移到postgres,我真的可以建议,postgres对于Trac来说可以大大提高速度。

他们刚刚在9月10日修复了此问题,而修复的问题将在0.11.6中。

http://trac.edgewall.org/ticket/3446#comment:39

我不认为这是100%固定的。我们每天会遇到数十次此错误。在我们的案例中,我们有30余人不断更新Trac,因为我们使用它来跟踪几乎所有内容,而不仅仅是bug。从票务#3446:

Quite obviously, this is [...] due to
  our database access patterns... which
  currently limit our concurrency to at
  most one write access each few seconds