MySQLのバグレポート(bugs.mysql.com)にコメントしてみた

はじめに

MySQL InnoDB Clusterの検証をしていて発生したエラーの事象の1つについてこちらに書きましたが、その事象がこのバグレポに記載されている内容と類似の事象のように思いました。
2017/9/5 以降コメントが途絶えていたので、初めてのOSSへの貢献として自分で確認できた内容をコメントしてみました。

続きを読む »

このエントリーをはてなブックマークに追加

MySQL InnoDB Clusterのクラスタ名が変わってしまったのでメタデータを直接更新して復活させた

はじめに

肝心の何故こうなったのかの原因は判明していないけど、MICの検証をしていて、クラスタを止めたり疑似障害を起こしたりしていりしていた時の事。
MySQL Shellを使ってメタデータからクラスタをを取得しようとしたときに以下のようなエラーが出るようになってしまいました。

続きを読む »

このエントリーをはてなブックマークに追加

MySQL InnoDB Cluster初期作成時に Dba.createCluster: ERROR: 1 table(s) do not have a Primary Key or Primary Key Equivalent (non-null unique key) となった場合の対処

はじめに

MySQL ShellからMySQL InnoDB Clusterを作ろうとした時に以下のようなエラーが出ましたので、その原因の調査と対応手順をまとめます。
icrootと言うのは InnoDB Cluster 管理用のユーザとします。

mysql-js> cluster = dba.createCluster('ClusterDev');
A new InnoDB cluster will be created on instance 'icroot@192.168.10.65:3306'.

Warning: The instance configuration needs to be changed in order to
create an InnoDB cluster. To see which changes will be made, please
use the dba.checkInstanceConfiguration() function before confirming
to change the configuration.

Should the configuration be changed accordingly? [y|N]: y

Creating InnoDB cluster 'ClusterDev' on 'icroot@192.168.10.65:3306'...
Dba.createCluster: ERROR: 1 table(s) do not have a Primary Key or Primary Key Equivalent (non-null unique key).
ERROR: Error starting cluster: The operation could not continue due to the following requirements not being met:
Non-compatible tables found in database. (RuntimeError)

続きを読む »

このエントリーをはてなブックマークに追加

Mulit PrimaryのMySQL Group Replicationでノードをまたぐロックの挙動

はじめに

Group Replication は、マルチマスターのレプリケーション構成を行うためのMySQLの機能で、5.7.17からプラグインとして提供され利用可能となっています。

Group Replication ではレプリケーションを構成する各MySQLノードに書き込みができる Mulit Primary 構成と、レプリケーションを構成するいずれか1つのノードにのみ書き込みができる Single Primary 構成があります。
Single Primaryでは特定のノードにしか書き込みができないのでノードをまたぐロックについては気にする必要がありませんが、Multi-Primaryでは複数のノードから書き込みが行われるため、ノードをまたぐロックも気にしなければなりません。

しかし、Group Replication で Writeが行われた時のノード間の整合性チェックのプロセスにはこれらのロックについては考慮されていません。
異なるノードでのトランザクションによる更新処理は正常に実行され、楽観的ロックにより COMMIT 後にチェックが行われて不整合が生じた場合にエラーが返されるようです。
続きを読む »

このエントリーをはてなブックマークに追加