スマートスタイル TECH BLOG

データベース&クラウド技術情報

MySQL 8.0.13 で追加された、 Group Replication の UDF を使ってみる その1

オンラインで Group Replication の設定が変更できる3つの新機能

  1. Changing a Group’s Primary Member
  2. Changing a Group’s Mode
  3. Using Group Replication Group Write Consensus

今回は、1. Changing a Group’s Primary Member を検証してみたいと思います

Changing a Group’s Primary Member とは

シングル・プライマリモードで稼働している Group Replication の、プライマリ・メンバーを任意のメンバーに切り替えることができる機能です

環境

OS・MySQL バージョン

  バージョン
OS Oracle Linux Server release 7.5
MySQL 8.0.13 MySQL Community Server – GPL

Group Replication 情報(MySQL InnoDB Cluster 環境で検証しています)

現時点では、 k-cluster01 がプライマリ・メンバーとなっています

検証1

プライマリ・メンバーを “k-cluster02” にしてみます

1.group_replication_set_as_primary() を実行します
“k-cluster02″の mysql_server_uuid は、上記の MEMBER_ID より、 4de92bb9-dd76-11e8-9ebc-000c297a6f76 ということがわかりますので、group_replication_set_as_primary() は 4de92bb9-dd76-11e8-9ebc-000c297a6f76 を引数として実行します

2.確認してみます

“k-cluster02” が プライマリ・メンバーとなり、切り替わっていることが確認できます

検証2

クライアント(MySQL Router)が接続中に、プライマリ・メンバーが切り替わった場合

1.Read/Writeの接続ポートである、 6446 ポートに接続し、接続したホスト名を確認します

2.プライマリ・メンバーを “k-cluster03” にしてみます

3.クライアントの接続ホスト名を再確認してみます

接続先のメンバーが変更されているために、一度コネクションが切れますが、再コネクションすることで、新プライマリ・メンバーに接続していることがわかります

まとめ

hostnameやinstance_nameを指定して切り替えることができないのは、少し残念なところではありますが、非常に簡単にプライマリ・メンバーを切り替えることができました
これまでは、メンテナンス等でプライマリ・メンバーを切り替える際には、旧プライマリ・メンバーの MySQL を停止する必要がありましたが、この UDF を使用することにより、任意のメンバーに簡単に切り替えることが可能になります
また、記事中では確認処理を記載していないのですが、プライマリ・メンバーを切り替えると、read_only, super_read_only パラメータの値も、きちんと切り替わっていました


MySQL

 

Return Top