InnoDBストレージエンジンを扱うときにMySQLを再起動したときや、通常とは違うクエリを大量に流し終えた直後でinnodb_
MySQLはバージョン5.
innodb_buffer_poolのdump
メモリ上にあるinnodb_
mysql> SET GLOBAL innodb_buffer_pool_dump_now=ON;
取得後はdatadirの中にib_
というファイルができあがります。これがinnodb_
$ less ib_buffer_pool 4294967294,2402 4294967277,60 4294967277,53 〈省略〉
このib_
mysql> show variables like '%innodb_buffer_pool_dump_pct%'; +-----------------------------+-------+ | Variable_name | Value | +-----------------------------+-------+ | innodb_buffer_pool_dump_pct | 25 | +-----------------------------+-------+ 1 row in set (0.01 sec)
また、innodb_
2022-01-25T01:25:10.468379+09:00 0 [Note] [MY-011944] [InnoDB] Dumping buffer pool(s) to /path/to/ib_buffer_pool
innodb_buffer_poolのload
dumpしたファイルはinnodb_
mysql> SET GLOBAL innodb_buffer_pool_load_now=ON; Query OK, 0 rows affected (0.00 sec)
また、innodb_
loadが完了すると完了したログが出力されます。
2022-11-08T01:09:00.724600+09:00 0 [Note] [MY-011946] [InnoDB] Buffer pool(s) load completed at 221108 1:09:00
dump / loadの状態の確認
innodb_
SHOW STATUSで確認
SHOW STATUSコマンドのInnodb_
mysql> SHOW STATUS LIKE 'Innodb_buffer_pool_%_status'; Query OK, 0 rows affected (0.00 sec) +----------------------------------+------------------------------------+ | Variable_name | Value | +----------------------------------+------------------------------------+ | Innodb_buffer_pool_dump_status | Dumping of buffer pool not started | | Innodb_buffer_pool_load_status | Loaded 1/1582 pages | | Innodb_buffer_pool_resize_status | | +----------------------------------+------------------------------------+ 3 rows in set (0.00 sec)
performance_schemaで確認
performance_
ただし、performance_stage/
のインストゥルメントを有効にする必要があります。詳細なやり方については公式ドキュメントのパフォーマンススキーマを使用したバッファプールのロード進行状況の監視をご確認ください。
mysql> SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED FROM performance_schema.events_stages_history; +-------------------------------+----------------+----------------+ | EVENT_NAME | WORK_COMPLETED | WORK_ESTIMATED | +-------------------------------+----------------+----------------+ | stage/innodb/buffer pool load | 1582 | 1582 | | stage/innodb/buffer pool load | 1582 | 1582 | | stage/innodb/buffer pool load | 1582 | 1582 | | stage/innodb/buffer pool load | 1582 | 1582 | | stage/innodb/buffer pool load | 1582 | 1582 | +-------------------------------+----------------+----------------+
存在しないテーブルスペースidがdumpに書き込まれている場合
存在しないテーブルスペースidがdumpに書き込まれている場合は、エラーとなりloadに失敗します。実際に、ib_
まとめ
今回は、innodb_
より詳細な内容については、公式ドキュメントにも記載があるのでこちらもご参照ください。