dbdeployerをつかって複数バージョンのMySQL検証を楽にしよう
Created
2023/1/26 5:56
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
なにかの役に立てば幸いです。
dbdeployerとはdbdeployerインストール方法dbdeployer利用方法MySQLパッケージの用意dbdeployerでMySQLサンドボックスを起動してみるサンドボックスの削除dbdeployerの便利機能サンドボックス同士で非同期レプリケーションを構築する構築した非同期レプリケーションのサンドボックスに対して同時にクエリを実行する終わりに
dbdeployerとは
複数のバージョンのMySQLを簡単に同時起動したりできるので、バージョン間の際の確認や検証などに非常に役立ちます。
MySQL Sandboxで利用できた機能はほぼ網羅されており、進化して使いやすくなっています。
dbdeployerインストール方法
CentOS7環境での場合追加でパッケージが必要だったので先にインストールしておきます。
Shell
あとは公式ドキュメントにある手順の通りです。
バージョンは2023年1月現在最新の
1.72.0
を指定しました。Shell
公式ドキュメントに記載がありますが、curl経由でスクリプトを実行してインストールすることも可能です。
Shell
dbdeployer利用方法
MySQLパッケージの用意
初回はinitを実行します。するとそのとき最新のMySQLをダウンロードしてくれます。
Shell
ダウンロードされたパッケージは以下のディレクトリに配置されています。
Shell
downloads list
コマンドで取得可能なMySQLバージョン一覧を確認できます。Shell
Shell
上記リストに利用したいバージョンが存在している場合は下記コマンドのように取得可能です。
Shell
利用可能な状態のMySQLのリストを確認します。
最新の8.0.32と、今追加した5.7.34が利用可能であることがわかります。
Shell
先程のリストに存在しないバージョンを利用したい場合、MySQL公式から直接tarをダウンロードしてくれば利用可能です。
例えば5.7の最新である5.7.41はリストになかったので、MySQL公式サイトからダウンロードして展開します。
Shell
これでリストになかった5.7.41も利用可能になりました。
Shell
dbdeployerでMySQLサンドボックスを起動してみる
さっそくMySQL8.0.32を起動してみます。今回は単一ノードで起動してみます。
Shell
deployにはsingle,multiple,replicationの3つがあります。
- single
- 単一のMySQLを1台起動します。
- multiple
- レプリケーションなしで同一バージョンのMySQLを複数起動します。デフォルト台数:3
- replication
- マスター1台、スレーブ2台の合計3台でレプリケーションが構築された状態で起動します。
- オプションによりノード台数増加やマルチマスタ、グループレプリケーションも可能です。
起動済みのサンドボックスは下記のコマンドで確認可能です。無事8.0.32が起動できています。
Shell
起動したサンドボックスには下記のコマンドで接続します。
Shell
無事に接続ができて、バージョン確認のクエリも実行できていることがわかります。
サンドボックスの削除
不要になったサンドボックスは下記のように削除ができます。
まず起動済みのサンドボックス一覧を確認します。
Shell
不要なサンドボックスを指定してdeleteします。これで完了です。
Shell
dbdeployerの便利機能
サンドボックス同士で非同期レプリケーションを構築する
先程deployの説明の際に紹介したdeploy replicationを指定することで、サンドボックス同士をレプリケーション構築済みの状態で起動することが可能です。
Shell
接続する方法は下記のようにそれぞれのサンドボックスに接続可能です。
Shell
構築した非同期レプリケーションのサンドボックスに対して同時にクエリを実行する
それぞれのサンドボックスに毎回接続してクエリを実行するのではなく、まとめて実行する方法が用意されています。
一例をあげると下記のような事が可能です。
- 全台でレプリケーションステータスをチェックする
Shell
- 全台で同一のSQLクエリを実行する
Shell
- マスターDBにだけSQLクエリを実行する
Shell
- スレーブDBにだけSQLクエリを実行する
Shell
終わりに
SRG では一緒に働く仲間を募集しています。
ご興味ありましたらぜひこちらからご連絡ください。