Проблема с формированием отчета по трафику за месяц

Технические вопросы по UTM 5.0
Ответить
alismix
Сообщения: 20
Зарегистрирован: Пн июл 03, 2006 10:04

Проблема с формированием отчета по трафику за месяц

Сообщение alismix »

Здравствуйте. Столкнулся с такой проблемой - после аварийной остановки биллинга не формируется отчет по трафику за месяц и любой промежуток времени больше одного дня. При этом возможно сформировать отчет за любой 1 день, входящий в месяц. Подскажите возможные решения?

alismix
Сообщения: 20
Зарегистрирован: Пн июл 03, 2006 10:04

Сообщение alismix »

Может логи чем-то помогут...

main. log
...
ERROR : Jul 07 14:07:04 DBCtx: <139954416> MySQL query failed:
ERROR : Jul 07 14:07:04 DBASQLError: MySQL query failed:
ERROR : Jul 07 14:07:04 DBCtx: Exception while doing SQL select !
...

debug.log
...
ERROR : Jul 07 14:07:04 DBCtx: <139954416> MySQL query failed:
ERROR : Jul 07 14:07:04 DBASQLError: MySQL query failed:
?Trace : Jul 07 14:07:04 trace: Obtained 14 stack frames.
?Trace : Jul 07 14:07:04 trace: /netup/utm5/bin/utm5_core(_Z15print_backtracev+0x23) [0x8356473]
?Trace : Jul 07 14:07:04 trace: /netup/utm5/bin/utm5_core(_ZN3UTM8DBAErrorC2ERKSsS2_+0x50) [0x81b9e80]
?Trace : Jul 07 14:07:04 trace: /netup/utm5/bin/utm5_core(_ZN3UTM11DBASQLErrorC1ESs+0x48) [0x81ba028]
?Trace : Jul 07 14:07:04 trace: /netup/utm5/bin/utm5_core(_ZN3UTM12DBACtx_mysql11_sql_selectERKSsRNS_12sql_result_tE+0x193) [0x8347de3]
?Trace : Jul 07 14:07:04 trace: /netup/utm5/bin/utm5_core(_ZN3UTM6DBACtx10sql_selectERKSsRNS_12sql_result_tE+0xe1) [0x81c1151]
?Trace : Jul 07 14:07:04 trace: /netup/utm5/bin/utm5_core(_ZN3UTM8DBAClass10sql_selectERKSsRNS_12sql_result_tE+0x26) [0x81c11d6]
?Trace : Jul 07 14:07:04 trace: /netup/utm5/bin/utm5_core(_ZN3UTM8DBAccess14raw_sql_selectEPKcPNS_12sql_result_tE+0x4d) [0x81ba42d]
?Trace : Jul 07 14:07:04 trace: /netup/utm5/bin/utm5_core(_ZN3UTM8DBAccess28__reports_account_traffic_exEiiillPSt6vectorINS_23discount_info_iptrafficESaIS2_EE+0x577) [0x82282c7]
?Trace : Jul 07 14:07:04 trace: /netup/utm5/lib/utm5_core/liburfa-reports.so(_ZN3UTM8DBAccess26reports_account_traffic_exEiiillPSt6vectorINS_23discount_info_iptrafficESaIS2_EE+0x47) [0xb4deadf7]
?Trace : Jul 07 14:07:04 trace: /netup/utm5/lib/utm5_core/liburfa-reports.so(_Z22rpcf_traffic_report_exPv+0x7be) [0xb4de3ede]
?Trace : Jul 07 14:07:04 trace: /netup/utm5/bin/utm5_core(_ZN3UTM7RPCConn7processEv+0x6aa) [0x82fbb2a]
?Trace : Jul 07 14:07:04 trace: /netup/utm5/bin/utm5_core(_ZN3UTM17__rpcconn_wrapperEPv+0x12f) [0x82f185f]
?Trace : Jul 07 14:07:04 trace: /lib/libpthread.so.0 [0xb7d47162]
?Trace : Jul 07 14:07:04 trace: /lib/libc.so.6(clone+0x5e) [0xb7ba1fee]
ERROR : Jul 07 14:07:04 DBCtx: Exception while doing SQL select !
?Debug : Jul 07 14:07:04 RPCServer@0.0.0.0: rpcf_traffic_report_ex: data size: <0>
?Debug : Jul 07 14:07:04 DBA:Ctx: Pushing back free context
-Stats : Jul 07 14:07:04 UTM5 DBA: Stats: Uptime: 00:00:10. Events: 0; Errors: 0
?Debug : Jul 07 14:07:04 RPCConn[SSL]<init@8x.2xx.1xx.xx>: Call 0x3009 (rpcf_traffic_report_ex) finished...
?Debug : Jul 07 14:07:04 RPCConn[SSL]<init@8x.2xx.1xx.xx>: Stream cleared
Info : Jul 07 14:07:04 RPCConn[SSL]<init@8x.2xx.1xx.xx>: Connection terminated by peer
?Debug : Jul 07 14:07:04 RPCConn[SSL]<init@8x.2xx.1xx.xx>: Session stored for UID -1 from <8x.2xx.1xx.xx>
?Debug : Jul 07 14:07:04 RPCConn[SSL]<init@8x.2xx.1xx.1x>: Session closed...
...

alismix
Сообщения: 20
Зарегистрирован: Пн июл 03, 2006 10:04

Сообщение alismix »

Другие отчеты тоже не формируются при временном промежутке отличном от одного дня

mysql при запуске пишет в лог:

090707 14:02:49 mysqld started
090707 14:02:49 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
090707 14:02:49 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
090707 14:02:50 InnoDB: Started; log sequence number 4 4150876313
090707 14:02:50 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.77' socket: '/tmp/mysql.sock' port: 3306 Source distribution

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Неплохо бы узнать запрос, на котором падает MySQL (query failed). Похоже все-таки побились таблички в базе.

alismix
Сообщения: 20
Зарегистрирован: Пн июл 03, 2006 10:04

Сообщение alismix »

JAO писал(а):Неплохо бы узнать запрос, на котором падает MySQL (query failed). Похоже все-таки побились таблички в базе.
Например, что вроде этого:

?Debug : Jul 07 15:23:06 DBCtx: <139954416> SQL SELECT query: SELECT account_id, slink_id, t_class, SUM(bytes) , base_cost, SUM(discount), SUM(discount_with_tax), discount_date_day FROM discount_transactions_iptraffic_all WHERE discount_date>='1246384800' AND discount_date <='1246958580' AND account_id='111' GROUP BY t_class,base _cost,account_id,slink_id,discount_date_day ORDER BY account_id, discount_date_day, t_class, base_cost
?Debug : Jul 07 15:23:06 DBCtx: <139954416> MySQL query failed:<The SELECT would examine more than MAX_JOIN_SI ZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay> Tryi ng to reconnect: 0
?Debug : Jul 07 15:23:08 DBCtx: <139954416> MySQL query failed:<The SELECT would examine more than MAX_JOIN_SI ZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay> Tryi ng to reconnect: 1
?Debug : Jul 07 15:23:10 DBCtx: <139954416> MySQL query failed:<The SELECT would examine more than MAX_JOIN_SI ZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay> Tryi ng to reconnect: 2
?Debug : Jul 07 15:23:12 DBCtx: <139954416> MySQL query failed:<The SELECT would examine more than MAX_JOIN_SI ZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay> Tryi ng to reconnect: 3
?Debug : Jul 07 15:23:14 DBCtx: <139954416> MySQL query failed:<The SELECT would examine more than MAX_JOIN_SI ZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay> Tryi ng to reconnect: 4
ERROR : Jul 07 15:23:16 DBCtx: <139954416> MySQL query failed:

alismix
Сообщения: 20
Зарегистрирован: Пн июл 03, 2006 10:04

Сообщение alismix »

Удалось получить отчет после установки переменной max_join_size=10M в конфиге my.cnf. Однако, до сбоя проблем с отчетами не возникало и сами отчеты формировались значительно быстрее...

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Похоже убились индексы. Это лечится снятием дампа и полной перезаливкой базы. Если известно, какой именно индекс вылетел - то ручным пересозданием. Операция эта долгая. Можно и конвертацией таблицы в MyISAM и после обратно в InnoDB, но MySQL должен быть тогда отстроен не по умолчанию, иначе помрет, проверял. Лучше конечно с дампа.

alismix
Сообщения: 20
Зарегистрирован: Пн июл 03, 2006 10:04

Сообщение alismix »

JAO писал(а):Похоже убились индексы. Это лечится снятием дампа и полной перезаливкой базы. Если известно, какой именно индекс вылетел - то ручным пересозданием. Операция эта долгая. Можно и конвертацией таблицы в MyISAM и после обратно в InnoDB, но MySQL должен быть тогда отстроен не по умолчанию, иначе помрет, проверял. Лучше конечно с дампа.

Если я Вас правильно понял, то сейчас лучший вариант - это создание дампа; удаление имеющейся базы UTM5; создание новой базы и запись в нее дампа...

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Да, я так делал в свое время. Помогло. Главное только, чтобы дамп снялся без ошибок, иначе будет потеря данных. У меня была потеря, потому что побилась страница с данными в InnoDB хранилище. Несколько тысяч записей о трафике потерялись тогда. Дамп я снимал, переключив движок InnoDB в режим "только чтение" , потому что иначе MySQL валился с криками.

Вообще лучше сделать резервную копию каталога, где MySQL хранит все базы и InnoDB хранилище с логами, скопировав его как есть при остановленном MySQL сервере. Это позволит сразу откатиться к исходной позиции, если вдруг что-то пойдет не так.

alismix
Сообщения: 20
Зарегистрирован: Пн июл 03, 2006 10:04

Сообщение alismix »

проверил базу mysqlcheck - ошибок не обнаружено.

...Сделал дамп базы - таблицы в InnoDB - все прошло без ошибок. Удалил базу UTM5, создал новую и залил в нее дамп. Может я упустил что-то, но ничего не изменилось - отчеты формируются только при больших значениях max_join_size и очень долго.

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Жаль. Но зато теперь ясно, что дело не в базе. И яндекс по теме ничего толком не выдал.

Ответить