免费资源网 – https://freexyz.cn/
由于Zabbix数据库历史数据过大,占用磁盘过多空间,需清理数据并释放空间。
处理 1、查看表占用空间情况 SELECTtable_nameAS “Tables”, round(((data_length + index_length) / 1024 / 1024), 2) “Size in MB” FROMinformation_schema.TABLESWHERE table_schema = zabbix ORDER BY (data_length + index_length) DESC; 2、分析表数据从上面较大的表来看,主要集中在history、history_uint 两张表,而且是存储历史数据。
查看数据表结构查看history_uint和history数据表结构,可以根据clock时间戳来进行数据删除
MariaDB [zabbix]> desc history; +——–+———————+——+—–+———+——-+| Field | Type | Null | Key | Default | Extra | +——–+———————+——+—–+———+——-+ | itemid | bigint(20) unsigned | NO | MUL | NULL | | | clock | int(11) | NO | | 0 | | | value | double(16,4) | NO | | 0.0000 | | | ns | int(11) | NO | | 0 | | +——–+———————+——+—–+———+——-+ 4 rowsinset (0.00 sec) MariaDB [zabbix]> desc history_uint; +——–+———————+——+—–+———+——-+ | Field | Type | Null | Key | Default | Extra |+——–+———————+——+—–+———+——-+| itemid | bigint(20) unsigned | NO | MUL | NULL | | | clock | int(11) | NO | | 0 | | | value | bigint(20) unsigned | NO | | 0 | | | ns | int(11) | NO | | 0 | |+——–+———————+——+—–+———+——-+4 rows in set (0.26 sec) 3、清理表数据准备清理时建议停止zabbix-server服务以免出现其他问题。
获取30天前时间戳 date -d “30 days ago” +%s 按照时间戳删除数据,并优化 delete from history where clock < 1606905274; #这个操作会锁定表,不要经常操作 optimize table history;自动删除历史数据脚本:
#!/bin/bash User=“zabbix”Passwd=“zabbix” #取30天之前的时间戳 Date=`date -d “30 days ago” +%s` $(which MySQL) -u${User} -p${Passwd} -e ” use zabbix; DELETE FROM history WHERE clock <$Date; optimize table history; DELETE FROM history_uint WHERE clock <$Date; optimize table history_uint;
免费资源网 – https://freexyz.cn/
© 版权声明
THE END
暂无评论内容