OpenX 情報: Apache 2.2.19、PHP 5.3.6、および MySQL 5.1.56-log で動作する OpenX v2.8.7。
OpenX の分散インストールで問題が発生しています。
グローバル データベースと管理インターフェイスを備えた 1 つのマスター サーバーと、バナーを提供するローカル データベースを備えたいくつかのスレーブ サーバー (今のところ 1 つ) に基づくアーキテクチャがあります。
MASTER の MySQL レプリケーションは正常に動作しており (マスターのすべての変更がスレーブに複製されるため)、メンテナンス スクリプト (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
問題は、インプレッション サマリーが計算されず、管理インターフェイス (MASTER サーバー上) に表示されないことです。デバッグを行ったところ、最終的に次の結果が得られました。
- バナーは正常に配信されています
- スレーブ サーバーはインプレッションをログに記録しています。
- スレーブ サーバーはデータを MASTER OK に送り返しています
- マスターはサーバーからデータを取得しています (テーブル ox_data_bkt_* がいっぱいです)
- マスターは管理インターフェースでデータを要約していません
これは、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 スクリプトを使用すると正しい数値が得られることがわかりましたが、これは汚い修正であり、本当の解決策であるに違いないと思います。