Upload
doaki
View
4.170
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
マスタ n 対スレーブ 1レプリケーションの
作り方 ~あれから~
2013/04/17 MySQL Casual Talks vol.4 do_aki
| 所属 | > 株式会社もしも (ドロップシッピング・アフィリエイト ASP )
| 仕事 | > インフラ(サーバ管理)兼 Web アプリケーション開発
| 出現 | > 渋谷・山手線沿線| 特性 | > PHPer
do_aki ( どぅーあき )
http://do-aki.net/
マスタ n 対スレーブ1 レプリケーション
おさらい
カジュアルなマスタ分割
MasterA
SlaveA1
SlaveA2
SlaveB1
MasterB
SlaveB2
JOIN 不可
カジュアルなマスタ分割
MasterA
SlaveA1
SlaveA2
SlaveB1
MasterB
SlaveB2
JOIN 不可マスタ分割でも
JOIN がした
い!
カジュアルなマスタ併合
MasterA
SlaveA1
SlaveA2
SlaveB1
MasterB
SlaveB2
SlaveA+B
n:1 レプリケーション
MasterA
SlaveA+B
MasterB
n:1 レプリケーション
MasterA
SlaveA+B
MasterB
CHANGE MATER TO でマスタを
定期切替
n:1 レプリケーション
MasterA
SlaveA+B
MasterB
CHANGE MATER TO でマスタを
定期切替
n:1 レプリケーション
MasterA
SlaveA+B
MasterB
http://www.slideshare.net/do_aki/20110809-my-sql-casual-talks-vol2
詳しくは、 Vol.2のスライドを参照
で
発表者 do_akiからのメッセージをお読みください
本トークの注意事項 真新しい話は一切無し このネタ正直もう飽きた ( ・ ω ・\ )SAN 値! ( /・ ω ・ ) /ピンチ!想定以上に安定稼働しすぎネタ無いのに主催に半強制的に発
表させられてるなんて言えない
稼働歴
2011 年 7 月 稼働開始2011 年 8 月 MySQL Casual Talks Vol.22011 年 11 月 障害停止
(max_allowed_packet 不足 )2012 年 4 月 MySQL Casual Talks Vol.32012 年 10 月 計画停止 ( マスタ切替 )2012 年 12 月 計画停止 (Disk 拡張 )2013 年 4 月 MySQL Casual Talks Vol.4
エラーログ膨らむ
130415 20:55:11 [ERROR] Error reading packet from server: Lost connection to MySQL server during query ( server_errno=2013)130415 20:55:11 [Note] Slave I/O thread killed while reading event130415 20:55:11 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.003284', position 585650324130415 20:55:11 [Note] Error reading relay log event: slave SQL thread was killed130415 20:55:11 [Note] 'CHANGE MASTER TO executed'. Previous state master_host='master host1', master_port='3306', master_log_file='mysql-bin.003284', master_log_pos='585650324'. New state master_host='master host2', master_port='3306', master_log_file='mysql-bin.001770', master_log_pos='996447621'.130415 20:55:11 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.0001770' at position 996447621, relay log './relay-bin.000001' position: 4130415 20:55:11 [Note] Slave I/O thread: connected to master 'slave user@master host2:3306',replication started in log 'mysql-bin.001770' at position 996447621
pt-online-schema-change と相性悪い
pt-online-schema-change
• オンラインでスキーマ変更
• 全スレーブをチェック ( 本実行時のみ )
• 遅延状況によって Wait ( 負荷低減 )
• マスタ切り替え中にチェックが走るとタイミングによっては待ち続ける
まとめ
ネタ切れ
• ほんとに安定稼働中• 運用コストがほとんど無くてびっくり• 興味あるならコードはこちら• https://
github.com/do-aki/SwitchMaster• 信じられないだろ、こんな適当なコード
で動いてるんだぜ、これ
ありがとうございました