|
zabbix数据库优化之数据库优化二
简介
数据库history设置是保存7天。然后如果你没有分区。虽然数据在减少但是表空间不会减少。浪费硬盘空间的同事缓存内的cache部分也没有被释放。分区后可以迁移分区合并分区删除已经没有数据的分区优化表空间优化buffer内存。
一,前期操作
清空表
Truncate table table_name;
导出库
mysqldump -uroot -p -all-databases >zabbix.sql
整理表空间碎片
Alter table tables_name engine=innodb;
二,迁移mysql
1调整升级mysql到5.7 最新的存储过程需要
2调整mysql参数
检测你的参数是不是设置的合理
pt-variable-advisor --source-of-variables vars.vxt
三,分区操作
分区资料链接如下
https://www.zabbix.org/wiki/Docs/howto/mysql_partition
核心部分
DELIMITER $$
CREATE PROCEDURE `partition_maintenance_all`(SCHEMA_NAME VARCHAR(32))
BEGIN
CALL partition_maintenance(SCHEMA_NAME, 'history', 20, 24, 20);
CALL partition_maintenance(SCHEMA_NAME, 'history_log', 20, 24, 20);
CALL partition_maintenance(SCHEMA_NAME, 'history_str', 20, 24, 20);
CALL partition_maintenance(SCHEMA_NAME, 'history_text', 20, 24, 20);
CALL partition_maintenance(SCHEMA_NAME, 'history_uint', 20, 24, 20);
CALL partition_maintenance(SCHEMA_NAME, 'trends', 20, 24, 20);
CALL partition_maintenance(SCHEMA_NAME, 'trends_uint', 20, 24, 20);
END$$
DELIMITER ;
创建分区的存储过程
CALL partition_maintenance(SCHEMA_NAME, 'history', 20, 24, 20);
保留天数20天
时间间隔24小时
创建分区数 例如 保留20天 创建分区数20
时间间隔1小时
创建分区数量 24*20
CALL partition_maintenance(SCHEMA_NAME, ;hisuozy', 20, 1, 22*24): |
|
|