2012-07-14 67 views
1

我正在管理一个拥有大约140.000个文档的网站。使用相同的设置,该系统已运行超过两年没有问题。我们必须将我们的服务器迁移到新的基础架构,并从那以后出现一些异常现象。MySQL查询和数据调试

每个文档在数据库中都有一个状态。状态码(int)5表示文档被删除/删除。

大约每个小时左右,大约10个文档的状态代码变为5.我们不会丢失实际的文档,但它对最终用户不可用。我想弄清楚是什么导致了这个问题,但找不到它的来源。

我们有两个查询可以改变文档的状态。我暂时禁用了其中一个,并且我已将代码库中已删除文档的状态代码更改为6。

但是,我们仍然有同样的问题和状态代码更改为5,6,不

我已经启用了查询日志,并花了几个小时,但没有更新查询这些删除的文件,除了view_count增加这是一个非常简短的查询。该文档在被删除的同时被某个人请求。但是,所有查询都是select查询(view_count除外),其他文档之间没有区别。而且我们每秒都有数百个页面浏览量。随机只有一个被删除。因此,如果我可以在查询日志中看到,我可以尝试找出代码库中的特定查询。但是,它甚至没有显示任何东西。所以,我现在无能为力。

你有什么建议吗?我必须解决这个问题,所以我可以尝试任何事情。

新系统是;

的Debian 6.0.5 的MySQL 5.5.24 - Percona的构建 PHP-NGINX-SOLR箱

+0

您是否在启用查询日志后重新启动MySQL? – davidethell 2012-07-14 19:42:16

+0

是的,我在日志中有大量的查询。我只是没有看到任何与此问题有关的更新操作。我已经调查了很多,所以我100%肯定它没有抓住它。 – Merinn 2012-07-14 20:13:02

回答

1

档案UPDATE查询与Jet ProfilerPercona Toolkit,分析他们,你必须找到答案。

General Query Log也可能帮助您找到特定的更新查询。

+0

是的,一般查询日志并没有显示任何关于我的文章中提到的东西,但percona工具包也使用tcpdump,所以这将是非常有用的,我猜。谢谢! – Merinn 2012-07-14 19:54:47

0

Percona工具包非常棒,但它甚至没有显示任何与此问题有关的东西。 (包括tcpdump等)

我已经安装了Oracle生成MySQL 5.5.25a,它工作。这是我在整个职业生涯中见过的最奇怪的错误。