当我们的zabbix运行时间久了,监控的节点多了,数据信息会增长的很快,想备份里面的数据库时,要浪费大量的时间,zabbix里面最大的表就是历史记录的表了,网上很多人都是写全部清空这些表的数据,其实我们可以按时间来删除里面的历史记录; 里面最大的表是 “history” 和 “history_uint”两个表; zabbix里面的时间是用的时间戳方式记录,我们可以转换一下,然后根据时间戳来删除; 比如要删除2012年的11月25号以前的数据 1、先将标准时间转换为时间戳

# date +%s -d “2012-11-25 00:00:00”
1353772800

2、mysql清理数据

mysql> use zabbix;
mysql> DELETE FROM `history_uint` WHERE `clock` < 1327939201;
mysql> optimize table history_uint;

注:执行过第二行命令之后可能会需要很长的一段时间,中间不要K掉了,否则容易丢失数据的。