记一次zabbix的mysql数据库清理
2017-11-24 13:53
246 查看
题外话:公司的测试环境有十几台机器,每台磁盘大小都仅为10G,然后在一台上面安装了zabbix_server,其他几台安装了zabbix_agent。那个server的都是我一个人在使用,所以我回家了一段时间,发现磁盘爆满了。
然后我马上想到是我没设置定时脚本清理。
直接cd到 /var/lib/mysql
的确是history表和history_uint表占用了大部分空间。
我试着去mysql中根据时间删除部分数据。
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
TRUNCATE TABLE 不能用于参与了索引视图的表。
然后我马上想到是我没设置定时脚本清理。
1.)进数据库查看数据存放的目录:
mysql> show variables like '%dir%' ; +-----------------------------------------+----------------------------+ | Variable_name | Value | +-----------------------------------------+----------------------------+ | basedir | /usr/ | | binlog_direct_non_transactional_updates | OFF | | character_sets_dir | /usr/share/mysql/charsets/ | | datadir | /var/lib/mysql/ | | ignore_db_dirs | | | innodb_data_home_dir | | | innodb_log_group_home_dir | ./ | | innodb_max_dirty_pages_pct | 75 | | innodb_max_dirty_pages_pct_lwm | 0 | | innodb_tmpdir | | | innodb_undo_directory | . | | lc_messages_dir | /usr/share/mysql/ | | plugin_dir | /usr/lib64/mysql/plugin/ | | slave_load_tmpdir | /tmp | | tmpdir | /tmp | +-----------------------------------------+----------------------------+
直接cd到 /var/lib/mysql
cd zabbix du -sh *
的确是history表和history_uint表占用了大部分空间。
我试着去mysql中根据时间删除部分数据。
2.)删除数据
操作表时,报错如下:TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。
对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
TRUNCATE TABLE 不能用于参与了索引视图的表。
#使用清理响应的表 mysql >TRUNCATE TABLE tb_name; #释放表空间 mysql > OPTIMIZE TABLE tb_name;
相关文章推荐
- 清理 zabbix 历史数据, 缩减 mysql 空间
- 一次Mysql数据库服务器磁盘空间满引发的写入和同步问题
- Zabbix监控Mysql数据库性能
- Centos6.3下zabbix监控mysql数据库参数
- zabbix历史数据清理
- 一次完整的zabbix监控配置
- Zabbix监控Mysql数据库性能
- Zabbix监控Mysql数据库性能--脚本方式
- Zabbix 检测Mysql数据库的主从同步
- Centos6.3下zabbix监控mysql数据库参数
- Zabbix 检测Mysql数据库的主从同步
- zabbix使用mysql数据库 对表分区
- zabbix优化记一次惨痛的zabbix数据库优化 推荐
- zabbix 使用percona监控mysql数据库
- [ Mariadb ] 记录一次MySQL数据库时区的问题
- zabbix之MySQL数据库的安装
- Linux系统 Zabbix 监控 MySql数据库
- zabbix通过第三方插件percona监控mysql数据库
- 一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例 推荐