Zabbix历史数据处理办法

Zabbix历史数据处理办法

方法一:本想删除某一时间戳之前的历史数据

date "+%s" -d "20150101"

1420041600

SELECT TABLE_NAME AS "Table", round(((data_length + index_length) / 1024 / 1024), 2) AS Size_in_MB FROM information_schema.TABLES  WHERE table_schema = 'zabbix' ORDER BY Size_in_MB DESC LIMIT 10;    

+----------------+------------+

| Table          | Size_in_MB |

+----------------+------------+

| history_uint   |  189699.00 | 

| history        |  111647.00 | 

| trends_uint    |    6322.92 | 

| trends         |    1822.00 | 

| events         |    1252.00 | 

| history_str    |    1044.00 | 

| alerts         |      96.64 | 

| items          |      21.42 | 

| item_discovery |       6.75 | 

| graphs         |       5.19 | 

+----------------+------------+

10 rows in set (14.15 sec)

DELETE FROM `history_uint` WHERE `clock` < 1420041600;

optimize table history_uint;

DELETE FROM `history` WHERE `clock` < 1420041600;

optimize table history;

注:此方法几乎不可行,300G的历史数据执行命令一个多小时还处在等待锁表状态。删除的速度还没一增长的快。

方法二:不保留历史数据快速

一,备份除历史数据的数据库表

 mysqldump -uroot -p'yourpassword' zabbix  --ignore-table=zabbix.history_uint --ignore-table=zabbix.history --ignore-table=zabbix.trends_uint -ignore-table=zabbix.trends --ignore-table=zabbix.events --ignore-table=zabbix.history_str >/data/backup20150626.sql

二,新建数据库

create database zabbix2 character set utf8;

GRANT ALL PRIVILEGES ON zabbix2.* TO 'zabbix'@'localhost' IDENTIFIED BY  'yourpassword'; 

这里是建立的zabbix2数据库,名字可以随意取

三,导入原架构和新数据

mysql -uroot -p'yourpassword' zabbix2 < /root/zabbix-2.4.2/database/mysql/schema.sql 

mysql -uroot -p'yourpassword' zabbix2 < /root/zabbix-2.4.2/database/mysql/images.sql 

mysql -uroot -p'yourpassword' zabbix2 < /root/zabbix-2.4.2/database/mysql/data.sql 

mysql -uroot -p'yourpassword' zabbix2 < /data/backup20150626.sql

如果开始没有剔除上面忽略的4个表,这里上面三行就不需要了。 

四,修改zabbix_server连接数据库配置文件

grep -i DBName /usr/local/zabbix/etc/zabbix_server.conf

#DBName=zabbix

DBName=zabbix2

五,修改zabbix站点zabbix.conf配置文件

grep -i database /var/www/html/conf/zabbix.conf.php

$DB['DATABASE'] = 'zabbix2';

// SCHEMA is relevant only for IBM_DB2 database

六,重启服务

service zabbix_server restart

service mysqld restart(不重启也可)

此方法补充:

如果想看以前的历史数据,只需要2步即可

1,备份一份站点,修改database为老的数据库默认zabbix

2,web浏览器打开连上老数据库的zabbix站点即可查看

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏MYSQL轻松学

一个MySQL死锁的问题分析

两个事务相互等待时,当一个等待时间超过设置的某一阀值时,对其中一个事务进行回滚,另一个事务就能继续执行。一般不需要人为介入,这种方法简单有效,在innodb中,...

3968
来自专栏奇梦博客

CentOS下mysql数据库常用命令总结 MySQL 参数配置

1411
来自专栏菜鸟致敬

【2】My SQL 管理

(备注,请忽略奇奇怪怪的大小写不统一) 启动及关闭 MySQL 服务器 首先,我们需要通过以下命令来检查MySQL服务器是否启动:(centos测试) ps ...

3559
来自专栏Ryan Miao

Ubuntu18.04(linux)安装MySQL

Ubuntu18.04 安装mysql或者mariadb之后,发现普通用户和远程都没有权限连接。

1312
来自专栏跟着阿笨一起玩NET

SqlServer表死锁的解决方法

前些天写一个存储过程,存储过程中使用了事务,后来我把一些代码注释掉来进行调试找错,突然发现一张表被锁住了,原来是创建事务的代码忘记注释掉。本文表锁住了的解决方法...

2961
来自专栏Ken的杂谈

CentOS 7下InfluxDB部署与使用入门

InfluxDB里存储的数据被称为时间序列数据,InfluxDB存储方式跟传统关系型数据库不同的是:传统关系型数据库通过数据库+表+字段组织数据,InfluxD...

6654
来自专栏Laoqi's Linux运维专列

Mysql指令select,update,insert,drop,truncate+MySQL数据库备份恢复

一、select: 1.1 选择db1中mysql库和user表: mysql> use db1 Database changed mysql> select ...

3148
来自专栏帘卷西风的专栏

关于mysql常用时间函数

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) 

732
来自专栏运维技术迷

MySQL中DDL、DML、DCL的那些语句

DDL(data definition language):数据定义语言 DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化...

3938
来自专栏用户2442861的专栏

mysql update,insert常用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

1043

扫码关注云+社区

领取腾讯云代金券