Ad Widget

Collapse

Проблема при обновлении БД с 1.8.6 на 2.0.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • strobil
    Junior Member
    • May 2013
    • 9

    #1

    Проблема при обновлении БД с 1.8.6 на 2.0.

    Добрый день.
    Имеется Zabbix server v1.8.6 (revision 20932) (4 August 2011).

    Был сделан дамп БД и развернут на другом сервере, где установлен Zabbix 2.0.

    Был запущен апдейт стандартным скриптом по пути /usr/share/zabbix-mysql/upgrades/2.0. После запуска он некоторое время работает и завершается с ошибкой.

    Code:
    [root@zabbix 2.0]# ./upgrade -uroot zabbix
     WARNING: backup your database before performing upgrade
    
     This is an UNSUPPORTED Zabbix upgrade script from 1.8 to 2.0 for MySQL
     It does the following things:
      1. Updates indexes that might require changes;
      2. Patches the database from 1.8 schema to 2.0 schema;
      3. Adds 'Disabled' and 'Debug' usergroup if any missing;
      4. Checks for hosts not belonging to any group and adds them to one if any found.
    
     Usage: pass required MySQL parameters to this script (like database, user, password etc).
    
    Continue ? (y/n) y
    Patching the database
    ERROR 1062 (23000) at line 223: Duplicate entry '0' for key 'PRIMARY'
    Failed to patch Zabbix database. Restore from backup
    Кто сталкивалcя с подобной проблемой и знает как ее решить?
    Last edited by strobil; 21-10-2013, 15:26.
  • Vovik
    Junior Member
    • Oct 2013
    • 7

    #2
    С проблемой не сталкивался, но решение, полагаю, кроется в скрипте со строки 223.
    Анализировать сам скрипт пробовали?

    Comment

    • Melanxolik
      Senior Member
      • Nov 2009
      • 174

      #3
      Не понятно что за скрипт, там в обще upgrade.sql их накатываешь на базу и все, к чему все остальные пляски?

      Comment

      • Vovik
        Junior Member
        • Oct 2013
        • 7

        #4
        ERROR 1062 (23000) at line 223: Duplicate entry '0' for key 'PRIMARY' - в этой строке ясно написано, что косяк в 223 строке. Посмотрите, что там, - в 223 строке. Возможно, там неверно сделан цикл, раз минимум два раза повторяется один и тот же ключ, как написано в ошибке.

        Comment

        • strobil
          Junior Member
          • May 2013
          • 9

          #5
          Оказалось проблема в 222-й строке.

          Code:
          SET @graphthemeid = (SELECT MAX(graphthemeid) FROM graph_theme);
          INSERT INTO graph_theme (graphthemeid, description, theme, backgroundcolor, graphcolor, graphbordercolor, gridcolor, maingridcolor, gridbordercolor, textcolor, highlightcolor, leftpercentilecolor, rightpercentilecolor, nonworktimecolor, gridview, legendview)
          VALUES
          (@graphthemeid + 1, 'Dark orange', 'darkorange', '333333', '0A0A0A', '888888', '222222', '4F4F4F', 'EFEFEF', 'DFDFDF', 'FF5500', 'FF5500', 'FF1111', '1F1F1F', 1, 1),
          (@graphthemeid + 2, 'Classic', 'classic', 'F0F0F0', 'FFFFFF', '333333', 'CCCCCC', 'AAAAAA', '000000', '222222', 'AA4444', '11CC11', 'CC1111', 'E0E0E0', 1, 1);
          Запрос
          Code:
          SELECT MAX(graphthemeid) FROM graph_theme
          возращает NULL, соответственно @graphthemeid + 1 не работает. Решение было найдено тут: https://support.zabbix.com/browse/ZB...mment-tabpanel

          Comment

          Working...