15 Upgrade auf numerische Werte mit erweitertem Bereich

Übersicht

Seit Zabbix 5.0 unterstützt der numerische Datentyp (float) eine Genauigkeit von ungefähr 15 Stellen und einen Bereich von ungefähr -1.79E+308 bis 1.79E+308. Der alte numerische Typ war deaktiviert, wurde aber weiterhin unterstützt. Ab Zabbix 6.4 war er veraltet, und ab Zabbix 7.0 wurde er vollständig entfernt.

Wenn Ihre Installation nicht auf die Verwendung numerischer Werte mit erweitertem Bereich aktualisiert wurde, wird in BerichteSysteminformationen die folgende Warnung angezeigt: "Database history tables upgraded: No. Support for the old numeric type is deprecated. Please upgrade to numeric values of extended range".

Beim Upgrade auf Zabbix 7.0 werden die folgenden Datenbanken automatisch aktualisiert:

  • MySQL
  • PostgreSQL/TimescaleDB (ohne Komprimierung)
  • Oracle

Für Oracle, ältere MySQL-Versionen und große Installationen wird jedoch empfohlen, den Datentyp vor dem Upgrade auf Zabbix 7.0 manuell zu aktualisieren. Anweisungen finden Sie unter MySQL, PostgreSQL/TimescaleDB (ohne Komprimierung), Oracle.

Wenn TimescaleDB mit Komprimierung verwendet wird, muss die Datenbank manuell vor dem Upgrade auf Zabbix 7.0 aktualisiert werden. Anweisungen finden Sie unter TimescaleDB (mit Komprimierung).

Seit Zabbix 7.0 werden Tabellen beim manuellen Upgrade auf Primärschlüssel auch auf die Verwendung von Datentypen mit doppelter Genauigkeit aktualisiert. Anweisungen zum Upgrade auf Primärschlüssel finden Sie unter Datenbank-Upgrade auf Primärschlüssel.

MySQL, PostgreSQL/TimescaleDB (ohne Komprimierung), Oracle

Der Upgrade-Patch ändert Daten-Spalten der Tabellen history und trends, die in der Regel viele Daten enthalten; aus diesem Grund kann das Upgrade einige Zeit in Anspruch nehmen, bis es abgeschlossen ist. Die genaue Dauer lässt sich nicht vorhersagen und hängt von der Serverleistung, der Konfiguration und Version des Datenbankmanagementsystems ab. Daher wird empfohlen, den Patch zunächst außerhalb der Produktionsumgebung zu testen. Beispielsweise ist bei MySQL 8.0 und MariaDB 10.5 (Standardkonfiguration) bekannt, dass der Patch für große Tabellen sofort ausgeführt wird, da ein effizienter Algorithmus verwendet wird und zuvor derselbe double-Typ mit eingeschränkter Genauigkeit verwendet wurde, sodass die Daten selbst nicht geändert werden müssen.

Um MySQL, PostgreSQL/TimescaleDB (ohne Komprimierung) oder Oracle vor dem Upgrade auf Zabbix 7.0 zu aktualisieren:

1. Stoppen Sie den Zabbix server.

2. Sichern Sie Ihre Datenbank.

3. Führen Sie den passenden Patch (SQL-Datei) für Ihre Zabbix 6.4-Datenbank aus:

Führen Sie die Skripte nur für die Server-Datenbank aus. Der Proxy profitiert nicht von diesem Upgrade.

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

Bei Verwendung der Quelltexte finden Sie den Patch für Zabbix 6.4 für MySQL, PostgreSQL/TimescaleDB oder Oracle im Zabbix-GIT-Repository.

4. Starten Sie den Zabbix server.

5. Aktualisieren Sie den Wert des Parameters $DB['DOUBLE_IEEE754'] auf true in /ui/conf/zabbix.conf.php.

TimescaleDB (mit Komprimierung)

Um TimescaleDB (mit Komprimierung) vor dem Upgrade auf Zabbix 7.0 zu aktualisieren:

1. Deaktivieren Sie die TimescaleDB-Komprimierung im Zabbix Frontend.

2. Laden Sie den Konfigurationscache des Zabbix Servers mithilfe der Laufzeitsteuerung neu: zabbix_server -R config_cache_reload

3. Stoppen Sie den Zabbix Server.

4. Sichern Sie Ihre Datenbank.

5. Führen Sie den passenden Patch (SQL-Datei) für TimescaleDB aus:

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

Wenn Sie die Quellen verwenden, siehe den Patch PostgreSQL/TimescaleDB für Zabbix 6.4 im Zabbix GIT-Repository.

6. Starten Sie den Zabbix Server.

7. Aktualisieren Sie den Wert des Parameters $DB['DOUBLE_IEEE754'] auf true oder setzen Sie ihn in /ui/conf/zabbix.conf.php.