忍者ブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

DCとAWS間で、MySQLのレプリケーションを試してみたら、レプリケーションがうまくいかなかった。無通信状態が1時間続くと接続がきれてしまいます。
現象発生時にマスター側、スレーブ側で以下のような確認をしましたが、正常そうに見えました。

確認内容
・マスター側でshow slave hostsを実行すると、1時間経過した時点でエントリーが消える。
・この時 スレーブ側でshow slave statusを実行すると、IOスレッドの稼働状況はYesになっている。
・両方でnetstat -atnを実行すると、スレーブ側ではEstablishedになっているが、マスター側には対応するセッションがない。

最後のnetstatsの結果から途中経路にあるNW機器が原因かと辺りをつけて、両方のMySQLサーバでパケットキャプチャしてみると、30分おきにマスターから スレーブに対してpushフラグのついたパケットが投げられていましたが、途中経路にあるYamaha RTX1200がリセットフラグのついた応答を返していました。
どうやら、RTX1200のNatテーブル保持期間がデフォルトで900秒だったため、Natテーブルからレコードが消えていたため通信に失敗していました。
このため、マスターからスレーブへパケットを投げる間隔を60秒にしてやったところ、問題は解決しました。

変更するためには、  スレーブ側で以下のコマンドを実行します。
mysql> change master to MASTER_HEARTBEAT_PERIOD=60;
PR
Copyright (C) 2024 技ブロ All Rights Reserved.
Photo by 戦場に猫 Template Design by kaie
忍者ブログ [PR]