考えただけでも恐ろしいが考えてみる。どれくらいのダウンがありそうだろうか。ざっと考えると1~4までは大体決まった作業になりそう。ただ問題は5でこれを焦りながらやるのはメンタルやられそうだなぁと思った。いやーそうならないようにしよう。
1. シャットダウン処理
永続化処理とかをしたりする。buffer poolが大きければまあ時間がかかる
2. アップデート処理
バイナリの置き換えやmysql_upgradeを打ったりする。システムテーブルのアップグレードやインデックスの再構築、テーブルチェックをしたりする。
3. 起動処理
buffer poolを復元したりで時間がかかる。innodb_buffer_pool_dump_pct
とかを設定しておけばある程度はコントロールできる。
4. 暖機
buffer poolを復元したとしてもそれは終了処理の時の内容なのでサービス特性に合わせた形で暖機が必要だったりするのでそれをやる
5. エラー対応
クライアントがそのままアップデート後のMySQLに対応していれば良いがそうではない場合もある。その時は地道にエラーを消していく必要がある。事前にアップデートに関する情報を調べておければ良いがそれすらもしてない場合はとても大変なことになりそう。
感想
大変だ