マスタN対スレーブ1レプリケーションの作り方 ~あれから~

do_aki
マスタn対スレーブ1
   レプリケーションの
      作り方
     ~あれから~

2013/04/17   MySQL Casual Talks vol.4 do_aki
do_aki (どぅーあき)
|所属| > 株式会社もしも
      (ドロップシッピング・アフィリエイトASP)
|仕事| > インフラ(サーバ管理)兼
     Webアプリケーション開発
|出現| > 渋谷・山手線沿線
|特性| > PHPer


                       http://do-aki.net/
マスタn対スレーブ1
 レプリケーション
カジュアルなマスタ分割

        Master           JOIN           Master
          A              不可               B




Slave            Slave          Slave            Slave
 A1               A2             B1               B2
カジュアルなマスタ分割

        Master           JOIN           Master
          A              不可               B




Slave            Slave          Slave            Slave
 A1               A2             B1               B2
カジュアルなマスタ併合

         Master           Master
           A                B




Slave   Slave     Slave      Slave   Slave
         A2                   B1      B2
 A1               A+B
n:1 レプリケーション

 Master           Master
   A                B




          Slave
          A+B
n:1 レプリケーション

      Master           Master
        A                B




 CHANGE
MATER TO
               Slave
でマスタを
               A+B
定期切替
n:1 レプリケーション

      Master           Master
        A                B




 CHANGE
MATER TO
               Slave
でマスタを
               A+B
定期切替
n:1 レプリケーション

 Master           Master
   A                B




                     詳しくは、Vol.2の
                     スライドを参照
          Slave
                     http://www.slideshare.n
          A+B        et/do_aki/20110809-my-
                     sql-casual-talks-vol2
マスタN対スレーブ1レプリケーションの作り方 ~あれから~
発表者do_akiからの
メッセージをお読みください
本トークの注意事項
 真新しい話は一切無し
 このネタ正直もう飽きた
 (・ω・\)SAN値!
           (/・ω・)/ピンチ!
想定以上に安定稼働しすぎ
ネタ無いのに主催に半強制的に発表
 させられてるなんて言えない
稼働歴
2011年 7月 稼働開始
2011年 8月 MySQL Casual Talks Vol.2
2011年11月 障害停止
         (max_allowed_packet 不足)
2012年 4月 MySQL Casual Talks Vol.3
2012年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 event
130415 20:55:11 [Note] Slave I/O thread exiting, read up to log 'mysql-
bin.003284', position 585650324
130415 20:55:11 [Note] Error reading relay log event: slave SQL thread was
killed
130415 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: 4
130415 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
• 信じられないだろ、こんな適当なコード
  で動いてるんだぜ、これ
ありがとうご
ざいました
1 of 23

Recommended

N対1 レプリケーション + Optimizer Hint by
N対1 レプリケーション + Optimizer HintN対1 レプリケーション + Optimizer Hint
N対1 レプリケーション + Optimizer Hintdo_aki
1.9K views38 slides
続マスタN対スレーブ1レプリケーションの作り方 by
続マスタN対スレーブ1レプリケーションの作り方続マスタN対スレーブ1レプリケーションの作り方
続マスタN対スレーブ1レプリケーションの作り方do_aki
6K views18 slides
MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」 by
MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」
MySQL Casual Talks 7 「N:1 レプリケーション ~進捗どうですか?~」do_aki
1.5K views25 slides
PHP Application E2E with Capybara by
PHP Application E2E with CapybaraPHP Application E2E with Capybara
PHP Application E2E with CapybaraYoshiaki Yoshida
2.9K views25 slides
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ by
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみアメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみKazunari Hara
6.6K views96 slides
Rails解説セミナー: リリースノート解説編 by
Rails解説セミナー: リリースノート解説編Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編Yohei Yasukawa
3.3K views36 slides

More Related Content

What's hot

Yapc fukuoka crust by
Yapc fukuoka crustYapc fukuoka crust
Yapc fukuoka crustTokuhiro Matsuno
2.5K views24 slides
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver) by
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)Eugene Yokota
1.4K views43 slides
capybara で快適なテスト生活を by
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活をRyunosuke SATO
14.7K views44 slides
Next GAE Heroku を使って 3分でRailsアプリをリリース by
Next GAE Heroku を使って 3分でRailsアプリをリリースNext GAE Heroku を使って 3分でRailsアプリをリリース
Next GAE Heroku を使って 3分でRailsアプリをリリースよしだ あつし
1.5K views32 slides
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話 by
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話Yukihiko SAWANOBORI
5.3K views67 slides
Ruby on Rails Tutorial Chapter11-13 by
Ruby on Rails Tutorial Chapter11-13Ruby on Rails Tutorial Chapter11-13
Ruby on Rails Tutorial Chapter11-13Sea Mountain
1.7K views26 slides

What's hot(10)

The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver) by Eugene Yokota
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
Eugene Yokota1.4K views
capybara で快適なテスト生活を by Ryunosuke SATO
capybara で快適なテスト生活をcapybara で快適なテスト生活を
capybara で快適なテスト生活を
Ryunosuke SATO14.7K views
Next GAE Heroku を使って 3分でRailsアプリをリリース by よしだ あつし
Next GAE Heroku を使って 3分でRailsアプリをリリースNext GAE Heroku を使って 3分でRailsアプリをリリース
Next GAE Heroku を使って 3分でRailsアプリをリリース
よしだ あつし1.5K views
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話 by Yukihiko SAWANOBORI
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話
Yukihiko SAWANOBORI5.3K views
Ruby on Rails Tutorial Chapter11-13 by Sea Mountain
Ruby on Rails Tutorial Chapter11-13Ruby on Rails Tutorial Chapter11-13
Ruby on Rails Tutorial Chapter11-13
Sea Mountain1.7K views
LT#8 乗るしかないこのECMA Script 2015に by do7be
LT#8 乗るしかないこのECMA Script 2015にLT#8 乗るしかないこのECMA Script 2015に
LT#8 乗るしかないこのECMA Script 2015に
do7be 2.2K views
Nginxを使ったオレオレCDNの構築 by ichikaway
Nginxを使ったオレオレCDNの構築Nginxを使ったオレオレCDNの構築
Nginxを使ったオレオレCDNの構築
ichikaway12.2K views
Rails composerでrails newを楽にしよう by 健太 田上
Rails composerでrails newを楽にしようRails composerでrails newを楽にしよう
Rails composerでrails newを楽にしよう
健太 田上1.4K views

Viewers also liked

Immortal by
ImmortalImmortal
Immortaldo_aki
3.1K views15 slides
O/R Mapper Stratumの話 by
O/R Mapper Stratumの話O/R Mapper Stratumの話
O/R Mapper Stratumの話SATOSHI TAGOMORI
4.4K views27 slides
Index shotgun on mysql5.6 by
Index shotgun on mysql5.6Index shotgun on mysql5.6
Index shotgun on mysql5.6yoku0825
4.3K views32 slides
Excel is image viewer by
Excel is image viewerExcel is image viewer
Excel is image viewerdo_aki
2.7K views14 slides
SQLドリルの話(仮) by
SQLドリルの話(仮)SQLドリルの話(仮)
SQLドリルの話(仮)Yuuki Tan-nai
3.9K views16 slides
PHP AST 徹底解説(補遺) by
PHP AST 徹底解説(補遺)PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)do_aki
5K views43 slides

Viewers also liked(15)

Immortal by do_aki
ImmortalImmortal
Immortal
do_aki3.1K views
Index shotgun on mysql5.6 by yoku0825
Index shotgun on mysql5.6Index shotgun on mysql5.6
Index shotgun on mysql5.6
yoku08254.3K views
Excel is image viewer by do_aki
Excel is image viewerExcel is image viewer
Excel is image viewer
do_aki2.7K views
SQLドリルの話(仮) by Yuuki Tan-nai
SQLドリルの話(仮)SQLドリルの話(仮)
SQLドリルの話(仮)
Yuuki Tan-nai3.9K views
PHP AST 徹底解説(補遺) by do_aki
PHP AST 徹底解説(補遺)PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)
do_aki5K views
Mysql casual talks vol4 by matsuo kenji
Mysql casual talks vol4Mysql casual talks vol4
Mysql casual talks vol4
matsuo kenji5K views
Writing php extensions in golang by do_aki
Writing php extensions in golangWriting php extensions in golang
Writing php extensions in golang
do_aki9.5K views
mysql casual #4 by kenji naito
mysql casual #4mysql casual #4
mysql casual #4
kenji naito4.5K views
php7's ast by do_aki
php7's astphp7's ast
php7's ast
do_aki9.1K views
signal の話 或いは Zend Signals とは何か by do_aki
signal の話 或いは Zend Signals とは何かsignal の話 或いは Zend Signals とは何か
signal の話 或いは Zend Signals とは何か
do_aki5.9K views
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」 by Kentaro Yoshida
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
Kentaro Yoshida26.8K views
セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editor by do_aki
セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editorセキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editor
セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editor
do_aki4.9K views
PHP AST 徹底解説 by do_aki
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
do_aki26.4K views

More from do_aki

Tritonn から Elasticsearch への移行話 by
Tritonn から Elasticsearch への移行話Tritonn から Elasticsearch への移行話
Tritonn から Elasticsearch への移行話do_aki
1.2K views41 slides
php-src の歩き方 by
php-src の歩き方php-src の歩き方
php-src の歩き方do_aki
2.4K views30 slides
PHP と SAPI と ZendEngine3 と by
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とdo_aki
16.1K views95 slides
PHPとシグナル、その裏側 by
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側do_aki
9.6K views62 slides
再考:列挙型 by
再考:列挙型再考:列挙型
再考:列挙型do_aki
2.8K views21 slides
20150212 プレゼンテーションzen by
20150212 プレゼンテーションzen20150212 プレゼンテーションzen
20150212 プレゼンテーションzendo_aki
3.5K views23 slides

More from do_aki(19)

Tritonn から Elasticsearch への移行話 by do_aki
Tritonn から Elasticsearch への移行話Tritonn から Elasticsearch への移行話
Tritonn から Elasticsearch への移行話
do_aki1.2K views
php-src の歩き方 by do_aki
php-src の歩き方php-src の歩き方
php-src の歩き方
do_aki2.4K views
PHP と SAPI と ZendEngine3 と by do_aki
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
do_aki16.1K views
PHPとシグナル、その裏側 by do_aki
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側
do_aki9.6K views
再考:列挙型 by do_aki
再考:列挙型再考:列挙型
再考:列挙型
do_aki2.8K views
20150212 プレゼンテーションzen by do_aki
20150212 プレゼンテーションzen20150212 プレゼンテーションzen
20150212 プレゼンテーションzen
do_aki3.5K views
20141017 introduce razor by do_aki
20141017 introduce razor20141017 introduce razor
20141017 introduce razor
do_aki1.5K views
20141011 mastering mysqlnd by do_aki
20141011 mastering mysqlnd20141011 mastering mysqlnd
20141011 mastering mysqlnd
do_aki11.3K views
php in ruby by do_aki
php in rubyphp in ruby
php in ruby
do_aki1.1K views
PHP から Groonga を使うにはこんなコードになるよ! by do_aki
PHP から Groonga を使うにはこんなコードになるよ!PHP から Groonga を使うにはこんなコードになるよ!
PHP から Groonga を使うにはこんなコードになるよ!
do_aki4.1K views
N:1 Replication meets MHA by do_aki
N:1 Replication meets MHAN:1 Replication meets MHA
N:1 Replication meets MHA
do_aki11.9K views
Php radomize by do_aki
Php radomizePhp radomize
Php radomize
do_aki6.5K views
php and sapi and zendengine2 and... by do_aki
php and sapi and zendengine2 and...php and sapi and zendengine2 and...
php and sapi and zendengine2 and...
do_aki5.9K views
A bridge between php and ruby by do_aki
A bridge between php and ruby A bridge between php and ruby
A bridge between php and ruby
do_aki6.8K views
Ruby and comparison_and...php by do_aki
Ruby and comparison_and...phpRuby and comparison_and...php
Ruby and comparison_and...php
do_aki1.9K views
Sore php by do_aki
Sore phpSore php
Sore php
do_aki2.4K views
Php in ruby by do_aki
Php in rubyPhp in ruby
Php in ruby
do_aki2.8K views
Ruby enumerable source code reading by do_aki
Ruby enumerable source code readingRuby enumerable source code reading
Ruby enumerable source code reading
do_aki1.5K views
Mod lua by do_aki
Mod luaMod lua
Mod lua
do_aki2.9K views

Recently uploaded

JJUG CCC.pptx by
JJUG CCC.pptxJJUG CCC.pptx
JJUG CCC.pptxKanta Sasaki
6 views14 slides
さくらのひやおろし2023 by
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023法林浩之
91 views58 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
13 views38 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development siteAtomu Hidaka
71 views41 slides
SSH応用編_20231129.pdf by
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdficebreaker4
172 views13 slides
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料) by
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
233 views63 slides

Recently uploaded(12)

さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023
法林浩之91 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka71 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4172 views
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
Web3 Career_クレデン資料 .pdf by nanamatsuo
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdf
nanamatsuo14 views
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by Knowledge & Experience
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
01Booster Studio ご紹介資料 by ssusere7a2172
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料
ssusere7a2172300 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.41 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda175 views

マスタN対スレーブ1レプリケーションの作り方 ~あれから~