清理 zabbix 历史数据, 缩减 mysql 空间
zabbix 由于历史数据过大, 因此导致磁盘空间暴涨, 下面是结局方法步骤
1. 停止 ZABBIX SERER 操作
[root@gd02-qa-plxt2-nodomain-web-95 ~]# killall zabbix_server
[root@gd02-qa-plxt2-nodomain-web-95 ~]# lsof -i:10051
2. 停止 mysql 操作
[root@gd02-qa-plxt2-nodomain-web-96 dbdat]# mysqladmin -u root -p -h 127.0.0.1 shutdown
3. 修改 my.cnf
添加 skip-new 参数, 目标可用缩减 innodb 磁盘空间
4. 重启启动 mysql
/apps/svr/mysql/bin/mysqld_safe --defaults-file=/apps/conf/mysql5.6/my.cnf --ledir=/apps/svr/mysql/bin --basedir=/apps/svr/mysql/ --datadir=/apps/dbdat/mysql5_data --user=apps &
[root@gd02-qa-plxt2-nodomain-web-96 apps]# lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 25527 apps 11u IPv4 29371110 0t0 TCP *:mysql (LISTEN)
5. 分析 history 表
mysql> 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 rows in set (0.00 sec)
mysql> select max(itemid) from history;
+-------------+
| max(itemid) |
+-------------+
| 46582 |
+-------------+
1 row in set (0.00 sec)
mysql> select * from history where itemid=46582 limit 1, 20;
+--------+------------+--------+-----------+
| itemid | clock | value | ns |
+--------+------------+--------+-----------+
| 46582 | 1396361332 | 0.0000 | 81875000 |
| 46582 | 1396361362 | 0.0000 | 768297000 |
| 46582 | 1396361392 | 0.0000 | 656787000 |
| 46582 | 1396361422 | 0.0000 | 665169000 |
| 46582 | 1396361452 | 0.0000 | 973570000 |
| 46582 | 1396361482 | 0.0000 | 625619000 |
| 46582 | 1396361512 | 0.0000 | 292743000 |
| 46582 | 1396361543 | 0.0000 | 340000 |
| 46582 | 1396361572 | 0.0000 | 15651000 |
| 46582 | 1396361602 | 0.0000 | 153264000 |
| 46582 | 1396361632 | 0.0000 | 79316000 |
| 46582 | 1396361662 | 0.0000 | 308107000 |
| 46582 | 1396361692 | 0.0000 | 237146000 |
| 46582 | 1396361722 | 0.0000 | 108810000 |
| 46582 | 1396361752 | 0.0000 | 419398000 |
| 46582 | 1396361782 | 0.0000 | 284113000 |
| 46582 | 1396361812 | 0.0000 | 254230000 |
| 46582 | 1396361842 | 0.0000 | 145938000 |
| 46582 | 1396361872 | 0.0000 | 403163000 |
| 46582 | 1396361902 | 0.3300 | 193302000 |
+--------+------------+--------+-----------+
20 rows in set (0.01 sec)
6. 删除两周前数据方法
取得时间戳, 时间只保留至 2014 3 25 日
[root@gd02-zabbix-db-research api]# date +%s -d "Mar 25, 2014 00:00:00"
1395676800
删除 history, history_unit 表方法
mysql> delete from history where clock < 1395676800;
Query OK, 8961912 rows affected (17 min 22.06 sec)
mysql> delete from history_uint where clock < 1395676800;
Query OK, 7789494 rows affected (21 min 38.02 sec)
尝试对表进行缩减发生故障
mysql> optimize table history_uint;
ERROR 1114 (HY000): The table '#sql-63b7_2d' is full
mysql> quit
Bye
[root@gd02-qa-plxt2-nodomain-web-96 mysql5_data]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 20G 18G 1.3G 94% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
故障原因, 当前 / 下磁盘空间不够.
临时删除 swapfile
[root@gd02-qa-plxt2-nodomain-web-96 /]# swapoff -a
[root@gd02-qa-plxt2-nodomain-web-96 /]# rm -rf swapfile
[root@gd02-qa-plxt2-nodomain-web-96 /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/vda1 20G 15G 3.7G 81% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
原理说明, mysql 执行 optimize 过程中, 生成了临时表见下面文件, mysql 直接吧 history_unit 表复制成临时表再重新改名, 实现空间缩减.
[root@gd02-qa-plxt2-nodomain-web-96 zabbix]# ls *63b7_2e* -lh
-rw-rw---- 1 apps apps 8.5K 04-02 12:04 #sql-63b7_2e.frm
-rw-rw---- 1 apps apps 1.1G 04-02 12:10 #sql-63b7_2e.ibd
再次缩减
mysql> optimize table history_uint;
Query OK, 40496963 rows affected (20 min 0.04 sec)
Records: 40496963 Duplicates: 0 Warnings: 0
mysql> optimize table history;
Query OK, 45998084 rows affected (21 min 54.99 sec)
Records: 45998084 Duplicates: 0 Warnings: 0
7. 缩减前后文件大小比较
缩减前
[root@gd02-qa-plxt2-nodomain-web-96 mysql5_data]# find -size +50M -exec ls -lh {} \;
-rw-rw---- 1 apps apps 80M 04-02 10:29 ./zabbix/events.ibd
-rw-rw---- 1 apps apps 5.1G 04-02 11:44 ./zabbix/history.ibd
-rw-rw---- 1 apps apps 152M 04-02 10:29 ./zabbix/trends.ibd
-rw-rw---- 1 apps apps 4.3G 04-02 11:47 ./zabbix/history_uint.ibd
-rw-rw---- 1 apps apps 328M 04-02 10:29 ./zabbix/trends_uint.ibd
-rw-rw---- 1 apps apps 1.1G 04-02 11:47 ./ibdata1
缩减后
[root@gd02-qa-plxt2-nodomain-web-96 mysql5_data]# find -size +50M -exec ls -lh {} \;
-rw-rw---- 1 apps apps 80M 04-02 10:29 ./zabbix/events.ibd
-rw-rw---- 1 apps apps 3.6G 04-02 13:30 ./zabbix/history.ibd
-rw-rw---- 1 apps apps 152M 04-02 10:29 ./zabbix/trends.ibd
-rw-rw---- 1 apps apps 3.2G 04-02 12:24 ./zabbix/history_uint.ibd
-rw-rw---- 1 apps apps 328M 04-02 10:29 ./zabbix/trends_uint.ibd
-rw-rw---- 1 apps apps 1.1G 04-02 13:30 ./ibdata1
8. 重启启动 zabbix, php, nginx, mysql
新问题出现:
当前 zabbix 进行初始化, 会对 mysql 进行大量数据 r/w 操作
因此可能会发生下面警报, 经过 5 分钟后初始化, 下面报警会自动消除, 不用担心.
Disk I/O is overloaded on gd02-qa-plxt2-nodomain-web-96.vclound.com
Zabbix history syncer processes more than 75% busy
Zabbix timer processes more than 75% busy
清理 zabbix 历史数据, 缩减 mysql 空间的更多相关文章
- Zabbix历史数据清理
特别提醒: a.文中测试的Zabbix版本为 3.0.3 . b.清理数据属于高危操作,请在测试环境中验证后再执行线上操作!!! 1.统计数据库中每个表所占的空间: mysql> SELECT ...
- Zabbix清理历史数据库,缩减表大小
zabbix 由于历史数据过大, 因此导致磁盘空间暴涨, 下面是解决方法步骤: 一.分析数据库: 1. 统计数据库中每个表所占的空间: mysql> SELECT table_name AS ...
- RDS MySQL 空间问题的原因和解决
来源:https://help.aliyun.com/knowledge_detail/41739.html RDS MySQL 空间问题的原因和解决 更新时间:2016-07-22 17:20:14 ...
- linux 磁盘空间扩容 vg(+pv) lv(+空间) lv(缩减磁盘空间)
preFace APP scenario description: 当你未能合理的规划存储时,在后期的维护工作中可能会涉及的存储的 再规划(eg,某一个 or 数个App 对某一个lv 即挂载点写Bi ...
- 权限问题导致zabbix无法监控mysql
说说一个困扰自已两天的问题. 首先是用常规的方法安装上了mysql数据库.做了主从. 在监控从库的时候,发现所有的监控数据库的监控项都获取不到key值 . zabbix server端也不报错.获取到 ...
- zabbix,php,nginx,mysql源码安装 神仙操作
→软件包 mkdir /soft/ cd /soft ♦下载以下软件包 nginx-1.14.2.tar.gz wget http://nginx.org/download/nginx-1.14.2. ...
- zabbix历史数据相关表研究
zabbix历史数据相关表研究 history和trends相关表 history和trends都是存储历史数据的地方.一般是通过监控项(item)配置里.匹配更新监控项(item)和设置HouseK ...
- 使用zabbix监控oracle表空间
0.概述 zabbix是一款极其强大的开源监控工具,下面我分享下zabbix如何监控表空间,跟着这个思路,监控其他项都是类似操作. 前提条件是你已经有了zabbix server和zabbix age ...
- Dynamics 365 CRM Free up storage 清理Dynamics 365 CRM的空间
Dynamics 365 CRM 的空间是要买的. 但是很多情况下用户可以去清理CRM从而达到给空间减重的方法 两大使用DB空间大的功能 1. Audit log 审计记录 审计记录是用来记录各个fi ...
随机推荐
- day06 字典、元组、set的方法及常用操作
今日内容: 1.深浅拷贝 2.元组 3.字典 4.set 1.深浅拷贝 # 1.值拷贝 # 采用赋值的方法进行 # 只会将堆区容器变量与栈区的绑定关系进行复制 # 2.浅拷贝 # 会将堆区与栈区的绑定 ...
- Linux initramfs说明
1.前言 最近在尝试对手头的开发板进行移植,此处记录initramfs挂载的基本流程,记录一下,以备后查.分析时是基于linux3.4.2 2. rootfs的挂载 start_kernel-> ...
- 【intern】最长公共子串、编辑距离、KMP 等
这可能是一个很长的blog…… # from https://blog.csdn.net/justheretobe/article/details/51764587 #!/usr/bin/env py ...
- vue 双向数据绑定的实现学习(二)- 监听器的实现
废话:上一篇https://www.cnblogs.com/adouwt/p/9928278.html 提到了vue实现的基本实现原理:Object.defineProperty() -数据劫持 和 ...
- webpack打包文件
npm init -y//生成package.json npm install webpack webpack-cli --save-dev//安装webpack和webpack-cli根据入口文件. ...
- 高性能伪事务之Lua in Redis
EVAL简介 Redis2.6加入了对Lua脚本的支持.Lua脚本可以被用来扩展Redis的功能,并提供更好的性能. 在<Redis拾遗>中曾经引用了<Redis in Action ...
- java - day008 -final ,static ,访问控制符.
面向对象 封装 类: 模板 对象: 实例 引用,遥控器 构造方法 新建对象时执行 ...
- spring boot正常启动但是访问会找不到“ localhost 的网页”的错误
最近启动springboot项目访问localhost老报找不到网页,找了很久发现yml配置文件中配置了“context.path”,只要在端口号后面加上context.path地址就可以访问了. 如 ...
- 学习笔记_J2EE_Spring(一)_入门
3. Spring概述 3.1. Spring是什么 Spring是一个优秀的高可用的JavaEE轻量级开发框架.提供一站式开发解决方案. 3.2. Spring框架出现的背景 在世 ...
- 设计模式 — 抽象工厂模式(Abstract Factory)
工厂模式已经分析了简单工厂模式和工厂方法模式.并且了解了工厂方法模式去简单工厂模式的延伸,工厂方法模式如果不把工厂类抽象的话,就是简单工厂模式.由前面两个工厂模式可以猜测出抽象工厂模式应该是这两种工厂 ...