こんにちは,
これまでのあらすじ
将来的な技術負債を残さない,
そのパート1である前回は,
- Tritonnとmroongaそれぞれの紹介と移行時の要注意点
- 現在利用できる日本語全文検索ソリューションの比較
- ストレージエンジンをMyISAMからmroongaへ移行する際に気をつけたいAuto Incrementの挙動の違い
今回の流れ
Tritonnからmroongaへの移行はもちろんのこと,
今回はその壁を乗り越え,
MySQL 5.0からMySQL 5.6へのデータマイグレーション(事前準備編)
移行対象のサーバ構成
移行対象のサーバ構成は次の図の通り,
これらは,
移行の進め方とサーバ構成
既にTritonnで稼働中のシステムをmroongaへ移行するわけですから,
そこで,
今回の記事では第1段階のステップ5,
第1段階
MySQL 5.
具体的には次のように,
- プロダクション環境のスレーブを複製し,
MySQL 5. 0用の作業サーバを用意する - MySQL 5.
0用の作業サーバから, Tritonn依存のFULLTEXTインデックスを除去する - Tritonn依存の無くなったMySQLのダンプデータをMySQL 5.
6へ流し込む - 更新クエリをTritonn・
mroonga互換の実装にする - 既存のMySQL 5.
0レプリケーション構成に, ダンプデータの流し込まれたMySQL 5. 6をスレーブとして追加する - MySQL 5.
6スレーブにmroongaをインストールし, mroongaを用いたフルテキスト検索対応のスキーマに更新する
第2段階
MySQL 5.
具体的には次のような細かいタスクとなります。
- MySQL 5.
6スレーブをの配下に, MySQL 5. 6の孫スレーブを作る - 準同期レプリケーションの設定をMySQL 5.
6のレプリケーションマスタ・ スレーブに行う - 参照クエリ稼働試験として,
影響範囲と時間を限定した上で部分的にプロダクション環境へ投入する - プロダクション環境からの参照クエリを,
MySQL 5. 6スレーブに完全に切り替える
第3段階
プログラムから利用するサーバを,
具体的にはこのような細かいタスクとなります。
- 更新系クエリを止めるため,
サイトをメンテナンス画面に切り替えてオフラインにする - MySQL 5.
6にバイナリログがすべて到達していることを確認した後に, レプリケーションから切り離す - MySQL 5.
6のレプリケーションマスタに更新クエリが直接発行されるアプリケーションをデプロイする
この段階的移行手法をとる場合の注意として,
具体的にはFULLTEXTインデックスへ作用するCREATE TABLEやALTER TABLEといったスキーマを修正するクエリが対象となります。例えば,