SlideShare a Scribd company logo
Submit Search
Upload
MySQL5.6でGTIDを試してそっと閉じた
Report
Emma Haruka Iwao
Developer Advocate
Follow
•
17 likes
•
18,153 views
1
of
37
MySQL5.6でGTIDを試してそっと閉じた
•
17 likes
•
18,153 views
Download Now
Download to read offline
Report
MySQL Casual Talks #5 で話した、MySQL5.6でGTIDを試してそっと閉じたお話です。
Read more
Emma Haruka Iwao
Developer Advocate
Follow
Recommended
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
yoku0825
23.4K views
•
89 slides
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
175K views
•
173 slides
MySQLレプリケーションあれやこれや
yoku0825
17.4K views
•
64 slides
MySQL 5.7の罠があなたを狙っている
yoku0825
122.3K views
•
75 slides
PostgreSQLアンチパターン
Soudai Sone
48.3K views
•
196 slides
雑なMySQLパフォーマンスチューニング
yoku0825
54.9K views
•
142 slides
More Related Content
What's hot
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
Amazon Web Services Japan
17.2K views
•
66 slides
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
54.9K views
•
31 slides
さいきんの InnoDB Adaptive Flushing (仮)
Takanori Sejima
19.6K views
•
62 slides
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
13.6K views
•
40 slides
Mavenの真実とウソ
Yoshitaka Kawashima
13K views
•
67 slides
MySQL 8.0で憶えておいてほしいこと
yoku0825
18.7K views
•
37 slides
What's hot
(20)
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
Amazon Web Services Japan
•
17.2K views
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
•
54.9K views
さいきんの InnoDB Adaptive Flushing (仮)
Takanori Sejima
•
19.6K views
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
•
13.6K views
Mavenの真実とウソ
Yoshitaka Kawashima
•
13K views
MySQL 8.0で憶えておいてほしいこと
yoku0825
•
18.7K views
MySQLアーキテクチャ図解講座
Mikiya Okuno
•
26.3K views
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
Mikiya Okuno
•
17.2K views
マイクロにしすぎた結果がこれだよ!
mosa siru
•
132.5K views
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
•
56.6K views
MySQL8.0 SYS スキーマ概要
Shinya Sugiyama
•
14K views
Azure 仮想マシンにおける運用管理・高可用性設計のベストプラクティス
Yusuke Oi
•
4K views
Kotlinアンチパターン
Recruit Lifestyle Co., Ltd.
•
53K views
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
•
57.7K views
AWS Black Belt Tech シリーズ 2016 - Amazon CloudFront
Amazon Web Services Japan
•
103.1K views
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Amazon Web Services Japan
•
5.1K views
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
•
3.1K views
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
•
70.6K views
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
•
6.1K views
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
Amazon Web Services Japan
•
53.7K views
Viewers also liked
MySQL 5.7とレプリケーションにおける改良
Shinya Sugiyama
8.9K views
•
58 slides
20140711 MySQL Casual Talks vol.6 / 続・Amazon RDS Casual Talks
Mori Tetsuya
10.4K views
•
28 slides
mysqlcasual6-fabric
doublemarket
12.9K views
•
40 slides
光のMySQL 5.7
yoku0825
14.2K views
•
86 slides
mysqlcasual6-next-key-lock
karupanerura
12.4K views
•
27 slides
My sql casual talks vol.6
Satoshi Suzuki
20.9K views
•
21 slides
Viewers also liked
(13)
MySQL 5.7とレプリケーションにおける改良
Shinya Sugiyama
•
8.9K views
20140711 MySQL Casual Talks vol.6 / 続・Amazon RDS Casual Talks
Mori Tetsuya
•
10.4K views
mysqlcasual6-fabric
doublemarket
•
12.9K views
光のMySQL 5.7
yoku0825
•
14.2K views
mysqlcasual6-next-key-lock
karupanerura
•
12.4K views
My sql casual talks vol.6
Satoshi Suzuki
•
20.9K views
MHA on AWS+Rails
Sugawara Genki
•
11.7K views
N:1 Replication meets MHA
do_aki
•
11.9K views
TokuDB試してみる
yoku0825
•
15.8K views
JIRA Agileを活用したアジャイル開発実践事例 #AUGJ
満徳 関
•
14.1K views
MySQL 5.7の次のMySQLは
yoku0825
•
7.8K views
64ヶ月オンプレ運用したシステムを aws移行した話
Ryota Kuroki
•
1.6K views
MySQL5.7 GA の Multi-threaded slave
Takanori Sejima
•
12.9K views
More from Emma Haruka Iwao
Friction Logging and Internal Advocacy, DevRel/Asia 2020
Emma Haruka Iwao
363 views
•
20 slides
Woman Tech Terrace 2020 Keynote - 夢を持ち続ける
Emma Haruka Iwao
457 views
•
29 slides
Google Cloud 一般公開データセット
Emma Haruka Iwao
785 views
•
19 slides
Favorite English YouTube Channels
Emma Haruka Iwao
1.7K views
•
18 slides
Docker事始めと最新動向 2015年6月
Emma Haruka Iwao
5K views
•
54 slides
CephとGluster次期バージョンでの新機能
Emma Haruka Iwao
7.6K views
•
35 slides
More from Emma Haruka Iwao
(20)
Friction Logging and Internal Advocacy, DevRel/Asia 2020
Emma Haruka Iwao
•
363 views
Woman Tech Terrace 2020 Keynote - 夢を持ち続ける
Emma Haruka Iwao
•
457 views
Google Cloud 一般公開データセット
Emma Haruka Iwao
•
785 views
Favorite English YouTube Channels
Emma Haruka Iwao
•
1.7K views
Docker事始めと最新動向 2015年6月
Emma Haruka Iwao
•
5K views
CephとGluster次期バージョンでの新機能
Emma Haruka Iwao
•
7.6K views
Git for Begineers GitHub ハンズオン
Emma Haruka Iwao
•
12.5K views
Docker, Kubernetes and OpenShift v3
Emma Haruka Iwao
•
5K views
Dockerイメージ構築 実践テクニック
Emma Haruka Iwao
•
23K views
Storage by Red Hat #rhcpday 2015
Emma Haruka Iwao
•
4K views
Docker向けOSとか[LT] @ #techgirl 2015/01
Emma Haruka Iwao
•
5K views
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Emma Haruka Iwao
•
37K views
RHEL, CentOS 7 に移行しよう! LT
Emma Haruka Iwao
•
16.3K views
分散ストレージ技術Cephの最新情報
Emma Haruka Iwao
•
16.5K views
DockerをRed Hatはどのように見ているのか
Emma Haruka Iwao
•
9.6K views
初心者が Python で戸惑ったところ
Emma Haruka Iwao
•
4.1K views
Ceph Loves OpenStack: Why and How
Emma Haruka Iwao
•
2.3K views
Rails Girls: Not Only for Girls - RubyKaigi 2014
Emma Haruka Iwao
•
20.8K views
AWS VM import / export ハンズオン
Emma Haruka Iwao
•
7.7K views
Hello, systemd
Emma Haruka Iwao
•
35.2K views
MySQL5.6でGTIDを試してそっと閉じた
1.
MySQL5.6でGTIDを試し てそっと閉じた Yuryu @ MySQL
Casual Talks #5 2013/10/25
2.
あらすじ 自己紹介 GTIDとは
マスタ切り替えの流れ GTIDの利点と欠点 ふつごうとのそうぐう まとめ
3.
Disclaimer この発表の内容は所属組織としての見解で はありません 情報の正確性を保つように努めていますが、 間違ってても許してください
そして教えてください 転んでも泣かない
4.
自己紹介
5.
自己紹介 名前: 岩尾 はるか
(Yuryu) 職業: DevOpsエンジニア(自称) 2013年7月から(株)フリークアウトに所属 副業で光の戦士(白魔道士) MySQL歴は1年半+α 出身は大阪府
7.
GTIDとは
8.
GTIDとは MySQL 5.6 で導入された新機能
Global Transaction ID トランザクションごとに固有のIDを付与 <サーバーのUUID>:<通し番号> 自分がどこまで実行したかを記録 GTID_Executed クラスタレベルでの一貫性を保証
9.
サーバーごとにUUIDを付与 Master UUID: 40bbcf9b-e556-45b0-bdb3-e528f0041652 Slaves UUID: 8560bec3-4639-4b73-91e8-c93b559efa73 UUID:
2e3fc2b5-6546-427b-82fe-d3c2134aa687 UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4
10.
自分がどこまで実行したかを記録 Master UUID: 40bbcf9b-e556-45b0-bdb3-e528f0041652 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 Slaves UUID:
8560bec3-4639-4b73-91e8-c93b559efa73 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1 UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
11.
GTID関係の変数 Show variables でみるもの
GTID_Next GTID_Executed GTID_Purged SHOW SLAVE STATUS でみるもの Executed_Gtid_Set Retrieved_Gtid_Set (MASTER STATUSにも登場)
12.
GTID_Next 次に実行するトランザクションのID <UUID>:<番号>
40bbcf9b-e556-45b0-bdb3-e528f0041652:123 デフォルト値はAUTOMATIC 自分のサーバーUUIDをもとに連番が生成 Binlog内で指定される マスターと同じGTIDを指定するため
13.
Binlogの例 SET @@SESSION.GTID_NEXT= 'a8679745-1864-11e3-a1ec28924a2bea1c:14'/*!*/; SET
TIMESTAMP=1378641904/*!*/; BEGIN BINLOG ' 8GcsUhMKAAAAMAAAAOEKAAAAAEYAAAAAAAEABXl1cnl1AAR0ZXN0A AEIAADJonx1 8GcsUh4KAAAALAAAAA0LAAAAAEYAAAAAAAEAAgAB//4RAAAAAAAA AOc/BE4= '/*!*/; COMMIT/*!*/;
14.
GTID_Executed 実行(commit)したトランザクション <UUID>:<Start>-<End>[:<Start>-<End>…]
40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 Executed_Gtid_Set も同じ内容 Exec_Master_Log_Pos に近い意味 ただし自分自身のトランザクションも記録
15.
GTID_Purged バイナリログから消えたトランザクション <UUID>:<Start>-<End>[:<Start>-<End>…]
GTID_Executed と同じ形式 バイナリログが一周すると増えていく
16.
Retrieved_Gtid_Set マスターから受信したトランザクション <UUID>:<Start>-<End>[:<Start>-<End>…]
GTID_Executed と同じ形式 Read_Master_Log_Pos に近い役割
17.
マスタ切り替えの流れ
18.
今回使用するクラスタ Master UUID: 40bbcf9b-e556-45b0-bdb3-e528f0041652 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 Slaves UUID:
8560bec3-4639-4b73-91e8-c93b559efa73 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1 UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
19.
マスタfailから新スレーブ決定 Master UUID: 40bbcf9b-e556-45b0-bdb3-e528f0041652 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 Slaves UUID:
8560bec3-4639-4b73-91e8-c93b559efa73 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1 UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
20.
CHANGE MASTER 後 New
Master UUID: 8560bec3-4639-4b73-91e8-c93b559efa73 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 Slaves UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1
21.
新マスターでトランザクション実行後 New Master UUID: 8560bec3-4639-4b73-91e8-c93b559efa73 GTID_Executed:
40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 8560bec3-4639-4b73-91e8-c93b559efa73:1-3 Slaves UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 8560bec3-4639-4b73-91e8-c93b559efa73:1-3 UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 8560bec3-4639-4b73-91e8-c93b559efa73:1-3
22.
マスタ変更前のスレーブのコピーを追加 New Master UUID: 8560bec3-4639-4b73-91e8-c93b559efa73 GTID_Executed:
40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 8560bec3-4639-4b73-91e8-c93b559efa73:1-3 Slaves UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 8560bec3-4639-4b73-91e8-c93b559efa73:1-3 UUID: 60746b02-bc87-4574-aa23-95f0631e4fef GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 8560bec3-4639-4b73-91e8-c93b559efa73:1-3
23.
すべてが同期した状態へ New Master UUID: 8560bec3-4639-4b73-91e8-c93b559efa73 GTID_Executed:
40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 8560bec3-4639-4b73-91e8-c93b559efa73:1-3 Slaves UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 8560bec3-4639-4b73-91e8-c93b559efa73:1-3 UUID: 60746b02-bc87-4574-aa23-95f0631e4fef GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 8560bec3-4639-4b73-91e8-c93b559efa73:1-3 UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687 GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2 8560bec3-4639-4b73-91e8-c93b559efa73:1-3
24.
GTIDの利点と欠点
25.
GTIDの利点 すべてのトランザクションが一意に識別可 GTID_Executedが同一ならば一貫性を保証
Binlogのポジションを自動決定 CHANGE MASTER TO… MASTER_AUTO_POSITION=1 スレーブがマスタに昇格しても大丈夫
26.
利点: MySQL Workbench対応
mysqlfailover 監視+自動でマスタ切り替え mysqlrpladmin 手動でマスタ切り替え 自動でスレーブを選んでくれる
27.
GTIDの欠点 クラスタ内でGTID有効/無効の混在不可 全ノード停止→再起動が必要
MyISAMが使えない まだ枯れていない 運用ノウハウの不足 「それってMHAでもできるよね」
28.
ふつごうとのそうぐう
29.
ふつごうとのそうぐう FLUSH LOGS でレプリケーションが止まる (5.6.11のみ)
転送中のトランザクションがSTOP/START SLAVEでスキップ(未修正) ネットワークが切断されると転送中のトラ ンザクションがスキップ(未修正)
30.
FLUSH LOGS でレプリケーションが止まる
GTID を有効にした状態でマスターに FLUSH LOGS を発行するとレプリケーションが停止 GTID_NEXT が AUTOMATIC でない時に暗黙 のトランザクションを禁止しようとして、 副作用として発生 5.6.11 のみの不都合(5.6.12で修正)
31.
転送中のトランザクションが STOP/START SLAVEでスキップ (大きな)トランザクションを転送中に STOP SLAVE
IO_THREAD すると、次に再開した時 にそのトランザクションがスキップされる 今のところ未修正 http://bugs.mysql.com/bug.php?id=69943
32.
ネットワークが切断されると転送 中のトランザクションがスキップ 再接続した時に実行されないトランザク ションが発生する 一つ前のバグと似たようなバグ?
今のところ未修正 http://bugs.mysql.com/bug.php?id=69758
33.
まとめ
34.
GTIDでできること すべてのトランザクションを一意に識別 クラスタ単位での一貫性を保証
バイナリログのポジションを自動決定 mysqlrpladmin / mysqlfailover を利用した マスタ切り替え
35.
GTIDで困ること サービスを止めないと有効にできない まだ大きいバグがある
運用ノウハウが不足
36.
私たちの現在の方向性 現在GTIDを有効にする利点は少ない HAはMHAで実現できる
将来状況が変われば使えるように勉強する
37.
Thank you! /
Questions?