特别提醒:

a、文中测试的Zabbix版本为 3.0.3 。

b、清理数据属于高危操作,请在测试环境中验证后再执行线上操作!!!

1、统计数据库中每个表所占的空间:

  1. mysql> SELECT table_name AS "Tables",
  2.   round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB"
  3.   FROM information_schema.TABLES
  4.   WHERE table_schema = 'zabbixdb'
  5.   ORDER BY (data_length + index_length) DESC;

2、清理zabbix一周之前的历史数据:

  1. !/bin/bash
  2. User="zabbixuser"
  3. Passwd="zabbixpass"
  4. Date=`date -d $(date -d "-7 day" +%Y%m%d) +%s` #取7天之前的时间戳
  5. $(which mysql) -u${User} -p${Passwd} -e "
  6. use zabbixdb;
  7. DELETE FROM history WHERE 'clock' < $Date;
  8. optimize table history;
  9. DELETE FROM history_str WHERE 'clock' < $Date;
  10. optimize table history_str;
  11. DELETE FROM history_uint WHERE 'clock' < $Date;
  12. optimize table history_uint;
  13. DELETE FROM history_text WHERE 'clock' < $Date;
  14. optimize table history_text;
  15. DELETE FROM trends WHERE 'clock' < $Date;
  16. optimize table trends;
  17. DELETE FROM trends_uint WHERE 'clock' < $Date;
  18. optimize table trends_uint;
  19. DELETE FROM events WHERE 'clock' < $Date;
  20. optimize table events;
  21. "

3、添加到系统计划任务:

  1. #remove the zabbix mysql data before 7 day's ago
  2. 0 3 * * 0 /usr/local/script/clearzabbix.sh > /usr/local/script/clearzabbix.log

另:可以使用truncate命令直接清空数据库:

  1. truncate table history;
  2. truncate table history_uint;
  3. truncate table history_str;
  4. truncate table history_text;
  5. truncate table trends;
  6. truncate table trends_uint;
  7. truncate table events;

如果想要删除表的所有数据,truncate语句要比 delete 语句快

因为 truncate 删除了表,然后根据表结构重新建立它,而 delete 删除的是记录,并没有尝试去修改表。

不过truncate命令虽然快,却不像delete命令那样对事务处理是安全的。

因此,如果我们想要执行truncate删除的表正在进行事务处理,这个命令就会产生退出并产生错误信息。

[THE END]

Zabbix历史数据清理的更多相关文章

  1. zabbix监控历史数据清理

    2018/12/24 14:00:57  zabbix监控运行一段时间以后,会留下大量的历史监控数据,zabbix数据库一直在增大:可能会造成系统性能下降,查看历史数据室查询速度缓慢. zabbix里 ...

  2. Zabbix 数据清理

    目录 Zabbix 数据清理的一系列操作 一.问题 二.解决办法 Zabbix 数据清理的一系列操作 基本信息: Zabbix 版本 4.0.9 MySQL 版本 5.5 一.问题 我们将 Zabbi ...

  3. 生产环境zabbix3.2上亿的表数据通过表分区的方式进行历史数据清理

    生产环境zabbix3.2上亿的表数据通过表分区的方式进行历史数据清理 zabbix服务器经常报警io过载,在报警的时候发现是数据库在删除历史数据时耗时较长 数据库积攒了大量的历史数据信息,主要集中在 ...

  4. zabbix历史数据相关表研究

    zabbix历史数据相关表研究 history和trends相关表 history和trends都是存储历史数据的地方.一般是通过监控项(item)配置里.匹配更新监控项(item)和设置HouseK ...

  5. Zabbix 历史数据存储到 Elasticsearch

    Zabbix 历史数据存储到 Elasticsearch Zabbix 3.4.6 版本开始支持历史数据存储到 Elasticsearch, 早就想测试这个功能,最近有个需求需保存 zabbix 的历 ...

  6. Zabbix数据库清理历史数据

    Zabbix清理历史数据 Zabbix是个很好的监控软件,随着公司监控项目越来越多,数据越来越多,zabbix负载重,可能造成系统性能下降. Zabbix里面最大的表就是历史记录表,history,h ...

  7. 清理 zabbix 历史数据, 缩减 mysql 空间

    zabbix 由于历史数据过大, 因此导致磁盘空间暴涨,  下面是结局方法步骤 1. 停止 ZABBIX SERER 操作 [root@gd02-qa-plxt2-nodomain-web-95 ~] ...

  8. zabbix自动清理30天前的数据

    转:http://www.361way.com/delete-zabbix-histroy-data/3826.html zabbix属于一个细度化的监控工具,其入库数据随着细度的增加相应的入库数据量 ...

  9. 通达OA数据库优化方案之_历史数据清理

    整体思路: 1.备份现有系统数据,提供一个可以查询历史的入口(可以查询2015年6月份以前的所有OA产生的流程) 2.删除生产环境中2015年6月份以前的流程 为避免影响考勤,暂定在本月考勤定稿后实施 ...

随机推荐

  1. [转帖]SAP一句话入门:Finacial & Controlling Accounting

    SAP一句话入门:Finacial & Controlling Accounting http://blog.vsharing.com/MilesForce/A621147.html 财务,财 ...

  2. php 生成订单号201807205598981

    php版 /** * 生成唯一订单号 */ public function build_order_no() { $no = date('Ymd').substr(implode(NULL, arra ...

  3. day 7-6 多线程及开启方式

    一. 什么是线程 线程:顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程 ...

  4. js 解决中文乱码的问题

    1.对象 request response 对象setCharacterEncoding=UTF-8 1 <%@ page language="java" contentTy ...

  5. GlusterFS卷的种类

    1.分布卷 在分布式卷中,文件随机扩展到卷中的砖块中. 使用分布式卷,需要扩展存储和冗余不是很重要,或由其他硬件/软件层提供. 创建语法:gluster volume create [transpor ...

  6. bootstrap簡介

    bootstarp是最受歡迎的前端開發框架,可以開發數適用pc.平板電腦和手機的web應用,是基於html.css和javascript.只要學會bootstarp,就代表具有web的開發的中級水準.

  7. 1064 - You have an error in your SQL syntax;

    mysql 1064 错误: SQL语法错误,check the manual that corresponds to your MySQL server version for the right ...

  8. C#/.Net判断是否为周末/节假日

    判断节假日请求的Api:http://tool.bitefu.net/jiari/ /// <summary> /// 判断是不是周末/节假日 /// </summary> / ...

  9. Linux下的好用的编辑软件Remarkable

    Linux下的好用的编辑软件Remarkable最近着手开始学习Linux,就想着找一款好用的编辑器作笔记,在网上爬了些贴选择了Remarkable.官网崩了,有没有梯子,废了好大力气才装好.于是把资 ...

  10. python第三方库 - dateutil

    简介 扩展并增强 datetime 模块的功能.支持 Python 2.3+. 官方文档 : http://labix.org/python-dateutil 安装 两种方法: easy_instal ...