Изменение данных в БД вызывает зависание сервера

Started by palaniuk, October 14, 2015, 11:22:49 AM

Previous topic - Next topic

palaniuk

Добрый день. Возникла проблема, при обновлении данных, т.е. при переименовании nod'а или смене ip, сервер зависает надолго, при этом какой-то нагрузки на систему нет.
Netxms установлен на винде, база данных sqlite. Помогает только остановка службы, затем разблокировка базы данных (nxdbmgr unlock) и перезапуск службы. Если не делать nxdbmgr unlock, служба не запускается. То же самое происходит при смене фонового изображения карты, при открытии прав доступа к диаграмме польователю, при переименовании диаграммы. При этом, если диаграмму открыть, затем переименовать и сохранить как новую, то таких проблем не будет. То же и с nod'ом, если старый удалить и создать новый с нужными параметрами (имя, ip и др.), то создание и считывание информации по snmp происходит быстро.  Т.о. выходит что у меня проблема с перезаписью информации в базе данных.
Установлен NetXMS 2.0-RC1.

Если у кого-нибудь была подобная проблема, напишите, пожалуйста, что нужно сделать, чтобы ее решить.

Alex Kirhenshtein

Я очень рекомендую сменить базу данных (например на PostgreSQL, MySQL). SQLite предназначен для разработки и очень маленьких инсталляций.
Миграция полностью автоматизированна, и делается при помощи nxdbmgr:
1) поставьте базу данных, создайте юзера и базу
2) скопируйте netxmsd.conf в netxmsd.old.conf
3) в netxmsd.conf поменяйте DBDriver, DBName, DBLogin, DBPassword
4) создайте структуру базы: "nxdbmgr init dbinit_pgsql.sql" ("dbinit_pgsql.sql" – пример для PostgreSQL, при необходимости укажите полный путь к файлу)
4) запустите "nxdbmgr migrate netxmsd.old.conf"

palaniuk

Большое спасибо за подробную инструкцию. Обязательно сделаю :)