My Oracle Support Banner

レプリケーションスレーブ上でLOST_EVENTSのエラーが報告されるのはなぜか、またはどのような対処をするべきか (Doc ID 2235642.1)

Last updated on JUNE 12, 2018

適用範囲:

MySQL Cluster - バージョン 4.1 以降
All Platforms

目的

MySQL Clusterのジオグラフィカルレプリケーションでは、地理的に離れた場所に対して非同期で、別のクラスターに対してレプリケーションを行います。この機能は、多くの場合ディザスタリカバリ用途で用いられます。

MySQL Clusterのジオグラフィカルレプリケーションの運用中に、スレーブのSQLノードではLOST_EVENTSというインシデントが発生することがあります。これは、マスター側のバイナリログを送信しているSQLノードがクラスターへの接続を失ったとき(それが計画的なものであれ、クラッシュによるものであれ)、スレーブのSQLノードのレプリケーションを停止させるために常に発生します。それにより、マスターとスレーブ間でデータが不整合を起こすのを防ぐようになっています。

不整合とはどのような状態でしょうか。マスターのSQLノードは、MySQL Clusterが稼働中に行われたすべての変更を記録しなければなりませんが、SQLノードを再起動する場合などに、変更を記録できない瞬間が存在することになります。バイナリログを記録しているSQLノードを再起動中は、他のSQLノードあるいはAPIノードによって行われた更新がバイナリログに記録されません。そのため、LOST_EVENTSというインシデントを報告することで、バイナリログは整合性を欠いている可能性があることを報告し、スレーブ上で意図的にエラーになるように設計されているのです。レプリケーションは、バイナリログからデータが喪失している可能性があるため、レプリケーションが停止するのです。

下記は、スレーブ上でどのようにエラーが報告されるかという例です。(分かりやすくするために抜粋しています。)

SHOW SLAVE STATUS \G
..
Last_Errno: 1590
Last_Error: The incident LOST_EVENTS occured on the master. Message: mysqld startup
..

LOST_EVENTSが報告される原因としては、2つのケースが存在します。SHOW SLAVE STATUSのLast_Errorに報告されるエラーメッセージには、次の2つのバリエーションがあります。

mysqld startup: Master was started.
cluster disconnect: Master lost connection to its data nodes.

解決策

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.