はじめに
皆様はじめまして。IT基盤部の馬場田と申します。
主に様々なゲームタイトルやプラットフォーム、オートモーティブ事業等のインフラ運用等を担当しています。
今回のブログでは先日実施したMySQL5.7移行作業の流れについて紹介します。
先日弊社竹内が紹介させていただいたblogの移行作業にフォーカスした内容になります。(https://engineer.dena.com/posts/2020.03/mysql5.7-migration/)
MySQLの移行を予定している方の参考になればと思います。
移行前の構成
移行前の構成としてはMySQL5.1を使っており以下のような構成で運用
していました。
移行の為の準備
MySQL5.7に移行する為にはMySQL5.1と直接レプリケーション構成を組めないのでMySQL5.6も準備する必要があります。
何故組めないかについては過去のblogで解説している為ここでは割愛します。
MySQL5.7とMySQL5.1は直接レプリケーションが組めない理由
その為1サービスにつき3台構築する必要がありました。
- MySQL5.7 新しいMasterになるホスト
- MySQL5.7 新しいSlaveになるホスト
- MySQL5.6 MySQL5.7とMySQL5.1をレプリケーションさせる為のホスト
移行準備後の構成
これで移行の為の第一段階は完了です。
しかしこのままではMySQL5.7とMySQL5.1は直接レプリケーションが組めない為、切り替え後にMySQL5.1が使えなくなってしまいます。
切り替え後には不測の事態で切り戻す事もあり暫くはMySQL5.1も使える状態にしておく必要があります。
その為MySQL5.7移行後にMySQL5.1を使えるように構成変更を実施します。
具体的にはMySQL5.6がMasterになるようにMySQL5.1で
change master
を実行します。
MySQL5.6のホストで実施
show master status\G
*************************** 1. row ***************************
File: mysqld-bin.xxxxx
Position: xxx
Binlog_Do_DB:
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)
exit
show master status
で得た結果からchange master
を実行します。
MySQL5.1のホストで実施
show slave status\G
stop slave;
show slave status\G
reset slave;
CHANGE MASTER TO MASTER_HOST='MySQL5.6host',
MASTER_PORT=3306, MASTER_USER='xxxx',
MASTER_LOG_FILE='File', MASTER_LOG_POS='Position';
show slave status\G
start slave;
show slave status\G
構成変更後の構成
最終的にMySQL5.7への移行
これでMySQL5.7へ移行する為の事前準備が完了です。 そして最後にMySQL5.7へ移行します。 MHA を実行しMySQL5.7をMasterに昇格させます。
最終的な構成
このようにしてMySQL5.7への移行を完了させました。
MHAを実行した段階で旧Masterはレプリケーション構成から外しています。
最後に
このような流れでMySQL5.1からMySQL5.7への移行を完了する事が出来ました。
読者の皆様の参考になればと思います。
最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。