Home » Zabbix » Ошибка Zabbix - database is not upgraded to use double precision values

Ошибка Zabbix - database is not upgraded to use double precision values

Обновлял версию Zabbix Server с 4.4 до 5.0 на очередном сервере и столкнулся с ошибкой, которую раньше не замечал. Все делал по своей статье - обновление zabbix 4.4 -> 5.0. Для версии Centos 7 она полностью актуальна, сделал по ней простым копипастом. Но возникла проблема с базой. Рассказываю, как решить.

Онлайн-курс по Kubernetes – для разработчиков, администраторов, технических лидеров, которые хотят изучить современную платформу для микросервисов Kubernetes. Самый полный русскоязычный курс по очень востребованным и хорошо оплачиваемым навыкам. Курс не для новичков – нужно пройти .

После обновления в логах zabbix-server заметил ошибку:

database is not upgraded to use double precision values

database is not upgraded to use double precision values

А в web интерфейсе было сообщение:

Таблицы истории в базе данных обновлены Нет

или в английской версии:

Database history tables upgraded No

Ошибка быстро нагуглилась, но решение взял из двух мест. В каждом из них ошибка решалась только наполовину. В итоге вам надо сделать следующее. Останавливаем zabbix-server:

# systemctl stop zabbix-server

Добавляем в конфиг /etc/zabbix/web/zabbix.conf.php:

$DB['DOUBLE_IEEE754'] = 'true';

Дальше идем в консоль mysql, заходим в базу данных zabbix и делаем там некоторые изменения:

# mysql -uroot -p
> use zabbix;
> ALTER TABLE trends MODIFY value_min DOUBLE PRECISION DEFAULT '0.0000' NOT NULL, MODIFY value_avg DOUBLE PRECISION DEFAULT '0.0000' NOT NULL, MODIFY value_max DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;
> ALTER TABLE history MODIFY value DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;

После этого запускаем zabbix-server. Ошибка в и логе, и в веб интерфейсе должна пропасть.

Также часто возникает ошибка с кодировкой базы данных, особенно если ставили сервер давно и последовательно его обновляли год от года. Раньше этого требования к кодировке не было. База данных и таблицы должны быть в кодировке utf8. Если у вас другая кодировка, получите ошибку - Неподдерживаемая кодовая страница. Как ее решать, смотрите по ссылке.

 

Онлайн курс по Kubernetes

Онлайн-курс по Kubernetes – для разработчиков, администраторов, технических лидеров, которые хотят изучить современную платформу для микросервисов Kubernetes. Самый полный русскоязычный курс по очень востребованным и хорошо оплачиваемым навыкам. Курс не для новичков – нужно пройти вступительный тест.

Если вы ответите "да" хотя бы на один вопрос, то это ваш курс:
  • устали тратить время на автоматизацию?
  • хотите единообразные окружения?;
  • хотите развиваться и использовать современные инструменты?
  • небезразлична надежность инфраструктуры?
  • приходится масштабировать инфраструктуру под растущие потребности бизнеса?
  • хотите освободить продуктовые команды от части задач администрирования и автоматизации и сфокусировать их на развитии продукта?
Сдавайте вступительный тест по и присоединяйтесь к новому набору!.

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

8 комментариев

  1. Аватар
    Владимир

    А для пользователей postgresql команда такая же? подскажите плиз!

  2. Аватар

    Отбой, решение помогло.
    Я почему-то добавил $DB['DOUBLE_IEEE754'] = 'true'; по пути /etc/zabbix/web/zabbix.conf.php :)

  3. Аватар

    Странно, сделал по аналогии, ошибка не пропала в web-интерфейсе (Database history tables upgraded - No).
    БД Zabbix не ругается на какое-либо не верное исполнение скрипта.
    В конфиг нужное значение ($DB['DOUBLE_IEEE754'] = 'true';) добавил, помимо службы zabbix-server, перезагрузил и сам сервер.

    MariaDB [(none)]> use zabbix;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A

    Database changed
    MariaDB [zabbix]> ALTER TABLE trends MODIFY value_min DOUBLE PRECISION DEFAULT '0.0000' NOT NULL, MODIFY value_avg DOUBLE PRECISION DEFAULT '0.0000' NOT NULL, MODIFY value_max DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;
    Query OK, 0 rows affected (0.00 sec)
    Records: 0 Duplicates: 0 Warnings: 0

    MariaDB [zabbix]> ALTER TABLE history MODIFY value DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;
    Query OK, 0 rows affected (0.00 sec)
    Records: 0 Duplicates: 0 Warnings: 0

  4. Аватар

    Ошибка ушла. Спасибо. Правда, я не особо понимаю на что это всё влияет. Это получается поменяли точность каких-то значений?

    • Zerox

      Нет, дело не в точности. У каждого приложения свои требования к типу базы данных и ее кодировке в зависимости от типа хранимых значений. Так трудно сходу объяснить в комментариях. Можно просто загуглить тему кодировок базы данных и разобраться при желании.

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.