How to speed up migration of Zabbix to TimescaleDB

image







After I successfully migrated Zabbix from MySQL to PostgreSQL in the previous article How to migrate Zabbix from MySQL to PostgreSQL with minimal downtime , it became necessary to take the next step - to migrate the database to TimescaleDB, since for her sake everything was started.







The reader may wonder: why is this article needed if there is a simple and understandable manual ?

But the problem, as in the previous article, is hidden in the downtime. The manual clearly states:







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