搜索
首页数据库mysql教程实战Zabbix-Server数据库MySQL的libdata1文件过大

今天我们的zabbix-server机器根空间不够了,我一步步排查结果发现是/var/lib/mysql/下的libdata1文件过大,已经达到了41G。我立即

今天我们的zabbix-server机器根空间不够了,我一步步排查结果发现是/var/lib/mysql/下的libdata1文件过大,已经达到了41G。我立即想到了zabbix的数据库原因,随后百度、谷歌才知道zabbix的数据库他的表模式是共享表空间模式,随着数据增长,ibdata1 越来越大,性能方面会有影响,而且innodb把数据和索引都放在ibdata1下。

共享表空间模式:

InnoDB 默认会将所有的数据库InnoDB引擎的表数据存储在一个共享空间中:ibdata1,这样就感觉不爽,增删数据库的时候,ibdata1文件不会自动收缩,单个数据库的备份也将成为问题。通常只能将数据使用mysqldump 导出,然后再导入解决这个问题。

独立表空间模式:

优点:
1.每个表都有自已独立的表空间。
2.每个表的数据和索引都会存在自已的表空间中。
3.可以实现单表在不同的数据库中移动。
4.空间可以回收(drop/truncate table方式操作表空间不能自动回收)
5.对于使用独立表空间的表,不管怎么删除,表空间的碎片不会太严重的影响性能,而且还有机会处理。
缺点:
单表增加比共享空间方式更大。

结论:
共享表空间在Insert操作上有一些优势,但在其它都没独立表空间表现好,所以我们要改成独立表空间。
当启用独立表空间时,请合理调整一下 innodb_open_files 参数。

下面我们来讲下如何讲zabbix数据库修改成独立表空间模式

1.查看文件大小

[root@localhost ~]#cd /var/lib/mysql

[root@localhost ~]#ls -lh

-rw-rw---- 1 mysql mysql 41G Nov 24 13:31 ibdata1

-rw-rw---- 1 mysql mysql 5.0M Nov 24 13:31 ib_logfile0

-rw-rw---- 1 mysql mysql 5.0M Nov 24 13:31 ib_logfile1

drwx------ 2 mysql mysql 1.8M Nov 24 13:31 zabbix

大家可以看到这是没修改之前的共享表数据空间文件ibdata1大小已经达到了41G

2.清除zabbix数据库历史数据

1)查看哪些表的历史数据比较多

[root@localhost ~]#mysql -uroot -p

mysql > select table_name, (data_length+index_length)/1024/1024 as total_mb, table_rows from information_schema.tables where table_schema='zabbix';

 

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

| table_name            | total_mb      | table_rows |

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

| acknowledges          |    0.06250000 |          0 |

....

| help_items            |    0.04687500 |        103 |

| history              | 1020.00000000 |  123981681 |

| history_log          |    0.04687500 |          0 |

...

| history_text          |    0.04687500 |          0 |

| history_uint          | 3400.98437500 |  34000562 |

| history_uint_sync    |    0.04687500 |          0 |

可以看到history和history_uint这两个表的历史数据最多。

另外就是trends,trends_uint中也存在一些数据。

由于数据量太大,按照普通的方式delete数据的话基本上不太可能。

所以决定直接采用truncate table的方式来快速清空这些表的数据,再使用mysqldump导出数据,删除共享表空间数据文件,重新导入数据。

2)停止相关服务,避免写入数据

[root@localhost ~]#/etc/init.d/zabbix_server stop

[root@localhost ~]#/etc/init.d/httpd stop

3)清空历史数据

[root@localhost ~]#mysql -uroot -p

mysql > use zabbix;

Database changed

 

mysql > truncate table history;

Query OK, 123981681 rows affected (0.23 sec)

 

mysql > optimize table history;

1 row in set (0.02 sec)

 

mysql > truncate table history_uint;

Query OK, 57990562 rows affected (0.12 sec)

mysql > optimize table history_uint;

1 row in set (0.03 sec)

3.备份数据库由于我/下的空间不足所以我挂载了一个NFS过来

[root@localhost ~]#mysqldump -uroot -p zabbix > /data/zabbix.sql

4.停止数据库并删除共享表空间数据文件

1)停止数据库

[root@localhost ~]#/etc/init.d/mysqld stop

2)删除共享表空间数据文件

[root@localhost ~]#cd /var/lib/mysql

[root@localhost ~]#rm -rf ib*


5.增加innodb_file_per_table参数

[root@localhost ~]#vi /etc/my.cnf

在[mysqld]下设置

innodb_file_per_table=1

6.启动mysql

[root@localhost ~]#/etc/init.d/mysqld start

7.查看innodb_file_per_table参数是否生效

[root@localhost ~]#mysql -uroot -p

mysql> show variables like '%per_table%';

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

| Variable_name | Value |

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

| innodb_file_per_table | ON |

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

1 row in set (0.00 sec)


8.重新导入数据库

[root@localhost ~]#mysqldump -uroot -p zabbix

9.最后,恢复相关服务进程

[root@localhost ~]#/etc/init.d/zabbix_server start

[root@localhost ~]#/etc/init.d/httpd start

恢复完服务之后,查看/分区的容量就下去了,,之前是99%,处理完之后变成了12%。可见其成效

 

一些Zabbix相关教程集合:

安装部署分布式监控系统Zabbix 2.06

《安装部署分布式监控系统Zabbix 2.06》

CentOS 6.3下Zabbix安装部署

Zabbix分布式监控系统实践

CentOS 6.3下Zabbix监控apache server-status

CentOS 6.3下Zabbix监控MySQL数据库参数

64位CentOS 6.2下安装Zabbix 2.0.6   

ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里

本文永久更新链接地址:

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
zabbix怎么监控redis内存zabbix怎么监控redis内存Jun 03, 2023 am 10:00 AM

1、导入模板直接下载,通过下面的步骤导入模板:点击configuration->templates>import->导入下载的xml文件。2、客户端key配置在被监控的主机上,打开/etc/zabbix/zabbix_agentd.conf配置文件,在最后一行加入:UserParameter=redis_stats[*],redis-cli-h127.0.0.1-p$1info|grep$2|cut-d:-f2配置完成后通过/etc/init.d/zabbix_agentdre

zabbix如何监控traceroute数据zabbix如何监控traceroute数据May 19, 2023 am 11:10 AM

1.zabbixserver和proxy安装mtrmtr脚本放置到zabbixserver和proxy如下路径:执行chownzabbix:zabbixmtrtrace.shzabbix创建mtrtrace模板:5.将主机关联到模板,zabbix中观察数据:【monitoring】-【latestdata】:

Zabbix 3.0监控网络设备有哪些Zabbix 3.0监控网络设备有哪些Jun 04, 2023 am 08:44 AM

SNMP简介1SNMP概述SNMP发展至今以成为应用最广的网络管理协议,目前应用的版本主要有SNMPv1、SNMPv2c和SNMPv3。各版本之间主要的差异表现在信息的定义、通信协议的操作和安全机制上,同时也出现了SNMP应用的两个扩展远程网络监控RMON(RemoteNetworkMonitoring)和RMON2。从物理层的角度看,使用SNMP对网络进行管理应该包含:网络管理站(NMS)、代理(Agent)、代理服务器(proxy)。NMS能够发生命令,接收通知信息,在网络管理中至少要有一个

Zabbix自定义脚本监控nginx及微信告警的方法Zabbix自定义脚本监控nginx及微信告警的方法May 21, 2023 pm 05:10 PM

项目描述本项目的目的是构建一个能实现微信告警的zabbix监控系统,方便的监控整个NGINX集群,同时能批量的去部署和管理整个集群。项目步骤zabbix服务端(192.168.2.138)安装好zabbixserver,nginx端安装好zabbixagent(192.168.2.58),配置好Nginx负载均衡集群,并打开状态统计。nginx端编写监控脚本,取到nginx的状态。服务端web添加监控项,出图。注册企业微信,配置好微信接口。zabbix服务端添加接口推送脚本,测试接口正常。在we

Java API 开发中使用 Zabbix 进行监控管理Java API 开发中使用 Zabbix 进行监控管理Jun 18, 2023 am 08:25 AM

在JavaAPI开发中,监控管理是非常重要的一部分。为了保证应用程序的稳定性和可靠性,我们需要监控各种指标,如CPU使用率、内存使用率、网络流量等,并及时做出响应。在这种情况下,Zabbix是一个非常优秀的监控工具。Zabbix是一个开放源代码的监控解决方案,可以监控各种参数和服务,包括网络、服务器、应用程序、数据库等。它提供了一个强大的We

zabbix如何配置nginx监控zabbix如何配置nginx监控May 12, 2023 pm 08:31 PM

案例:zabbix配置nginx监控1.修改配置文件vim/usr/local/nginx/conf/nginx.conflocation/nginx_status{stub_status;}说明:nginx_status自定义字段,访问地址(例:192.168.169.131/nginx_status)stub_status固定参数#重启nginx./nginxreload浏览器访问状态说明:ActiveconnectionsNginx正处理的活动链接数个数;重要serverNginx启动到现

zabbix监控Nginx/Tomcat/MySQL的方法zabbix监控Nginx/Tomcat/MySQL的方法May 17, 2023 pm 08:31 PM

zabbix监控nginxa机器:zabbix服务端(192.168.234.128)b机器:zabbix客户端(192.168.234.125)在b机器(zabbix客户端)操作:编辑nginx虚拟主机配置文件:[root@centos~]#vi/etc/nginx/conf.d/default.conf在server{}中添加以下内容:location/nginx_status{stub_statuson;access_logoff;allow127.0.0.1;denyall;}重载ngi

怎么使用zabbix监控多个mysql怎么使用zabbix监控多个mysqlJun 02, 2023 pm 02:25 PM

用到的主要工具:宏(分为模板宏,主机宏,自动发现宏)主机宏格式:$MACRO(直接就可以填值)自动发现宏:#MACRO(需要配合创建的key取值)大体架构1.agent主机—agent主机创建宏变量$MYSQLPORT,宏变量的值为Discoveryrules的自动发现脚本参数2.模板—模板里创建自动发现规则,靠的是自动发现脚本,得到自动发现宏变量。3.监控项–在Discoveryrules里创建监控项,监控项名称和key值里都有自动发

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器