自Zabbix 5.0起,数值(浮点)数据类型支持大约15位数的精度,范围大约从-1.79E+308到1.79E+308。 旧的数值类型被禁用但仍受支持。截至Zabbix 6.4,它已被废弃,并且从Zabbix 7.0开始,它已被完全移除。
如果您的安装尚未升级以使用扩展范围的数值,以下警告将在报表 → 系统信息中显示: "数据库历史表已升级:否。对旧数值类型的支援已被废弃。请升级到扩展范围的数值"。
在升级到Zabbix 7.0时,以下数据库将自动升级:
但是,对于Oracle、旧版MySQL以及大型安装,建议在升级到Zabbix 7.0之前手动升级数据类型。 有关说明,请参阅MySQL, PostgreSQL/TimescaleDB(无压缩)、Oracle。
如果使用带有压缩的TimescaleDB,必须在升级到Zabbix 7.0之前手动升级数据库。 有关说明,请参阅TimescaleDB(带压缩)。
自Zabbix 7.0起,手动升级表至主键也将升级表以使用双精度数据类型。 有关升级至主键的说明,请参阅数据库升级至主键。
升级补丁会修改历史和趋势表中的数据列,这些表通常包含大量数据;因此,升级可能需要一些时间才能完成。 确切的估计无法预测,这取决于服务器性能、数据库管理系统配置和版本。 因此,建议首先在生产环境之外测试补丁。 例如,使用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
中。
在升级至Zabbix 7.0前,升级TimescaleDB(含压缩):
在Zabbix前端禁用TimescaleDB压缩。
使用运行时控制重新加载Zabbix服务器配置缓存:zabbix_server -R config_cache_reload
停止Zabbix服务器。
备份您的数据库。
运行适用于TimescaleDB的相应补丁(SQL文件):
/usr/share/zabbix-sql-scripts/postgresql/double.sql
如果使用源代码,请参阅Zabbix GIT仓库中Zabbix 6.4的PostgreSQL/TimescaleDB补丁。
启动Zabbix服务器。
在/ui/conf/zabbix.conf.php
中更新或设置$DB['DOUBLE_IEEE754']
参数值为true
。