zabbix 清理歷史數據

    項目上線不到一個月,zabbix數據居然快100G,監控項太多,數據量太大,zabbix負載重,暫時不想升級硬件,只好內部挖掘下,清除下歷史數據;一般保留1個月的數據,zabbix這個項目只是做監控報警用,數據保留太多沒太大參考意義;

    一般都是這幾個表太大, history, history_uint,history_log,有的直接了當直接清空表,簡潔方便,不過要是有人需要參考數據,那還蠻尷尬的;有的做一個獨立分表,做存儲過程,蠻高效,不過項目不一樣只做簡單監控不必那麼麻煩;

套路都一樣:停掉zabbix,mysql添加skip new以便於刪除數據後壓縮存儲空間,截取需要清除的時間點:

root@Testl]$ date +%s -d"20160929"

1475078400

mysql> delete from history where clock<1475078400;

Query OK, 36093 rows affected (43.64 sec)

 

mysql> delete from history_uint whereclock < 1475078400;

Query OK, 21501392 rows affected (25 min51.48 sec)

 

mysql> optimize table history;

Query OK, 12175692 rows affected (5 min9.16 sec)

Records: 12175692  Duplicates: 0 Warnings: 0

 

mysql> optimize table history_uint;

Query OK, 145195609 rows affected (54 min29.07 sec)

Records: 145195609  Duplicates: 0 Warnings: 0

漫長時間等待以後看下效果:

原來數據:

-rw-rw---- 1 mysql mysql 1.4G Oct 28 13:23history.ibd

-rw-rw---- 1 mysql mysql  12M Oct 28 13:23 items.ibd

-rw-rw---- 1 mysql mysql  96M Oct 28 13:23 events.ibd

-rw-rw---- 1 mysql mysql  17G Oct 28 13:23 history_uint.ibd

-rw-rw---- 1 mysql mysql  56G Oct 28 13:23 history_log.ibd

-rw-rw---- 1 mysql mysql 252M Oct 28 13:23 trends_uint.ibd

-rw-rw---- 1 mysql mysql  72M Oct 28 13:23 trends.ibd

-rw-rw---- 1 mysql mysql 112K Oct 28 13:59sessions.ibd

壓縮中:

縮進過程生成/#sql-5f11_3.ibd文件,作業完畢就是history_uint.ibd文件;

find -size +50M -exec ls -lh {} \;

-rw-rw---- 1 mysql mysql 960M Oct 28 14:42./history.ibd

-rw-rw---- 1 mysql mysql 9.2G Oct 28 15:31./#sql-5f11_3.ibd

-rw-rw---- 1 mysql mysql 56G Oct 28 13:23./history_log.ibd

-rw-rw---- 1 mysql mysql 96M Oct 28 13:23 ./events.ibd

-rw-rw---- 1 mysql mysql 252M Oct 28 13:23./trends_uint.ibd

-rw-rw---- 1 mysql mysql 72M Oct 28 13:23./trends.ibd

-rw-rw---- 1 mysql mysql 17G Oct 28 14:59./history_uint.ibd

最終刪兩個表以後數據:

zabbix]$ find -size +50M -execls -lh {} \;

-rw-rw---- 1 mysql mysql 960M Oct 28 15:42./history.ibd

-rw-rw---- 1 mysql mysql 56G Oct 28 15:42./history_log.ibd

-rw-rw---- 1 mysql mysql 96M Oct 28 15:42./events.ibd

-rw-rw---- 1 mysql mysql 252M Oct 28 15:41./trends_uint.ibd

-rw-rw---- 1 mysql mysql 72M Oct 28 15:41./trends.ibd

-rw-rw---- 1 mysql mysql 11G Oct 28 15:42./history_uint.ibd

完了以後,重啓mysqlzabbixnginx試試;

看着history_log那麼大好憂傷,準備truncate掉。以後可以做個腳本,每月定期執行刪除記錄;

原文鏈接:http://xpu2001.blog.51cto.com/890980/1866927

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章