スマートスタイル TECH BLOG

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

オンラインで 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 の検証を行いましたので、今回は、2. Changing a Group’s Mode を検証してみたいと思います

Changing a Group’s Mode とは

シングル・プライマリモード、マルチ・プライマリモードを相互に切り替える機能となります

環境

OS・MySQL バージョン

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

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

現時点では、 シングル・プライマリモードで稼働しています

検証1

マルチ・プライマリモードに変更してみる

1.group_replication_switch_to_multi_primary_mode() を実行します

2.確認してみます

group_replication_primary_member の値が空になり、すべてのメンバーが PRIMARY となっています

残念?なところ

現時点では、InnoDB Cluster までは未対応なようで、InnoDB Cluster のメタ情報内にあるトポロジまでは変更されませんでした
※topology_type が pm はシングルプライマリ・モード、 mm なら、マルチプライマリ・モードとなります

そのため、MySQL Shell でクラスタのステータスを表示しようとしても、

のように、Group Replication の設定値と異なっているために、エラーとなってしまいます

検証2

シングル・プライマリモードに変更してみる

1.group_replication_switch_to_single_primary_mode() を実行します
今回はあえて、引数で member_uuid は指定しないで、実行してみます。
member_uuid を指定して実行すると、指定されたメンバーをプライマリとして、シングル・プライマリモードに変更されます

2.確認してみます

group_replication_primary_member に値が入り、k-cluster02 が PRIMARY となっています
PRIMARY 選出の基準は、こちらのマニュアル に記載されているように、 group_replication_member_weight や、server_uuid によって決定されます

まとめ

本番運用中にシングル・プライマリモードとマルチ・プライマリモードを変更することは、ほとんど無いとは思いますが、開発中に更新分散を試してみたいと言ったときには、クラスタを再構築することなく、モードを切り替えれるのは便利では無いでしょうか
次期バージョンで、InnoDB Cluster への対応も進めば、更に使い勝手が変わるのでは無いでしょうか


MySQL

 

Return Top