Ad Widget

Collapse

Server upgrade 5.4 - DB error

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • markfree
    Senior Member
    • Apr 2019
    • 868

    #1

    Server upgrade 5.4 - DB error

    I was trying to upgrade my Zabbix Server version from 5.2.6 to 5.4 but hit an error during database upgrade process.

    After noting that version 5.4 needs MariaDB 10.0.37 or higher, I upgraded my DB successfully and started the Zabbix Server upgrade procedure as documented.

    The upgrade failed and logged the error message bellow.

    Code:
    8391:20210517:200012.842 Starting Zabbix Server. Zabbix 5.4.0 (revision 5059e20a75).
    8391:20210517:200012.842 ****** Enabled features ******
    8391:20210517:200012.842 SNMP monitoring: YES
    8391:20210517:200012.842 IPMI monitoring: YES
    8391:20210517:200012.842 Web monitoring: YES
    8391:20210517:200012.842 VMware monitoring: YES
    8391:20210517:200012.842 SMTP authentication: YES
    8391:20210517:200012.842 ODBC: YES
    8391:20210517:200012.842 SSH support: YES
    8391:20210517:200012.843 IPv6 support: YES
    8391:20210517:200012.843 TLS support: YES
    8391:20210517:200012.843 ******************************
    8391:20210517:200012.843 using configuration file: /etc/zabbix/zabbix_server.conf
    8391:20210517:200012.852 current database version (mandatory/optional): 05030069/05030069
    8391:20210517:200012.852 required mandatory version: 05040000
    8391:20210517:200012.852 starting automatic database upgrade
    8391:20210517:200012.910 completed 0% of database upgrade
    8391:20210517:200012.968 completed 1% of database upgrade
    8391:20210517:200013.029 completed 2% of database upgrade
    8391:20210517:200013.093 completed 3% of database upgrade
    8391:20210517:200013.240 completed 4% of database upgrade
    8391:20210517:200013.295 completed 5% of database upgrade
    8391:20210517:200013.349 completed 6% of database upgrade
    8391:20210517:200013.466 completed 7% of database upgrade
    8391:20210517:200013.469 completed 8% of database upgrade
    8391:20210517:200013.503 completed 9% of database upgrade
    8391:20210517:200013.520 completed 10% of database upgrade
    8391:20210517:200013.640 completed 11% of database upgrade
    8391:20210517:200013.657 completed 12% of database upgrade
    8391:20210517:200013.663 completed 13% of database upgrade
    8391:20210517:200013.687 completed 14% of database upgrade
    8391:20210517:200013.758 completed 15% of database upgrade
    8391:20210517:200013.776 completed 16% of database upgrade
    8391:20210517:200013.855 completed 17% of database upgrade
    8391:20210517:200013.946 completed 18% of database upgrade
    8391:20210517:200013.947 completed 19% of database upgrade
    8391:20210517:200013.972 completed 20% of database upgrade
    8391:20210517:200013.998 completed 21% of database upgrade
    8391:20210517:200014.012 completed 22% of database upgrade
    8391:20210517:200014.027 completed 23% of database upgrade
    8391:20210517:200014.056 completed 24% of database upgrade
    8391:20210517:200014.080 completed 25% of database upgrade
    8391:20210517:200014.110 completed 26% of database upgrade
    8391:20210517:200014.117 completed 27% of database upgrade
    8391:20210517:200014.119 completed 28% of database upgrade
    8391:20210517:200014.120 completed 29% of database upgrade
    8391:20210517:200014.172 completed 30% of database upgrade
    8391:20210517:200014.209 completed 31% of database upgrade
    8391:20210517:200014.226 completed 32% of database upgrade
    8391:20210517:200014.304 completed 33% of database upgrade
    8391:20210517:200014.349 completed 34% of database upgrade
    8391:20210517:200014.425 completed 35% of database upgrade
    8391:20210517:200014.451 completed 36% of database upgrade
    8391:20210517:200014.548 completed 37% of database upgrade
    8391:20210517:200014.556 completed 38% of database upgrade
    8391:20210517:200015.035 completed 39% of database upgrade
    8391:20210517:200015.219 completed 40% of database upgrade
    8391:20210517:200015.228 completed 41% of database upgrade
    8391:20210517:200015.229 completed 42% of database upgrade
    8391:20210517:200015.417 completed 43% of database upgrade
    8391:20210517:200015.431 completed 44% of database upgrade
    8391:20210517:200015.436 completed 45% of database upgrade
    8391:20210517:200015.437 completed 46% of database upgrade
    8391:20210517:200015.494 completed 47% of database upgrade
    8391:20210517:200015.564 completed 48% of database upgrade
    8391:20210517:200015.655 completed 49% of database upgrade
    8391:20210517:200015.676 completed 50% of database upgrade
    8391:20210517:200015.706 completed 51% of database upgrade
    8391:20210517:200015.730 completed 52% of database upgrade
    8391:20210517:200015.750 completed 53% of database upgrade
    8391:20210517:200015.768 completed 54% of database upgrade
    8391:20210517:200015.782 completed 55% of database upgrade
    8391:20210517:200015.819 completed 56% of database upgrade
    8391:20210517:200015.950 completed 57% of database upgrade
    8391:20210517:200016.057 completed 58% of database upgrade
    8391:20210517:200016.084 completed 59% of database upgrade
    8391:20210517:200016.096 completed 60% of database upgrade
    8391:20210517:200016.216 completed 61% of database upgrade
    8391:20210517:200016.230 completed 62% of database upgrade
    8391:20210517:200016.313 completed 63% of database upgrade
    8391:20210517:200016.482 completed 64% of database upgrade
    8391:20210517:200016.507 completed 65% of database upgrade
    8391:20210517:200016.522 completed 66% of database upgrade
    8391:20210517:200016.682 completed 67% of database upgrade
    8391:20210517:200016.768 completed 68% of database upgrade
    8391:20210517:200016.771 [Z3005] query failed: [1118] Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs [alter table `config` add `url` varchar(255) default '' not null]
    8391:20210517:200016.771 database upgrade failed
    Current system:

    Zabbix Server 5.2.6
    MariaDB - 10.3.27-MariaDB-0+deb10u1
    Raspbian GNU/Linux 10 (buster)

    Code:
    MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE 'innodb_file%';
    +-----------------------+-------+
    | Variable_name | Value |
    +-----------------------+-------+
    | innodb_file_format | |
    | innodb_file_per_table | ON |
    +-----------------------+-------+
    Code:
    MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE 'innodb%prefix';
    +---------------------+-------+
    | Variable_name | Value |
    +---------------------+-------+
    | innodb_large_prefix | |
    +---------------------+-------+
    Code:
    MariaDB [(none)]> SELECT name,row_format FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME like 'zabbix%';
    +-----------------------------------+------------+
    | name | row_format |
    +-----------------------------------+------------+
    | zabbix/acknowledges | Compact |
    | zabbix/actions | Compact |
    (...)
    | zabbix/config                     | Compact    |
    (...)
    | zabbix/httptest | Dynamic |
    | zabbix/httptest_field | Compact |
    | zabbix/httptest_tag | Dynamic |
    +-----------------------------------+------------+
    Most tables are "Compact" and a few are "Dynamic".

    I'm not sure what's the issue with the DB and could not find more information about it.

    Anyone knows?
    Last edited by markfree; 18-05-2021, 01:44.
  • markfree
    Senior Member
    • Apr 2019
    • 868

    #2
    I've altered all Zabbix DB tables to "Dynamic" format and, after that, Zabbix Server was able to upgrade successfully.

    I'm not sure this is the best approach, but it worked for me. So far everything seems to be working fine and no data is lost.

    I used the script bellow to set all tables as Dynamic.

    Code:
    #!/bin/bash
    # source https://lxadm.com/MySQL:_changing_ROW_FORMAT_to_DYNAMIC_or_COMPRESSED
    
    DATABASE=zabbix
    
    ROW_FORMAT=DYNAMIC
    
    TABLES=$(echo SHOW TABLES | mysql -s $DATABASE)
    
    for TABLE in $TABLES ; do
        echo "ALTER TABLE $TABLE ROW_FORMAT=$ROW_FORMAT;"
        echo "ALTER TABLE $TABLE ROW_FORMAT=$ROW_FORMAT" | mysql $DATABASE
    done
    Last edited by markfree; 18-05-2021, 03:53.

    Comment

    Working...