15 Actualización a valores numéricos de rango extendido

Descripción general

Desde Zabbix 5.0, el tipo de datos numérico (float) admite una precisión de aproximadamente 15 dígitos y un rango de aproximadamente -1,79E+308 a 1,79E+308. El tipo numérico antiguo se deshabilitó, pero aún se admite. A partir de Zabbix 6.4, quedó obsoleto y, a partir de Zabbix 7.0, se eliminó por completo.

Si su instalación no se actualizó para usar valores numéricos de rango extendido, se muestra la siguiente advertencia en InformesInformación del sistema: "Tablas de historial de la base de datos actualizadas: No. La compatibilidad con el tipo numérico antiguo está obsoleta. Actualice a valores numéricos de rango extendido".

Al actualizar a Zabbix 7.0, las siguientes bases de datos se actualizan automáticamente:

  • MySQL
  • PostgreSQL/TimescaleDB (sin compresión)
  • Oracle

Sin embargo, para Oracle, versiones anteriores de MySQL e instalaciones grandes, se recomienda actualizar el tipo de datos manualmente antes de actualizar a Zabbix 7.0. Para obtener instrucciones, consulte MySQL, PostgreSQL/TimescaleDB (sin compresión), Oracle.

Si usa TimescaleDB con compresión, la base de datos debe actualizarse manualmente antes de actualizar a Zabbix 7.0. Para obtener instrucciones, consulte TimescaleDB (con compresión).

Desde Zabbix 7.0, la actualización manual de las tablas a claves primarias también actualiza las tablas para usar tipos de datos de precisión doble. Para obtener instrucciones sobre cómo actualizar a claves principales, consulte Actualización de la base de datos a claves principales.

MySQL, PostgreSQL/TimescaleDB (sin compresión), Oracle

El parche de actualización altera las columnas de datos de las tablas de historial y tendencias, que normalmente contienen una gran cantidad de datos; por este motivo, la actualización puede tardar un tiempo en completarse. No se puede predecir la estimación exacta y depende del rendimiento del servidor, la configuración y la versión del sistema de administración de bases de datos. Por lo tanto, se recomienda probar primero el parche fuera del entorno de producción. Por ejemplo, con MySQL 8.0 y MariaDB 10.5 (configuración predeterminada), se sabe que el parche se ejecuta instantáneamente para tablas grandes debido al algoritmo eficiente y al hecho de que anteriormente se usaba el mismo tipo doble pero con precisión limitada, lo que significa que no es necesario modificar los datos en sí.

Para actualizar MySQL, PostgreSQL/TimescaleDB (sin compresión) u Oracle antes de actualizar a Zabbix 7.0:

1. Detenga el servidor Zabbix.

2. Realice una copia de seguridad de su base de datos.

3. Ejecute el parche apropiado (archivo SQL) para su base de datos Zabbix 6.4:

Ejecute los scripts solo para la base de datos del servidor. El proxy no se beneficiará de esta actualización.

  • /usr/share/zabbix-sql-scripts/mysql/double.sql
  • /usr/share/zabbix-sql-scripts/postgresql/double.sql (para PostgreSQL/TimescaleDB)
  • /usr/share/zabbix-sql-scripts/oracle/double.sql

Si usa fuentes, consulte la Parche MySQL, PostgreSQL/TimescaleDB, o parche Oracle para Zabbix 6.4 en el repositorio GIT de Zabbix.

4. Inicie el servidor Zabbix.

5. Actualice o configure el valor del parámetro $DB['DOUBLE_IEEE754'] en true en /ui/conf/zabbix.conf.php.

TimescaleDB (con compresión)

Para actualizar TimescaleDB (con compresión) antes de actualizar a Zabbix 7.0:

1. Desactive la compresión de TimescaleDB en la interfaz de Zabbix.

2. Vuelva a cargar la caché de configuración del servidor Zabbix usando el control de tiempo de ejecución: zabbix_server -R config_cache_reload

3. Detenga el servidor Zabbix.

4. Realice una copia de seguridad de su base de datos.

5. Ejecute el parche apropiado (archivo SQL) para TimescaleDB:

  • /usr/share/zabbix-sql-scripts/postgresql/double.sql

Si usa fuentes, consulte el parche PostgreSQL/TimescaleDB para Zabbix 6.4 en el repositorio GIT de Zabbix.

6. Inicie el servidor Zabbix.

7. Actualice o configure el valor del parámetro $DB['DOUBLE_IEEE754'] en true en /ui/conf/zabbix.conf.php.