2

OpenX 信息:在 Apache 2.2.19、PHP 5.3.6 和 MySQL 5.1.56-log 下运行的 OpenX v2.8.7。

我在分布式 OpenX 安装中遇到了一些问题。

我的架构基于一个具有全局数据库和管理界面的 MASTER 服务器和一些具有本地数据库的 SLAVE 服务器(现在是一个),为横幅提供服务。

MASTER 的 MySQL 复制工作正常(因为 master 中的每个更改都复制到 slave)并且维护脚本(master 的 maintenance.php 和 SLAVE 的 maintenance-distributed.php)看起来运行良好(没有错误的调试痕迹)。该系统是按照分布式系统的 OpenX 文档进行配置的。

这些是运行维护脚本的 cronjobs:

掌握

5 * * * * /usr/local/bin/php /var/www/scripts/maintenance/maintenance.php www.mydomine.com

奴隶

10,25,40,55 * * * * /usr/local/bin/php /var/www/scripts/maintenance/maintenance-distributed.php www.mydomine.php

问题是印象摘要没有被计算并显​​示在管理界面(在主服务器上),我一直在调试,我最终得到了下一个结果:

  1. 横幅服务正常
  2. 从服务器正在记录印象数
  3. 从服务器正在将数据发送回 MASTER OK
  4. master正在从服务器获取数据(表 ox_data_bkt_* 已满)
  5. master没有在管理界面汇总数据

这是来自 MASTER 数据库的示例查询:

select interval_start, sum(count) from ox_data_bkt_m group by interval_start;

结果包含从 SLAVE 记录并发送到 MASTER 的所有印象。

+---------------------+------------+
| interval_start      | sum(count) |
+---------------------+------------+
| 2011-06-25 10:00:00 | 1883133 |
| 2011-06-25 11:00:00 | 2074979 |
| 2011-06-25 12:00:00 | 2239609 |
+---------------------+------------+
5 rows in set (0.00 sec)

但是在管理界面上我对那个时代没有印象......

尝试了一些事情,我们意识到脚本scripts/maintenance/tool/republish.php实际上解决了过去统计数据的问题,但新的仍然没有出现。我们发现在 MASTER 上的每个维护周期之后使用 republish.php 脚本将获得正确的数字,但我认为这是一个肮脏的修复,必须是一个真正的解决方案。

4

2 回答 2

4

在我看到这种情况的几乎所有情况下,结果表明主服务器和从服务器上的时钟在不同的时区设置下运行,导致主服务器寻找根本不存在的原始统计数据(还)。

于 2011-06-27T07:12:02.237 回答
1

问题已解决,是维护脚本的时间问题。

在主节点上调用maintenance.php之前,必须在从节点上调用maintenance-distributed.php,但是一旦最后一小时的统计数据已经消失,就必须调用maintenance-distributed.php......只是一个举例说明:

我从 00:00:00 到 00:59:59 在从属服务器中获得印象,我在从属服务器上的 01:01:00 运行 maintenance-distributed.php,数据被发送回主节点,现在,例如在 01:05:00 我可以在 MASTER 节点上运行 maintenance.php。

这些是新的 cronjobs:

掌握

5 * * * * /usr/local/bin/php /var/www/scripts/maintenance/maintenance.php www.mydomine.com

奴隶

1,10,25,40,55 * * * * /usr/local/bin/php /var/www/scripts/maintenance/maintenance-distributed.php www.mydomine.php
于 2011-06-27T10:43:29.867 回答