So beschleunigen Sie die Migration von Zabbix zu TimescaleDB

Bild







Nachdem ich Zabbix im vorherigen Artikel erfolgreich von MySQL nach PostgreSQL migriert hatte. Wie man Zabbix mit minimalen Ausfallzeiten von MySQL nach PostgreSQL migriert , musste der nächste Schritt unternommen werden - seitdem die Datenbank nach TimescaleDB zu migrieren um ihretwillen wurde alles begonnen.







Der Leser mag sich fragen: Warum wird dieser Artikel benötigt, wenn es ein einfaches und verständliches Handbuch gibt ?

Das Problem ist jedoch wie im vorherigen Artikel in der Ausfallzeit verborgen. Das Handbuch besagt eindeutig:







The migration of existing history and trend data may take a lot of time. Zabbix server and frontend must be down for the period of migration.



:









PostgreSQL, PostgreSQL. — 24 CPU, 64 GB RAM. , , . ~350 15 . .







TimescaleDB , "Faster Method":







  • , . , history
  • , ,



    CREATE TABLE history_new (LIKE history INCLUDING DEFAULTS INCLUDING CONSTRAINTS EXCLUDING INDEXES);
          
          







  • SELECT create_hypertable('history_new', 'clock', chunk_interval => 86400);
          
          



  • history history_new



    INSERT INTO history_new SELECT * FROM history;
          
          



  • history



    DROP TABLE IF EXISTS history;
          
          



  • history_new history



    ALTER TABLE IF EXISTS history_new RENAME TO history;
          
          



  • ( — schema.sql)



    CREATE INDEX history_1 in history (itemid,clock);
          
          





:







  • history
  • history_log
  • history_str
  • history_text
  • history_uint
  • trends
  • trends_uint


, .







github .







finish.sql .







TimescaleDB 5 , 15.







PROFIT.








All Articles