Ошибки в логе сервера после обновления 2.0.8 -> 2.1

Started by Leonid, July 24, 2017, 06:10:46 PM

Previous topic - Next topic

Leonid

Предыстория. Сервер работает на Win Server 2008R2. Пытался обновить с 2.0.8 сразу на 2.1. С ПО проблем не возникло. Беда с была с БД. При выполнении C:\NetXMS\bin> nxdbmgr upgradeна обработке первой таблицы вида tdata_<node_id> получил сообщение об ошибке и отказ от обновления. Журнал не сохранился. Проверка целостности C:\NetXMS\bin> nxdbmgr check выдавала зелёный свет.

Далее после C:\NetXMS\bin> nxdbmgr upgrade -X обновление выполнилось. Были ошибки в обработке некоторых таблиц вида tdata_<node_id>. Большая же часть обработалась успешно. В итоге получил сообщение об успешном обновлении. Проверка целостности на этом этапе также выдавала зелёный свет.

Последствия. После "обновления" в журнале сервера вижу такие сообщения:
  • Ошибки вставки в таблицы вида tdata_<nodeid>
[24-Jul-2017 12:08:40.327] [ERROR] SQL query failed (Query = "INSERT INTO tdata_231 (item_id,tdata_timestamp,tdata_value) VALUES (?,?,?)"): [Microsoft][SQL Server Native Client 10.0]COUNT field incorrect or syntax error
[24-Jul-2017 12:08:40.327] [DEBUG] EVENT SYS_DB_QUERY_FAILED [52] (ID:107461 F:0x0001 S:4 TAG:"") FROM IAD-MTN-02: Database query failed (Query: INSERT INTO tdata_231 (item_id,tdata_timestamp,tdata_value) VALUES (?,?,?); Error: [Microsoft][SQL Server Native Client 10.0]COUNT field incorrect or syntax error)

  • Ошибки StatusPoll
[24-Jul-2017 12:08:27.519] [DEBUG] StatusPoll(<object_name> [325]): unable to get system location
[24-Jul-2017 12:08:27.582] [DEBUG] StatusPoll(<object_name> [325]): unable to get agent log status
[24-Jul-2017 12:08:27.660] [DEBUG] StatusPoll(<object_name> [325]): unable to get agent local database status

  • Сообщения о том, что невозможно удалить объект. Указанный объект был создан и удалён после обновления.
[24-Jul-2017 12:06:38.647] [DEBUG] Syncer: object <object_name> [641] marked for deletion
[24-Jul-2017 12:06:38.647] [DEBUG] Syncer: Unable to delete object with id 641 because it is being referenced 13 time(s)


Вопросы. Как лечить вышеперечисленные беды? Можно ли обойтись без пересоздания всех таблиц БД? О чём говорят сообщения StatusPoll unable to get <что либо>?

Спасибо!

P.S.: все узлы на мониторинге - это серверные станции.

Victor Kirhenshtein

"unable to get ..." - может быть совершенно нормально, если устройство не дает такой информации.

Я советую остановить сервер и запустить nxdbmgr check. Он должен пересоздать отсутствующие tdata таблицы.

"Syncer: Unable to delete object with id 641 because it is being referenced 13 time(s)" - если повторяется многократно и количество references не уменьшается - то это баг в сервере. Тогда поможет дополнительная информация по этому объекту.

Leonid

Спасибо за ответы!

Quote"unable to get ..." - может быть совершенно нормально, если устройство не дает такой информации.
Правильно я понимаю, что подобные сообщения в журнале в версии 2.0.8 не появлялись просто, а в новой появляются?

QuoteЯ советую остановить сервер и запустить nxdbmgr check. Он должен пересоздать отсутствующие tdata таблицы.
Дело в том, что nxdbmgr check я делал и до и после обновления. Получал сообщение что всё хорошо. Забыл вчера вночь попробовать, попробую ещё раз сегодня.
А по поводу назначения таблиц tdata? Какие могут быть последствия ошибок вставки данных в них?

Quote"Syncer: Unable to delete object with id 641 because it is being referenced 13 time(s)" - если повторяется многократно и количество references не уменьшается - то это баг в сервере. Тогда поможет дополнительная информация по этому объекту.
Сообщения действительно перестали появляться со временем. Но сами объекты всё ещё в присутствуют в таблице nodes. Наверное так и должно быть?

Victor Kirhenshtein

Quote
Спасибо за ответы!

Quote"unable to get ..." - может быть совершенно нормально, если устройство не дает такой информации.
Правильно я понимаю, что подобные сообщения в журнале в версии 2.0.8 не появлялись просто, а в новой появляются?

Да.

Quote
QuoteЯ советую остановить сервер и запустить nxdbmgr check. Он должен пересоздать отсутствующие tdata таблицы.
Дело в том, что nxdbmgr check я делал и до и после обновления. Получал сообщение что всё хорошо. Забыл вчера вночь попробовать, попробую ещё раз сегодня.
А по поводу назначения таблиц tdata? Какие могут быть последствия ошибок вставки данных в них?

В этих таблицах хранятся значения табличных DCI.

Quote
Quote"Syncer: Unable to delete object with id 641 because it is being referenced 13 time(s)" - если повторяется многократно и количество references не уменьшается - то это баг в сервере. Тогда поможет дополнительная информация по этому объекту.
Сообщения действительно перестали появляться со временем. Но сами объекты всё ещё в присутствуют в таблице nodes. Наверное так и должно быть?

Вообще-то нет. Скорее всего после попытки удаления был рестарт сервера, и объекты теперь болдаются в корне дерева. Можно зайти пользователем system и удалить их еще раз.

Leonid

Наконец-то добрался до NetXMS ^_^

Quote
Quote
Quote
Я советую остановить сервер и запустить nxdbmgr check. Он должен пересоздать отсутствующие tdata таблицы.
Дело в том, что nxdbmgr check я делал и до и после обновления. Получал сообщение что всё хорошо. Забыл вчера вночь попробовать, попробую ещё раз сегодня.
А по поводу назначения таблиц tdata? Какие могут быть последствия ошибок вставки данных в них?

В этих таблицах хранятся значения табличных DCI.
Выполнил nxdbmgr check. Судя по всему таблицы не пересоздались (мне кажется и не должны были, я думаю они "правильные"). Ошибки вставки не вылечились:
[01-Aug-2017 01:43:05.252] [ERROR] SQL query failed (Query = "INSERT INTO tdata_177 (item_id,tdata_timestamp,tdata_value) VALUES (?,?,?)"): [Microsoft][SQL Server Native Client 10.0]COUNT field incorrect or syntax error
[01-Aug-2017 01:43:06.797] [DEBUG] EVENT SYS_DB_QUERY_FAILED [52] (ID:168189 F:0x0001 S:4 TAG:"" CORRELATED) FROM IAD-MTN-02: Database query failed (Query: INSERT INTO tdata_177 (item_id,tdata_timestamp,tdata_value) VALUES (?,?,?); Error: [Microsoft][SQL Server Native Client 10.0]COUNT field incorrect or syntax error)

Может ли быть такое, что часть ПО не обновилась? Может быть стоит переустановить сервер без пересоздания БД?

Quote
Quote
Quote
"Syncer: Unable to delete object with id 641 because it is being referenced 13 time(s)" - если повторяется многократно и количество references не уменьшается - то это баг в сервере. Тогда поможет дополнительная информация по этому объекту.
Сообщения действительно перестали появляться со временем. Но сами объекты всё ещё в присутствуют в таблице nodes. Наверное так и должно быть?

Вообще-то нет. Скорее всего после попытки удаления был рестарт сервера, и объекты теперь болдаются в корне дерева. Можно зайти пользователем system и удалить их еще раз.
А вот эти объекты явно были полечены во время nxdbmgr check. Из таблицы nodes исчезли. Этот вопрос закрыт.