- 11/08 NAT越しにMySQLでレプリケーションすると接続が切れる
- 11/07 Fedora19のコンソール設定
- 12/27 Glassfishインスタンスリソース監視テンプレ
- 12/07 systemctlによるサービス管理でつまづいた
- 09/28 ZABBIXとnscd
This is new entry
DCとAWS間で、MySQLのレプリケーションを試してみたら、レプリケーションがうまくいかなかった。無通信状態が1時間続くと接続がきれてしまいます。
現象発生時にマスター側、スレーブ側で以下のような確認をしましたが、正常そうに見えました。
・この時 スレーブ側でshow slave statusを実行すると、IOスレッドの稼働状況はYesになっている。
・両方でnetstat -atnを実行すると、スレーブ側ではEstablishedになっているが、マスター側には対応するセッションがない。
最後のnetstatsの結果から途中経路にあるNW機器が原因かと辺りをつけて、両方のMySQLサーバでパケットキャプチャしてみると、30分おきにマスターから スレーブに対してpushフラグのついたパケットが投げられていましたが、途中経路にあるYamaha RTX1200がリセットフラグのついた応答を返していました。
どうやら、RTX1200のNatテーブル保持期間がデフォルトで900秒だったため、Natテーブルからレコードが消えていたため通信に失敗していました。
このため、マスターからスレーブへパケットを投げる間隔を60秒にしてやったところ、問題は解決しました。
変更するためには、 スレーブ側で以下のコマンドを実行します。
現象発生時にマスター側、スレーブ側で以下のような確認をしましたが、正常そうに見えました。
確認内容
・マスター側で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
COMMENT
ブログ内検索
カテゴリー
最新記事
(11/08)
(11/07)
(12/27)
(12/07)
(09/28)
最新トラックバック
プロフィール
HN:
アフロ
性別:
非公開
リコメンド