Ad Widget

Collapse

Обновление с 2.0.8 и 2.0.6 до 2.4.5 (БД Oracle)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • deemon87
    Junior Member
    • Oct 2015
    • 15

    #1

    Обновление с 2.0.8 и 2.0.6 до 2.4.5 (БД Oracle)

    Нашел в у себя в записях, может кому-нибудь пригодится.

    У нас при обновлении с 2.0.8 и 2.0.6 до 2.4.5 возникла проблема, при запуске свежесобранного zabbix 2.4.5 процесс обновления заканчивался ошибкой (к сожалению не сохранилось, что за ошибки возникали).

    Решение следующее: необходимо в исходниках поправить несколько строчек и пересобрать zabbix.

    /src/libs/zbxdbupgrade/dbupgrade.c
    Строка 92:
    define ZBX_TYPE_SHORTTEXT_STR "nvarchar2(2048)"
    на
    define ZBX_TYPE_SHORTTEXT_STR "varchar2(2048)"


    /src/libs/zbxdbupgrade/dbupgrade_2010.c
    Строка 172:
    const ZBX_FIELD field = {"expression", "", NULL, NULL, 2048, ZBX_TYPE_CHAR, ZBX_NOTNULL, 0};
    на
    const ZBX_FIELD field = {"expression", "", NULL, NULL, 2000, ZBX_TYPE_CHAR, ZBX_NOTNULL, 0};


    Строка 1544:

    const ZBX_FIELD field = {"label", "", NULL, NULL, 2048, ZBX_TYPE_CHAR, ZBX_NOTNULL, 0};
    на
    const ZBX_FIELD field = {"label", "", NULL, NULL, 2000, ZBX_TYPE_CHAR, ZBX_NOTNULL, 0};


    Строка 1551:
    const ZBX_FIELD field = {"label", "", NULL, NULL, 2048, ZBX_TYPE_CHAR, ZBX_NOTNULL, 0};
    на
    const ZBX_FIELD field = {"label", "", NULL, NULL, 2000, ZBX_TYPE_CHAR, ZBX_NOTNULL, 0};


    /src/libs/zbxdbupgrade/dbupgrade_2030.c
    Строка 891:
    const ZBX_FIELD field = {"error", "", NULL, NULL, 2048, ZBX_TYPE_CHAR, ZBX_NOTNULL, 0};
    на
    const ZBX_FIELD field = {"error", "", NULL, NULL, 2000, ZBX_TYPE_CHAR, ZBX_NOTNULL, 0};


    Строка 946:
    if (2048 < expr_offset && 2048 /* TRIGGER_EXPRESSION_LEN */ < zbx_strlen_utf8(expr))
    на
    if (2000 < expr_offset && 2000 /* TRIGGER_EXPRESSION_LEN */ < zbx_strlen_utf8(expr))


    Строка 1044:
    if (2048 < params_offset && 2048 /* ITEM_PARAM_LEN */ < zbx_strlen_utf8(params))
    на
    if (2000 < params_offset && 2000 /* ITEM_PARAM_LEN */ < zbx_strlen_utf8(params))


    Строка 1113:
    const ZBX_FIELD field = {"url", "", NULL, NULL, 2048, ZBX_TYPE_CHAR, ZBX_NOTNULL, 0};
    на
    const ZBX_FIELD field = {"url", "", NULL, NULL, 2000, ZBX_TYPE_CHAR, ZBX_NOTNULL, 0};
  • Zentarim
    Senior Member
    • Mar 2012
    • 526

    #2
    Originally posted by deemon87
    Нашел в у себя в записях, может кому-нибудь пригодится.

    У нас при обновлении с 2.0.8 и 2.0.6 до 2.4.5 возникла проблема, при запуске свежесобранного zabbix 2.4.5 процесс обновления заканчивался ошибкой (к сожалению не сохранилось, что за ошибки возникали).

    Решение следующее: необходимо в исходниках поправить несколько строчек и пересобрать zabbix.

    /src/libs/zbxdbupgrade/dbupgrade.c
    Строка 92:
    Define zbx_type_shorttext_str "nvarchar2(2048)"
    на
    define zbx_type_shorttext_str "varchar2(2048)"


    /src/libs/zbxdbupgrade/dbupgrade_2010.c
    Строка 172:
    Const zbx_field field = {"expression", "", null, null, 2048, zbx_type_char, zbx_notnull, 0};
    на
    const zbx_field field = {"expression", "", null, null, 2000, zbx_type_char, zbx_notnull, 0};


    Строка 1544:

    Const zbx_field field = {"label", "", null, null, 2048, zbx_type_char, zbx_notnull, 0};
    на
    const zbx_field field = {"label", "", null, null, 2000, zbx_type_char, zbx_notnull, 0};


    Строка 1551:
    Const zbx_field field = {"label", "", null, null, 2048, zbx_type_char, zbx_notnull, 0};
    на
    const zbx_field field = {"label", "", null, null, 2000, zbx_type_char, zbx_notnull, 0};


    /src/libs/zbxdbupgrade/dbupgrade_2030.c
    Строка 891:
    Const zbx_field field = {"error", "", null, null, 2048, zbx_type_char, zbx_notnull, 0};
    на
    const zbx_field field = {"error", "", null, null, 2000, zbx_type_char, zbx_notnull, 0};


    Строка 946:
    If (2048 < expr_offset && 2048 /* trigger_expression_len */ < zbx_strlen_utf8(expr))
    на
    if (2000 < expr_offset && 2000 /* trigger_expression_len */ < zbx_strlen_utf8(expr))


    Строка 1044:
    If (2048 < params_offset && 2048 /* item_param_len */ < zbx_strlen_utf8(params))
    на
    if (2000 < params_offset && 2000 /* item_param_len */ < zbx_strlen_utf8(params))


    Строка 1113:
    Const zbx_field field = {"url", "", null, null, 2048, zbx_type_char, zbx_notnull, 0};
    на
    const zbx_field field = {"url", "", null, null, 2000, zbx_type_char, zbx_notnull, 0};
    Там разве путь обновления не такой:
    2.0 -> 2.2 -> 2.4
    Возможно и-за "прыжка" через версию такое происходит.

    Comment

    • deemon87
      Junior Member
      • Oct 2015
      • 15

      #3
      Originally posted by zentarim
      Там разве путь обновления не такой:
      2.0 -> 2.2 -> 2.4
      Возможно и-за "прыжка" через версию такое происходит.
      Возможно, обновлялись сразу с 2.0

      Comment

      • oitss
        Member
        • Dec 2013
        • 62

        #4
        БД создана не в той кодировке.
        Сделайте select * from nls_database_parameters;

        Last edited by oitss; 22-10-2015, 12:34.

        Comment

        Working...