关于zabbix表分区讲述(适用于zabbix2.0.x,zabbix2.2.x和zabbix2.4.x)
本文主要介绍了zabbix进行数据库表分区的方法:
步骤:在系统监控中,zabbix已经代替了nagios+cacti,zabbix以其良好的图形展示和高度自定义赢得了很多运维人员的喜爱。但是由于在工作中,zabbix跑的时间过长(我们公司跑了将近3年),web页面经常卡顿,监控数据有时很难插入数据库,且数据库队列经常性卡死,经过查看,发现mysql的数据量高达83G,急需瘦身,于是有了此文。
use zabbix; Alter table history_text drop primary key, add index (id), drop index history_text_2, add index history_text_2 (itemid, id); Alter table history_log drop primary key, add index (id), drop index history_log_2, add index history_log_2 (itemid, id)修改表结构:
创建四大存储过程:
- 分区创建的存储过程:
- 分区删除的存储过程:
- 分区维护的存储过程:
- 分区校验的存储过程:
存储过程的使用:
- 存储过程如果单独使用:CALL partition_maintenance(zabbix, ‘history_uint’, 31, 24, 14);
- 解释:history_uint表最多保存31天的数据,每隔24小时生成一个分区,这次一共生成14个分区
- 可以使用一个存储过程来实现7张表的分区:
- 定时任务,使工作自动化:
01 01 * /opt/software/mysql/bin/mysql -uzabbix -pzabbix zabbix -e “CALL partition_maintenance_all(‘zabbix’);”
原创:graysky