ホームページ データベース 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 的下载地址:请点这里

本文永久更新链接地址:

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

zabbix で Redis メモリを監視する方法 zabbix で Redis メモリを監視する方法 Jun 03, 2023 am 10:00 AM

1. インポート テンプレートを直接ダウンロードし、次の手順に従ってテンプレートをインポートします。 [構成] -> [テンプレート] -> [インポート] -> [ダウンロードした XML ファイルをインポート] をクリックします。 2. 監視対象ホストでクライアント キーを構成し、/etc/zabbix/zabbix_agentd.conf 構成ファイルを開き、最後の行に UserParameter=redis_stats[*],redis-cli-h127.0.0.1-p$1 を追加します。 info |grep$2|cut-d:-f2 設定が完了したら、/etc/init.d/zabbix_agentdre を渡します。

zabbix がtraceroute データを監視する方法 zabbix がtraceroute データを監視する方法 May 19, 2023 am 11:10 AM

1. Zabbixserver とプロキシは mtrmtr スクリプトをインストールし、zabbixserver とプロキシの次のパスに配置します。 chownzabbix:zabbixmtrtrace.shzabbix を実行して mtrtrace テンプレートを作成します。 5. ホストをテンプレートに関連付け、zabbix のデータを観察します。 ]-[最新データ]:

Zabbix 3.0が監視するネットワークデバイスは何ですか? Zabbix 3.0が監視するネットワークデバイスは何ですか? Jun 04, 2023 am 08:44 AM

SNMP の概要 1 SNMP の概要 SNMP は、最も広く使用されるネットワーク管理プロトコルとして開発され、現在適用されているバージョンは主に SNMPv1、SNMPv2c、SNMPv3 です。各バージョンの主な違いは、情報の定義、通信プロトコルの動作、セキュリティ機構にありますが、同時に、SNMP アプリケーションの 2 つの拡張機能であるリモート ネットワーク監視 RMON (Remote Network Monitoring) と RMON2 も登場しました。物理層の観点から見ると、SNMP を使用してネットワークを管理するには、ネットワーク管理ステーション (NMS)、エージェント (エージェント)、およびプロキシ サーバー (プロキシ) を含める必要があります。 NMS はコマンドを生成し、通知情報を受信できます。ネットワーク管理には少なくとも 1 つ必要です。

Zabbix カスタム スクリプトを使用して nginx と WeChat アラームを監視する方法 Zabbix カスタム スクリプトを使用して nginx と WeChat アラームを監視する方法 May 21, 2023 pm 05:10 PM

プロジェクトの説明 このプロジェクトの目的は、WeChat アラームを実装し、NGINX クラスター全体を簡単に監視し、同時にクラスター全体をバッチで展開および管理できる zabbix 監視システムを構築することです。プロジェクトの手順: zabbixserver を zabbix サーバー (192.168.2.138) にインストールし、zabbixagent (192.168.2.58) を nginx 側にインストールし、Nginx ロード バランシング クラスターを構成し、ステータス統計をオンにします。 nginx側でnginxの状態を取得する監視スクリプトを記述します。サーバーサイドWebでは監視項目の追加や映像の出力を行います。エンタープライズ WeChat を登録し、WeChat インターフェイスを構成します。インターフェイスプッシュスクリプトをzabbixサーバーに追加し、インターフェイスが正常であることをテストします。私たちの中で

Java API開発における監視と管理にZabbixを使用する Java API開発における監視と管理にZabbixを使用する Jun 18, 2023 am 08:25 AM

JavaAPI開発において、監視管理は非常に重要な部分です。アプリケーションの安定性と信頼性を確保するには、CPU 使用率、メモリ使用率、ネットワーク トラフィックなどのさまざまな指標を監視し、タイムリーに対応する必要があります。この場合、Zabbix は優れた監視ツールです。 Zabbix は、ネットワーク、サーバー、アプリケーション、データベースなどのさまざまなパラメーターとサービスを監視できるオープンソースの監視ソリューションです。それは強力な私たちを提供します

zabbix を使用して Nginx/Tomcat/MySQL を監視する方法 zabbix を使用して Nginx/Tomcat/MySQL を監視する方法 May 17, 2023 pm 08:31 PM

Zabbix は nginx を監視します a マシン: zabbix サーバー (192.168.234.128) b マシン: zabbix クライアント (192.168.234.125) b マシン (zabbix クライアント) での操作: nginx 仮想ホスト設定ファイルの編集: [root@centos~]#vi/etc/nginx /conf.d/default.conf サーバーに次のコンテンツを追加します。{}: location/nginx_status{stub_statuson;access_logoff;allow127.0.0.1;denyall;}Reload ngi

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 固定パラメータ #Restart nginx./nginxreload ブラウザ アクセス ステータスの説明: ActiveconnectionsNginx はアクティブなリンクの数を処理しています; 現在までに重要な serverNginx が起動しています

zabbix を使用して複数の mysql を監視する方法 zabbix を使用して複数の mysql を監視する方法 Jun 02, 2023 pm 02:25 PM

使用する主なツール: マクロ (テンプレート マクロ、ホスト マクロ、自動検出マクロに分かれています) ホスト マクロの形式: $MACRO (値を直接入力できます) 自動検出マクロ: #MACRO (作成されたキーの値と一致する必要があります) ) 一般構造 1. エージェント ホスト - エージェント ホストは、マクロ変数 $MYSQLPORT を作成します。マクロ変数の値は、Discoveryrules の自動検出スクリプト パラメータです。 2. テンプレート - 自動検出に依存して、テンプレートに自動検出ルールを作成します。スクリプトを使用して自動検出マクロ変数を取得します。 3. 監視項目 – Discoveryrules で監視項目を作成すると、監視項目の名前とキー値が自動的に送信されます。

See all articles