私はinnodb_file_per_tableを設定しており、800Mテーブルにいくつかの変更を加えて約600Mに減らしたところ、今日のibdata1ファイルが59Mから323Mにジャンプしました。その特定のテーブルの.ibdファイルは削減されましたが、サーバーのibdata1ファイルはおかしくなりました。何か案は?
これは意外なことかもしれませんが、ibdata1にはいくつかの可動部分があることをご存知ですか? innodb_file_per_table を有効にしても、ibdata1に格納されている情報のクラス
Ibdata1を突然成長させるものは何ですか?
mysqlperformanceblog.comのReasons for run-away main Innodb Tablespace
によると:
InnoDBデータセットの合計が比較的小さく、ibdata1を縮小したい限り、次のことを実行できます。
ステップ01:ダウンタイムをスケジュールする
ステップ02:mysqldumpはすべてのデータベースを/root/MySQLData.sqlに保存します
mysqldump -uroot -p --all-databases --routines --triggers > /root/MySQLData.sql
ステップ03:SET GLOBAL innodb_fast_shutdown = 0;
を実行します
ステップ04:mysql
およびinformation_schema
データベースを除くすべてのデータベースを削除します
ステップ05:service mysql stop
ステップ06:rm -f /var/lib/mysql/ib*
ステップ07:service mysql start
(ibdata1、ib_logfile0、ib_logfile1を再作成します)
ステップ08:mysqlにログインする
ステップ09:mysqlプロンプトでmysql> source /root/MySQLData.sql
を実行します
それでおしまい。私はこれを何度も繰り返してきました: 方法:mysql InnoDBストレージエンジンをクリーンアップしますか?
ここからは、取引による奇妙な成長に耐えなければなりません。
試してみる !!!