Ad Widget

Collapse

Обновление Zabbix3.0 до 3.2

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • trv1171
    Member
    • Mar 2014
    • 52

    #1

    Обновление Zabbix3.0 до 3.2

    Произвел вышеупомянутое действо и столкнулся с проблемой описанной тут:


    Решил с помощью пересоздания соответствующих таблиц, и споткнулся о следующую проблему, решение которой, пока, найти не удается.

    Code:
     6495:20161007:183749.559 using configuration file: /etc/zabbix/zabbix_server.conf
      6495:20161007:183749.566 current database version (mandatory/optional): 03010010/03010010
      6495:20161007:183749.566 required mandatory version: 03020000
      6495:20161007:183749.566 starting automatic database upgrade
      6495:20161007:183749.574 [Z3005] query failed: [1005] Can't create table `zabbix`.`#sql-977_7207` (errno: 150 "Foreign key constraint is incorrectly formed") [alter table event_tag add constraint c_event_tag_1 foreign key (eventid) references events (eventid) on delete cascade]
      6495:20161007:183749.574 database upgrade failed
    К сожалению, столь глубоко я в SQL не влезал, поэтому что далее делать просто не знаю.

    используется на ubuntu server 16.0.4 + MariaDB 10.0.27

    Куда рыть, подскажите, пожалуйста?
  • sersad
    Senior Member
    • May 2009
    • 518

    #2
    Если еще актуально то проблема в таблице events. Может быть проблема в её партиционировании
    Простое решение - дропнуть её и создать по схеме из новой версии забикса.

    Comment

    • trv1171
      Member
      • Mar 2014
      • 52

      #3
      Уже не актуально. Проблему решил вымев всю историю. Обычно это решало проблемы связанные с апгрейдом. Решило и сейчас. Правда при переходе на 3.2 куда-то сгинули и все регулярные выражения. Но вцелом переезд прошел без проблем.

      Comment

      • max13
        Junior Member
        • Nov 2016
        • 6

        #4
        а какже партицирование?

        на версии 3.2 настроили партицирование?

        Comment

        • sersad
          Senior Member
          • May 2009
          • 518

          #5
          max13 мигрировал с 2.4 на 3.2.
          Таблицы евент и алертс грохнул и пересоздал.
          Партиционирование осталось, там ничего особо не поменялось кроме таблиц хистори log str txt. С ними при апргрейде есть проблемы, можно просто добавить индексы или их очистить

          Comment

          • max13
            Junior Member
            • Nov 2016
            • 6

            #6
            На этих таблица перенастраивали партицирование? есть ссылка как настроено партицирование?у меня таблица events не хочет партицироваться , насколько я понял дело в ней
            Code:
            161114 16:43:29 [ERROR] Event Scheduler: [zabbix.e_part_manage] Cannot remove all partitions, use DROP TABLE instead
            161114 16:43:29 [Note] Event Scheduler: [zabbix.e_part_manage] event execution failed.
            создаю партиции в ручную
            Code:
            mysql> ALTER TABLE `events` PARTITION BY RANGE ( clock) (PARTITION p2016_11 VALUES LESS THAN (UNIX_TIMESTAMP("2016-11-01 00:00:00") div 1) ENGINE = InnoDB);
            ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
            по инструкции партицирования , нужно отчистить таблицу и удалить первичный ключ, создать партиции. Когда очищаю таблицу , вылетает гора ошибок, что есть внешние ключи
            `c_event_tag_1`
            c_problem_1
            c_problem_2
            c_event_recovery_2
            c_event_recovery_3
            после удаления которых, можно создать партиции
            я настраивал по этой статье
            HTML Code:
            http://unixadm.info/content/%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%B5%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B2-%D0%B1%D0%B4-zabbix-mysql

            Comment

            • sersad
              Senior Member
              • May 2009
              • 518

              #7
              В доке писали что events делить нельзя.
              Не делайте этого.
              Пруфов не дам, искал не нашел. Но когда сам столкнулся с этой таблицей сделал как написал выше. Где то нашел об этом запись, причем на оф форуме с сылкой на доку.
              Last edited by sersad; 16-11-2016, 08:47.

              Comment

              • max13
                Junior Member
                • Nov 2016
                • 6

                #8
                а можно ссылки по настройке рабочего партицирования?

                Comment

                • sersad
                  Senior Member
                  • May 2009
                  • 518

                  #9
                  max13 моя старая статья https://habrahabr.ru/post/120955/
                  У меня структура БД осталась та же. Только убрал партиции с двух таблиц events и alerts
                  И да таблицы history_log history_str history_text удалил и создал снова по новой схеме, потом разбил их на партиции. Инфа из этих таблиц была мне не нужна, но если нужна можно было сначала сделать дамп, удалить-создать-разбить-залить обратно. Не запуская сервера конечно.
                  Last edited by sersad; 16-11-2016, 08:46.

                  Comment

                  • banzayats
                    Junior Member
                    • Mar 2012
                    • 25

                    #10
                    Originally posted by max13
                    На этих таблица перенастраивали партицирование? есть ссылка как настроено партицирование?у меня таблица events не хочет партицироваться , насколько я понял дело в ней
                    Code:
                    161114 16:43:29 [ERROR] Event Scheduler: [zabbix.e_part_manage] Cannot remove all partitions, use DROP TABLE instead
                    161114 16:43:29 [Note] Event Scheduler: [zabbix.e_part_manage] event execution failed.
                    создаю партиции в ручную
                    Code:
                    mysql> ALTER TABLE `events` PARTITION BY RANGE ( clock) (PARTITION p2016_11 VALUES LESS THAN (UNIX_TIMESTAMP("2016-11-01 00:00:00") div 1) ENGINE = InnoDB);
                    ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
                    по инструкции партицирования , нужно отчистить таблицу и удалить первичный ключ, создать партиции. Когда очищаю таблицу , вылетает гора ошибок, что есть внешние ключи
                    `c_event_tag_1`
                    c_problem_1
                    c_problem_2
                    c_event_recovery_2
                    c_event_recovery_3
                    после удаления которых, можно создать партиции
                    я настраивал по этой статье
                    HTML Code:
                    http://unixadm.info/content/%D1%80%D0%B0%D0%B7%D0%B1%D0%B8%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%B5%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B2-%D0%B1%D0%B4-zabbix-mysql
                    Добрый день.
                    Столкнулся с такой же проблемой:
                    HTML Code:
                    ERROR 1508 (HY000): Cannot remove all partitions, use DROP TABLE instead
                    Как обновились до версии 3.2 - партицирование перестало работать.
                    Может уже есть готовое решение?

                    Comment

                    • NPMGroup
                      Junior Member
                      • Mar 2017
                      • 2

                      #11
                      обновление с 2.4 to 3.2.4

                      Ребят, привет. Производил обновление с версии 2.4 до 3.2.4.
                      При обновлении сталкивался с такой же проблемой, да и не только ей....
                      Мне удалось обновиться след. способом, надеюсь Вам поможет.
                      Стояло готовое решение на базе Suse Linux
                      1. Остановил zabbix-server. Сделал полный бэкап базы на старой машине: mysqldump zabbix | bzip2 -9 > dbzabbix.bz2 и дождался окончания(следил по нагрузке на вирутальную машину)
                      3. С нуля поставил и НАСТРОИЛ под свои нужды новую сборку готового решения 3.2.4 на базе Ubuntu
                      4. (!) Остановил zabbix server на новое машине. ЭТО ВАЖНО!
                      3. С помощью HeidiSQL удалил нативную базу новой сборки(можете использовать любой инструмент) и создал ПУСТУЮ mysql базу utf-8_bin с именем "zabbix"
                      4. Перекинул бэкап базы на новую машину и запустил восстановление bzcat dbzabbix.bz2 | mysql zabbix
                      5. Запускаем zabbix-server и ожидаем завершения обновления. В процессе обновления эта ошибка не будет уходить, наблюдать за процессом обновления можно в логах zabbix сервера(/var/log/zabbix/zabbix_server.log)
                      6. PROFIT
                      Last edited by NPMGroup; 28-03-2017, 08:40.

                      Comment

                      Working...