Ad Widget

Collapse

Problema na migração de versão 5.0 para 5.4

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • RomeroSantos
    Junior Member
    • Dec 2019
    • 2

    #1

    Problema na migração de versão 5.0 para 5.4

    Pessoal realizei a atualização de versão do meu zabbix da versão 5.0 para versão 5.4, porém ao consultar o log da atualização esta apresentando uma mensagem de erro:

    Ao consultar o log do zabbix com esse comando: (cat /var/log/zabbix/zabbix_server.log | grep database)

    695:20211015:144339.731 current database version (mandatory/optional): 05000000/05000002
    695:20211015:144339.731 starting automatic database upgrade
    695:20211015:144339.732 database upgrade failed

    Esta apresentando essa mensagem.

    Ao consultar o log do sql, (vim /var/log/mysql/error.log)

    2021-10-15 14:43:39 95 [ERROR] InnoDB: Cannot add field `saml_idp_entityid` in table `zabbix`.`config` because after adding it, the row size is 8192 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page.


    Não localizei nenhum forum de suporte para essa mensagem.
  • mfortes
    Senior Member
    • Oct 2019
    • 416

    #2
    Amigo, tente isso:

    Diagnose and fix 'Row size too large' errors in InnoDB, usually caused by exceeding the maximum row size, by changing row formats to DYNAMIC or adjusting column data types.


    Solving the Problem


    There are several potential solutions available to solve this problem.
    Converting the Table to the DYNAMIC Row Format


    If the table is using either the REDUNDANT or the COMPACT row format, then one potential solution to this problem is to convert the table to use the DYNAMIC row format instead.

    If your tables were originally created on an older version of MariaDB or MySQL, then your table may be using one of InnoDB's older row formats:
    • In MariaDB 10.1 and before, and in MySQL 5.6 and before, the COMPACT row format was the default row format.
    • In MySQL 4.1 and before, the REDUNDANT row format was the default row format.

    The DYNAMIC row format can store more data on overflow pages than these older row formats, so this row format may actually be able to store the table's data safely. See InnoDB DYNAMIC Row Format: Overflow Pages with the DYNAMIC Row Format for more information.

    Therefore, a potential solution to the Row size too large error is to convert the table to use the DYNAMIC row format. For example:

    ALTER TABLE tab ROW_FORMAT=DYNAMIC;
    You can use the INNODB_SYS_TABLES table in the information_schema database to find all tables that use the REDUNDANT or the COMPACT row formats. This is helpful if you would like to convert all of your tables that you still use the older row formats to the DYNAMIC row format. For example, the following query can find those tables, while excluding InnoDB's internal system tables:

    SELECT NAME, ROW_FORMAT FROM information_schema.INNODB_SYS_TABLES WHERE ROW_FORMAT IN('Redundant', 'Compact') AND NAME NOT IN('SYS_DATAFILES', 'SYS_FOREIGN', 'SYS_FOREIGN_COLS', 'SYS_TABLESPACES', 'SYS_VIRTUAL', 'SYS_ZIP_DICT', 'SYS_ZIP_DICT_COLS');
    In MariaDB 10.2 and later, the DYNAMIC row format is the default row format. If your tables were originally created on one of these newer versions, then they may already be using this row format. In that case, you may need to try the next solution.


    Michael R. Fortes

    Linkedin: Mike Fortes
    Medium: mromeiro-f

    Comment


    • RomeroSantos
      RomeroSantos commented
      Editing a comment
      Resolvido, alterei essa tabela que estava dando o erro e mais duas para DYNAMIC
Working...