Cómo acelerar la migración de Zabbix a TimescaleDB

imagen







Después de migrar con éxito Zabbix de MySQL a PostgreSQL en el artículo anterior Cómo migrar Zabbix de MySQL a PostgreSQL con un tiempo de inactividad mínimo , se hizo necesario dar el siguiente paso: migrar la base de datos a TimescaleDB, ya que por ella todo se puso en marcha.







El lector puede preguntarse: ¿por qué es necesario este artículo si existe un manual simple y comprensible ?

Pero el problema, como en el artículo anterior, está oculto en el tiempo de inactividad. El manual dice claramente:







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