Maison base de données tutoriel mysql 实战Zabbix-Server数据库MySQL的libdata1文件过大

实战Zabbix-Server数据库MySQL的libdata1文件过大

Jun 07, 2016 pm 04:42 PM
zabbix

今天我们的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 的下载地址:请点这里

本文永久更新链接地址:

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment surveiller la mémoire Redis dans Zabbix Comment surveiller la mémoire Redis dans Zabbix Jun 03, 2023 am 10:00 AM

1. Téléchargez directement le modèle d'importation et importez le modèle en suivant les étapes suivantes : cliquez sur configuration->modèles>importer->importer le fichier XML téléchargé. 2. Configurez la clé client sur l'hôte surveillé, ouvrez le fichier de configuration /etc/zabbix/zabbix_agentd.conf et ajoutez la dernière ligne : UserParameter=redis_stats[*],redis-cli-h127.0.0.1-p$1 info |grep$2|cut-d:-f2 Une fois la configuration terminée, transmettez /etc/init.d/zabbix_agentdre

Comment Zabbix surveille les données Traceroute Comment Zabbix surveille les données Traceroute May 19, 2023 am 11:10 AM

1. Zabbixserver et proxy installent le script mtrmtr et placez-le dans le chemin suivant de zabbixserver et proxy : exécutez chownzabbix:zabbixmtrtrace.shzabbix pour créer le modèle mtrtrace : 5. Associez l'hôte au modèle et observez les données dans zabbix : [surveillance ]-[dernières données] :

Quels sont les périphériques réseau surveillés par Zabbix 3.0 ? Quels sont les périphériques réseau surveillés par Zabbix 3.0 ? Jun 04, 2023 am 08:44 AM

Introduction à SNMP 1 Présentation de SNMP SNMP s'est développé pour devenir le protocole de gestion de réseau le plus utilisé. Les versions actuellement appliquées incluent principalement SNMPv1, SNMPv2c et SNMPv3. Les principales différences entre les versions résident dans la définition des informations, le fonctionnement des protocoles de communication et le mécanisme de sécurité. Parallèlement, deux extensions des applications SNMP, la surveillance du réseau à distance RMON (Remote Network Monitoring) et RMON2, sont également apparues. Du point de vue de la couche physique, l'utilisation de SNMP pour gérer le réseau doit inclure : une station de gestion de réseau (NMS), un agent (Agent) et un serveur proxy (proxy). NMS peut générer des commandes et recevoir des informations de notification. Il doit y en avoir au moins un dans la gestion du réseau.

Comment utiliser le script personnalisé Zabbix pour surveiller les alarmes nginx et WeChat Comment utiliser le script personnalisé Zabbix pour surveiller les alarmes nginx et WeChat May 21, 2023 pm 05:10 PM

Description du projet Le but de ce projet est de créer un système de surveillance Zabbix capable de mettre en œuvre des alarmes WeChat, de surveiller facilement l'ensemble du cluster NGINX et, en même temps, de déployer et de gérer l'ensemble du cluster par lots. Étapes du projet : installez zabbixserver sur le serveur zabbix (192.168.2.138), installez zabbixagent (192.168.2.58) côté nginx, configurez le cluster d'équilibrage de charge Nginx et activez les statistiques d'état. Écrivez un script de surveillance côté nginx pour obtenir le statut de nginx. Le Web côté serveur ajoute des éléments de surveillance et génère des images. Enregistrez l'entreprise WeChat et configurez l'interface WeChat. Ajoutez le script push d'interface au serveur zabbix et testez que l'interface est normale. en nous

Utilisation de Zabbix pour la surveillance et la gestion dans le développement d'API Java Utilisation de Zabbix pour la surveillance et la gestion dans le développement d'API Java Jun 18, 2023 am 08:25 AM

Dans le développement JavaAPI, la gestion de la surveillance est un élément très important. Afin de garantir la stabilité et la fiabilité de l'application, nous devons surveiller divers indicateurs, tels que l'utilisation du processeur, l'utilisation de la mémoire, le trafic réseau, etc., et réagir en temps opportun. Dans ce cas, Zabbix est un excellent outil de surveillance. Zabbix est une solution de surveillance open source capable de surveiller divers paramètres et services, notamment les réseaux, les serveurs, les applications, les bases de données, etc. Il fournit un puissant Nous

Comment surveiller Nginx/Tomcat/MySQL avec zabbix Comment surveiller Nginx/Tomcat/MySQL avec zabbix May 17, 2023 pm 08:31 PM

Zabbix surveille la machine nginxa : serveur zabbix (192.168.234.128) machine b : client zabbix (192.168.234.125) Opération sur la machine b (client zabbix) : modifier le fichier de configuration de l'hôte virtuel nginx : [root@centos~]#vi/ etc/nginx /conf.d/default.conf Ajoutez le contenu suivant dans le serveur{} : location/nginx_status{stub_statuson;access_logoff;allow127.0.0.1;denyall;}Reload ngi

Comment configurer la surveillance nginx dans Zabbix Comment configurer la surveillance nginx dans Zabbix May 12, 2023 pm 08:31 PM

Cas : zabbix configure la surveillance nginx 1. Modifiez le fichier de configuration vim/usr/local/nginx/conf/nginx.conflocation/nginx_status{stub_status;} Description : champ personnalisé nginx_status, adresse d'accès (exemple : 192.168.169.131/nginx_status) stub_status corrigé Paramètre #Restart nginx./nginxreload Description de l'état d'accès au navigateur : ActiveconnectionsNginx traite le nombre de liens actifs que le serveur Nginx démarre jusqu'à présent ;

Comment utiliser Zabbix pour surveiller plusieurs MySQL Comment utiliser Zabbix pour surveiller plusieurs MySQL Jun 02, 2023 pm 02:25 PM

Les principaux outils utilisés : macros (divisées en macros modèles, macros hôtes et macros découvertes automatiquement) Format de macro hôte : $MACRO (peut renseigner directement la valeur) Macros découvertes automatiquement : #MACRO (doit correspondre à la valeur de la clé créée ) Structure générale 1. Hôte de l'agent : l'hôte de l'agent crée la variable de macro $MYSQLPORT. La valeur de la variable de macro est le paramètre de script de découverte automatique de Discoveryrules. 2. Modèle : créez des règles de découverte automatique dans le modèle, en s'appuyant sur la découverte automatique. script pour obtenir la variable de macro de découverte automatique. 3. Éléments de surveillance – Créez des éléments de surveillance dans Discoveryrules. Les noms et valeurs clés des éléments de surveillance sont automatiquement envoyés.

See all articles