Чистим историю в базе данных zabbix

Ни для кого не секрет , что со временем база данных zabbix увеличивается. Поэтому покажу вам как ее почистить в базе. Итак, подключаемся любым удобным клиентом к базе mysql и далее по списку.

  1. Останавливаем сервис zabbix
    /etc/init.d/zabbix_server stop
  2. Создаем новую таблицу
    CREATE TABLE history_uint_new LIKE history_uint
  3. Переносим в нее данные за последние N-дней. В моем случае 30 дней.
    INSERT IGNORE INTO history_uint_new SELECT * FROM history_uint WHERE clock > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 day))
    

    У меня при переносе mysql выдал ошибку ERROR 1206 (HY000): The total number of locks exceeds the lock table size. Чтобы это исправить я добавил параметр в конфиге /etc/my.cnf: innodb_buffer_pool_size = 100M. После чего нужено рестартануть сервис.

  4. Переименовываем таблицы
    ALTER TABLE history_uint RENAME history_uint_old
    ALTER TABLE history_uint_new RENAME history_uint
  5. Запускаем сервис
    /etc/init.d/zabbix_server start
  6. Удаляем старую таблицу
    DROP TABLE history_uint_old
  7. Аналогичным образом чистится таблица history

Note: если у вас разрослась база, то можно воспользоваться руководством

Оставить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *