Ad Widget

Collapse

Duplicate entry for key 'PRIMARY' insert into triggers,

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Grinders2007
    Junior Member
    • Jul 2018
    • 16

    #1

    Duplicate entry for key 'PRIMARY' insert into triggers,

    Здравствуйте!
    Zabbix 3.2.4, mysql Ver 15.1-InnoDB, используется партиционирование.
    В логах заббикс жалуется на дублирование записи с id 26493154. Пытается я так понял записать туда изменения статуса триггера. Триггеры пытается записать каждый раз разные.
    В логах mysql пусто. Сам zabbix при этом работает в штатном режиме.
    Я думал удалить запись из БД, но там есть зависимости с другими таблицами. Очень давно БД восстанавливалась из бэкапа, и видимо слетела последовательность ключа.
    Может кто подсказать как можно это разрешить? Возможно передвинуть последовательность в конец таблицы не портя зависимости или удалить триггер не задевая шаблоны/узлы?
    С БД и запросами я не дружу, возможно это тривиальная задача для кого-то.
    Attached Files
    Last edited by Grinders2007; 06-08-2019, 19:44.
  • Grinders2007
    Junior Member
    • Jul 2018
    • 16

    #2
    Проблема решена.
    Как я и догадывался слетели сиквенсы. В БД заббикс сиквенсы не используются(имею в виду стандартные от mysql), вместо этого все последовательности записаны в отдельную таблицу с именем "ids".
    Там всё просто, для каждой таблицы есть отдельная запись где указан какой следующий id должен быть использован.
    Если кому поможет:
    1. Стопаем заббикс что-бы он не создавал новые записи когда мы будем менять последовательности.
    2. Смотрим какой последний id используется в таблице:
    Code:
    SELECT MAX(triggerid) FROM triggers;
    SELECT MAX(triggerdepid) FROM trigger_depends;
    3. Ставим полученное значение +1 в таблицу "ids" в "nextid":
    Code:
    UPDATE ids SET nextid='26493155' WHERE table_name='triggers';
    UPDATE ids SET nextid='129813' WHERE table_name='trigger_depends';
    4. Запускаем Заббикс обратно.
    Перед изменением важно проверить все зависимости с другими таблицами, и увеличить там "nextid". Посмотреть это можно в dll таблицы.

    Comment

    Working...