Gateway アプライアンスで使用される MySQL サーバーは、整数値 (サーバー ID ) を使用して、クラスター内のノードを相互に一意に識別します。これらの識別子がクラスター内のすべてのノード間で一意でない場合、次回 MySQL サーバーが再起動するときに MySQL レプリケーションは失敗します。レプリケーション障害が発生した場合、適切に対処しないとデータ損失が発生し、Gateway がが劣化した状態になる可能性があります。
Gateway クラスタ内のデータベースが一意の識別子で構成されていない場合、次のエラー メッセージが表示されます。
両方のノードのレプリケーションのステータスをクエリします: mysql -e "show smile status\G"
Slave_IO_Running: No
Slave_SQL_Running: Yes
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
API Gateway 全バージョン
MySQL サーバー構成ファイル (my.cnf) には、各 MySQL サーバーの一意の識別子を指定する構成ディレクティブが含まれています。以下は、MySQL レプリケーションが構成され有効になっているGateway アプライアンスからの抜粋です。
# Uncommment log-bin, log-slave-update and log_bin_trust_function_creators
# if a clustered db server
log-bin=/var/lib/mysql/ssgbin-log
log_bin_trust_function_creators=1
log-slave-update
# uncomment the next item on 1st db master server
server-id=1
# uncomment the next item on 2nd db master servers
#server-id=2
この問題を解決するには、クラスター内の各データベース ノードに「コメント解除された」server-id ディレクティブが一意の値であることを確認します。必要な変更を加えてから、MySQL サーバーを再起動します。MySQL サーバーが再起動したら、SHOW SLAVE STATUS クエリを使用してレプリケーションのステータスを確認します。レプリケーションで次のメッセージが報告された場合、レプリケーションは復元されます。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
レプリケーションが MySQL レプリケーションの他の実行状態を報告する場合は、レプリケーションを再初期化する方法に関する記事を確認してください:
https://knowledge.broadcom.com/external/article?articleId=44402
#
この文書は以下の英語文書を翻訳したものです。
Last_IO_Error: Fatal error: The slave I/O thread stops