站点图标 江湖人士

Linux系统磁盘空间不足Zabbix服务器数据库迁移

Linux系统磁盘空间不足Zabbix服务器数据库迁移

今天登岸Zabbix,发觉zabbix-server磁盘曾经跨越了80%,发出了告警,如图:

登入办事器一看,利用#ll -Shil发觉以下几个数据表太大了,占用了磁盘空间良多:

上面几个就是数据比力大的表,那么我们重点就是对他们开刀。因为数据量太大,按照通俗的体例delete数据的话根基上不太可能。所以决定间接采用truncate table的体例来快速清空这些表的数据,再利用mysqldump导出数据,删除共享表空间数据文件,从头导入数据。

留意!若是在这一步,你先选择了delete,好比先删除了history_uint里7天之前的数据:

可是你删了半天,发觉数据量太大,这么删太慢了,又想到zabbix还有每小时统计一次的趋向数据,所以想干脆连7天的记实都不要了,于是查找并干掉了delete历程然后改用了truncate,如下:

如许的话,你会发觉truncate的速度很很慢的,就会很奇异。谜底其实不是truncate慢,而是间接死锁了!这个时候若是查看一下线程就会发觉truncate正在期待insert 、select等等锁。

点窜,在[mysqld]添加一句:innodb_file_per_table=1,这是点窜InnoDB为独立表空间模式,每个数据库的每个表城市生成一个数据空间。同时也要点窜数据库存放目次:

这个可能是数据库缓存形成的,这个时候能够在数据库里利用FLUSH TABLES; ,不外这多半会欠好使。

那么这个时候,就去新的mysql目次夹,即/ZabbixDB/DB,然后进入数据库zabbix,发觉这个文件夹有良多文件,可是每一个文件都是既有一个.ibd又有一个.frm的,而这个“globalmacro”是只要ibd而没有.frm的,所以这个时候我们能够先把这个globalmacro.ibd转移到此外处所去,然后从头施行

本站(LinuxIDC)所刊载文章不代表同意其说法或描述,仅为供给更多消息,也不形成任何建议。

退出移动版