15 升级至扩展范围的数值型值

概览

自Zabbix 5.0起,数值(浮点)数据类型支持大约15位数的精度,范围大约从-1.79E+308到1.79E+308。 旧的数值类型被禁用但仍受支持。截至Zabbix 6.4,它已被废弃,并且从Zabbix 7.0开始,它已被完全移除。

如果您的安装尚未升级以使用扩展范围的数值,以下警告将在报表系统信息中显示: "数据库历史表已升级:否。对旧数值类型的支援已被废弃。请升级到扩展范围的数值"。

在升级到Zabbix 7.0时,以下数据库将自动升级:

  • MySQL
  • PostgreSQL/TimescaleDB(无压缩)
  • Oracle

但是,对于Oracle、旧版MySQL以及大型安装,建议在升级到Zabbix 7.0之前手动升级数据类型。 有关说明,请参阅MySQL, PostgreSQL/TimescaleDB(无压缩)、Oracle

如果使用带有压缩的TimescaleDB,必须在升级到Zabbix 7.0之前手动升级数据库。 有关说明,请参阅TimescaleDB(带压缩)

自Zabbix 7.0起,手动升级表至主键也将升级表以使用双精度数据类型。 有关升级至主键的说明,请参阅数据库升级至主键

MySQL、PostgreSQL/TimescaleDB(无压缩)、Oracle

升级补丁会修改历史和趋势表中的数据列,这些表通常包含大量数据;因此,升级可能需要一些时间才能完成。 确切的估计无法预测,这取决于服务器性能、数据库管理系统配置和版本。 因此,建议首先在生产环境之外测试补丁。 例如,使用MySQL 8.0和PostgreSQL/TimescaleDB 10.5(默认配置),由于高效的算法和之前使用了相同的数据类型(双精度类型,但精度有限),意味着数据本身不需要修改,补丁对于大型表可以即时执行。

在升级到Zabbix 7.0之前,要升级MySQL、PostgreSQL/TimescaleDB(无压缩)或Oracle:

1. 请停止Zabbix Server。

2. 备份您的数据库。

3. 运行适用于您的Zabbix 6.4数据库的相应补丁(SQL文件):

仅运行服务器数据库的脚本。Zabbix Frontend不会从此次升级中受益。

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

如果使用源代码,请参阅Zabbix GIT仓库中的此链接此链接、 或此链接中的Zabbix 6.4补丁。

4. 启动Zabbix Server。

5. 更新或设置$DB['DOUBLE_IEEE754']参数值为true/ui/conf/zabbix.conf.php中。

TimescaleDB(含压缩)

在升级至Zabbix 7.0前,升级TimescaleDB(含压缩):

  1. 在Zabbix前端禁用TimescaleDB压缩

  2. 使用运行时控制重新加载Zabbix服务器配置缓存:zabbix_server -R config_cache_reload

  3. 停止Zabbix服务器。

  4. 备份您的数据库。

  5. 运行适用于TimescaleDB的相应补丁(SQL文件):

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

如果使用源代码,请参阅Zabbix GIT仓库中Zabbix 6.4的PostgreSQL/TimescaleDB补丁。

  1. 启动Zabbix服务器。

  2. /ui/conf/zabbix.conf.php中更新或设置$DB['DOUBLE_IEEE754']参数值为true