MySQL DBの肥大化対応
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
目次~
#contents
**概要 [#o4c84dd6]
以下はZABBIXのDBが肥大化した際の対応内容。~
蓄積するデータが多すぎることにより、history.logのサイズが...
**根本対策 [#baae5ac4]
肥大化する原因はデータ量が多すぎることに起因するため、監...
監視間隔は毎分監視していた項目を3〜5分毎、グラフ化するた...
ヒストリの保持期間は、死活監視などはヒストリを7日、トレン...
以上により、容量の増加が目に見えて分かる状況の回避には成...
しかし、肥大化したhistory.logのサイズは変わらないため、こ...
**InnoDB向け対策(ファイル分割) [#w0426e7f]
構築当初より、my.cnfにはinnodb_file_per_tableの設定を行っ...
このため、自動拡張でサイズが増えてしまったhistory.logをど...
**dumpの作成とリストア [#z96dca8e]
一度dumpを取得して、リストアすることでサイズを縮められる...
~
mysqldump -u root -p [DATABASE NAME] > [DumpFileName]
~
出力結果が140GB程度になったため、既存DBを破棄して書き戻し...
~
> dropdatabase [DATABASE NAME];
> create databse [DATABASE NAME];
> grant all privileges on zabbix.* to zabbix@localhost i...
> flush privileges;
> quit
~
次に一応DBの初期内容を展開しておく。~
~
cd /usr/local/src/zabbix
cd create/schema
mysql -u root -p zabbix < mysql.sql
cd ../data
mysql -u root -p zabbix < data.sql
mysql -u root -p zabbix < images_mysql.sql
~
ダンプをリストアする。
~
mysql -u root -p [DATABSE NAME] < [DumpFileName]
~
書き戻したら、230GB越えのサイズに戻ってしまった…~
この方法では解消できないことが分かったため、次の手を考え...
~
**ALTER TABLEによる対処 [#p1485af8]
「ALTER TABLE テーブル名 TYPE=InnoDB;」の書式にて肥大化し...
処理の際に書き出すテンポラリファイルはテーブルサイズに比...
~
mysql> alter table history_log;
~
実行後のサイズは228,885MB。~
あまり変わらなかった。~
~
**OPTIMIZE TABLEによる対処 [#y54a9b44]
次にOPTIMIZE TABLEを試してみる。~
InnoDBにおいてはOPTIMIZE TABLEもALTER TABLEも処理内容は同...
~
mysql> optimize table history_log ;
~
実行後のサイズは227,996MB。~
案の定、あまり変わらなかった。~
NFS上で実行したところ一昼夜かかっており、実行時にはストレ...
~
+----------------------+----------+----------+----------...
| Table | Op | Msg_type | Msg_text...
+----------------------+----------+----------+----------...
| zabbix18.history_log | optimize | note | Table doe...
| zabbix18.history_log | optimize | status | OK ...
+----------------------+----------+----------+----------...
2 rows in set (1 day 22 min 1.41 sec)
# du -sm /database/mysql-data/zabbix18/
228183 /database/mysql-data/zabbix18/
# du -sm /database/mysql-data/zabbix18/
186236 /database/mysql-data/zabbix18/
終了行:
目次~
#contents
**概要 [#o4c84dd6]
以下はZABBIXのDBが肥大化した際の対応内容。~
蓄積するデータが多すぎることにより、history.logのサイズが...
**根本対策 [#baae5ac4]
肥大化する原因はデータ量が多すぎることに起因するため、監...
監視間隔は毎分監視していた項目を3〜5分毎、グラフ化するた...
ヒストリの保持期間は、死活監視などはヒストリを7日、トレン...
以上により、容量の増加が目に見えて分かる状況の回避には成...
しかし、肥大化したhistory.logのサイズは変わらないため、こ...
**InnoDB向け対策(ファイル分割) [#w0426e7f]
構築当初より、my.cnfにはinnodb_file_per_tableの設定を行っ...
このため、自動拡張でサイズが増えてしまったhistory.logをど...
**dumpの作成とリストア [#z96dca8e]
一度dumpを取得して、リストアすることでサイズを縮められる...
~
mysqldump -u root -p [DATABASE NAME] > [DumpFileName]
~
出力結果が140GB程度になったため、既存DBを破棄して書き戻し...
~
> dropdatabase [DATABASE NAME];
> create databse [DATABASE NAME];
> grant all privileges on zabbix.* to zabbix@localhost i...
> flush privileges;
> quit
~
次に一応DBの初期内容を展開しておく。~
~
cd /usr/local/src/zabbix
cd create/schema
mysql -u root -p zabbix < mysql.sql
cd ../data
mysql -u root -p zabbix < data.sql
mysql -u root -p zabbix < images_mysql.sql
~
ダンプをリストアする。
~
mysql -u root -p [DATABSE NAME] < [DumpFileName]
~
書き戻したら、230GB越えのサイズに戻ってしまった…~
この方法では解消できないことが分かったため、次の手を考え...
~
**ALTER TABLEによる対処 [#p1485af8]
「ALTER TABLE テーブル名 TYPE=InnoDB;」の書式にて肥大化し...
処理の際に書き出すテンポラリファイルはテーブルサイズに比...
~
mysql> alter table history_log;
~
実行後のサイズは228,885MB。~
あまり変わらなかった。~
~
**OPTIMIZE TABLEによる対処 [#y54a9b44]
次にOPTIMIZE TABLEを試してみる。~
InnoDBにおいてはOPTIMIZE TABLEもALTER TABLEも処理内容は同...
~
mysql> optimize table history_log ;
~
実行後のサイズは227,996MB。~
案の定、あまり変わらなかった。~
NFS上で実行したところ一昼夜かかっており、実行時にはストレ...
~
+----------------------+----------+----------+----------...
| Table | Op | Msg_type | Msg_text...
+----------------------+----------+----------+----------...
| zabbix18.history_log | optimize | note | Table doe...
| zabbix18.history_log | optimize | status | OK ...
+----------------------+----------+----------+----------...
2 rows in set (1 day 22 min 1.41 sec)
# du -sm /database/mysql-data/zabbix18/
228183 /database/mysql-data/zabbix18/
# du -sm /database/mysql-data/zabbix18/
186236 /database/mysql-data/zabbix18/
ページ名: