Zabbix 5.0 Postgresql history double upgrade

Helló!

Database history tables upgraded:  No

Találtam egy double.sql fájlt, ami talán ezt lenne hivatott megvalósítani, de:

postgres@tarthost:/home/rattila$ psql zabbix <zabbix-install/zabbix-DB-Postgresql-double.sql 
ERROR:  type of inherited column "value_min" must be changed in child tables too
ERROR:  type of inherited column "value" must be changed in child tables too
postgres@tarthost:/home/rattila$

Messze nem értek az adatbázishoz, így kellene a segítség, hogy hogyan lehetne megszüntetni ezt a hibát.
A tábla definíciója:

                                     Table "public.history"
 Column |     Type      | Collation | Nullable | Default | Storage | Stats target | Description 
--------+---------------+-----------+----------+---------+---------+--------------+-------------
 itemid | bigint        |           | not null |         | plain   |              | 
 clock  | integer       |           | not null | 0       | plain   |              | 
 value  | numeric(16,4) |           | not null | 0.0000  | main    |              | 
 ns     | integer       |           | not null | 0       | plain   |              | 
Indexes:
    "history_1" btree (itemid, clock)
Triggers:
    partition_trg BEFORE INSERT ON history FOR EACH ROW EXECUTE FUNCTION trg_partition('day')
Child tables: partitions.history_p2017_11_04,
              partitions.history_p2017_11_05,
              partitions.history_p2017_11_06,
              partitions.history_p2017_11_07,
              partitions.history_p2017_11_08,
              ....sok-sok partíció...
 

Egyébként hogyan lehetne megszabadulni ezektől a régi adatoktól?Bőven elég lenne az idei, esetleg a 2022-es
(léván idén elég keveset futott a Zabbix, mert csak nem rég sikerült visszakalapálnom dec. 25.-ei lebetegedéséből)

Köszönöm!

Hozzászólások

Meglátásom szerint a régi adatokat a legegyszerűbben a futó Zabbix webfelületére belépve fogod tudni kitakarítani.
Pgsql-ből is lehetne kézzel, de csak mazochistáknak ajánlom.

Megosztanád ennek a zabbix-install/zabbix-DB-Postgresql-double.sql  fájlnak a tartalmát?

A Zabbix felületen hogyan tudom kitakarítani?

Az sql fájl tartalma:

rattila@tarthost:~/zabbix-install$ cat zabbix-DB-Postgresql-double.sql 
ALTER TABLE ONLY trends
    ALTER COLUMN value_min TYPE DOUBLE PRECISION,
    ALTER COLUMN value_min SET DEFAULT '0.0000',
    ALTER COLUMN value_avg TYPE DOUBLE PRECISION,
    ALTER COLUMN value_avg SET DEFAULT '0.0000',
    ALTER COLUMN value_max TYPE DOUBLE PRECISION,
    ALTER COLUMN value_max SET DEFAULT '0.0000';
ALTER TABLE ONLY history
    ALTER COLUMN value TYPE DOUBLE PRECISION,
    ALTER COLUMN value SET DEFAULT '0.0000';
rattila@tarthost:~/zabbix-install$

Köszi!

Üdv:
Ruzsi

Nem tudom, hogy van-e benne valami, de az üres táblától még jobban szabadulnék.

Nem hiszem, hogy 2017 novemberében már TimeScaleDB-m lett volna, sőt biztosan nem. Valami más módon volt megoldva.
A TimeScaleDB most sincs fent, mert amikor feltettem, a Zabbix-ban nem látszódott, így most (még) nem kínlódtam vele. Örültem, hogy elindult a PG12-es verziójával és hogy le tudtam menteni a konfiget.

Üdv:
Ruzsi

Vegyetek egy DBA-t mondjuk 3-4 órányi időre, szerintem jobban jártok. Komolyan. Ha nem ér annyit (sacc/kábé 100E Ft), akkor meg fogd meg a pg dokumentációt, és kezdd el tanulmányozni, a db-ről készült dumpot visszatolni egy tesztkörnyezetbe, és ott próbálgatni rajta dolgokat.
Szerintem ha 4-5 napot ha rászánsz (és más munkát/feladatot nem kapsz), akkor a szükséges alapokat össze lehet szedni, utána meg lehet a "játszadozós", tesztre visszatöltött DB-vel szórakozni.

Régi vicc...: Autós bemegy a szerelőhöz, hogy rángat meg csúnya hangja van az autójának. Szerelő felnyitja a motorházat, beindítja, hallgatózik egy picit, majd fog egy csavarhúzót és állít néhány dolgot, majd kér érte 30100 Ft-ot. Az autós visszakérdez, hogy ez a 3100Ft hogy jött ki? Mire a szerelő: 100Ft az, hogy állítottam rajta, és 30000Ft az, hogy tudom, hol és mit kell csinálni.

Abszolút egyetértek zeller kollégával: egy DBA segítségével gyorsabban érnél el eredményt. Persze ha nem sürgős a megoldás és/vagy tanulni akarsz, akkor hajrá. Nem lesz könnyű az út.

Mindezek mellett valami hasonlót kellene lefuttatnod (forrás: https://gitlab.com/alperunal92/zabbix-database-cleanup/-/blob/master/ol…):
Természetesen a 30 napot átírva, ha szükséges. A child táblákat / partíciókat ez nem törli.
 

delete FROM alerts where age(to_timestamp(alerts.clock)) > interval '30 days';

delete FROM acknowledges where age(to_timestamp(acknowledges.clock)) > interval '30 days';

delete FROM events where age(to_timestamp(events.clock)) > interval '30 days';

delete FROM history where age(to_timestamp(history.clock)) > interval '30 days';
delete FROM history_uint where age(to_timestamp(history_uint.clock)) > interval '30 days' ;
delete FROM history_str  where age(to_timestamp(history_str.clock)) > interval '30 days' ;
delete FROM history_text where age(to_timestamp(history_text.clock)) > interval '30 days' ;
delete FROM history_log where age(to_timestamp(history_log.clock)) > interval '30 days' ;

delete FROM trends where age(to_timestamp(trends.clock)) > interval '30 days';
delete FROM trends_uint where age(to_timestamp(trends_uint.clock)) > interval '30 days' ;

Mindezek mellett a régi child táblákat akár dropolhatod is (példa: drop table partitions.history_p2017_11_05). És a korábban linkelt módon a Zabbix history/trends is legyen jól beállítva.

A legfontosabb, hogy legyen mentésed a mostani állapotról!