Upload
haruka-iwao
View
8.658
Download
0
Embed Size (px)
DESCRIPTION
MySQL Casual Talks #5 で話した、MySQL5.6でGTIDを試してそっと閉じたお話です。
Citation preview
MySQL5.6 で GTID を試してそっと閉じた
Yuryu @ MySQL Casual Talks #5
2013/10/25
あらすじ自己紹介GTID とはマスタ切り替えの流れGTID の利点と欠点ふつごうとのそうぐうまとめ
Disclaimer
この発表の内容は所属組織としての見解ではありません
情報の正確性を保つように努めていますが、間違ってても許してくださいそして教えてください
転んでも泣かない
自己紹介
自己紹介名前 : 岩尾 はるか (Yuryu)職業 : DevOps エンジニア ( 自称 )
2013 年 7 月から ( 株 ) フリークアウトに所属副業で光の戦士 ( 白魔道士 )
MySQL 歴は 1 年半 +α出身は大阪府
GTID とは
GTID とはMySQL 5.6 で導入された新機能Global Transaction IDトランザクションごとに固有の ID を付与
< サーバーの UUID>:< 通し番号 >
自分がどこまで実行したかを記録GTID_Executed
クラスタレベルでの一貫性を保証
MasterUUID: 40bbcf9b-e556-45b0-bdb3-e528f0041652
Slaves
UUID: 8560bec3-4639-4b73-91e8-c93b559efa73
UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4
UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687
サーバーごとに UUID を付与
自分がどこまで実行したかを記録
MasterUUID: 40bbcf9b-e556-45b0-bdb3-e528f0041652GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
Slaves
UUID: 8560bec3-4639-4b73-91e8-c93b559efa73GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1
GTID 関係の変数Show variables でみるもの
GTID_NextGTID_ExecutedGTID_Purged
SHOW SLAVE STATUS でみるものExecuted_Gtid_Set (MASTER STATUS にも登
場 )Retrieved_Gtid_Set
GTID_Next
次に実行するトランザクションの ID<UUID>:< 番号 >40bbcf9b-e556-45b0-bdb3-
e528f0041652:123
デフォルト値は AUTOMATIC自分のサーバー UUID をもとに連番が生成
Binlog 内で指定されるマスターと同じ GTID を指定するため
Binlog の例SET @@SESSION.GTID_NEXT= 'a8679745-1864-11e3-a1ec-28924a2bea1c:14'/*!*/;
SET TIMESTAMP=1378641904/*!*/;
BEGIN
BINLOG '
8GcsUhMKAAAAMAAAAOEKAAAAAEYAAAAAAAEABXl1cnl1AAR0ZXN0AAEIAADJonx1
8GcsUh4KAAAALAAAAA0LAAAAAEYAAAAAAAEAAgAB//4RAAAAAAAAAOc/BE4=
'/*!*/;
COMMIT/*!*/;
GTID_Executed
実行 (commit) したトランザクション<UUID>:<Start>-<End>[:<Start>-
<End>…]40bbcf9b-e556-45b0-bdb3-
e528f0041652:1-2
Executed_Gtid_Set も同じ内容Exec_Master_Log_Pos に近い意味
ただし自分自身のトランザクションも記録
GTID_Purged
バイナリログから消えたトランザクション<UUID>:<Start>-<End>[:<Start>-
<End>…]GTID_Executed と同じ形式
バイナリログが一周すると増えていく
Retrieved_Gtid_Set
マスターから受信したトランザクション<UUID>:<Start>-<End>[:<Start>-
<End>…]GTID_Executed と同じ形式
Read_Master_Log_Pos に近い役割
マスタ切り替えの流れ
今回使用するクラスタ
MasterUUID: 40bbcf9b-e556-45b0-bdb3-e528f0041652GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
Slaves
UUID: 8560bec3-4639-4b73-91e8-c93b559efa73GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1
マスタ fail から新スレーブ決定
MasterUUID: 40bbcf9b-e556-45b0-bdb3-e528f0041652GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
Slaves
UUID: 8560bec3-4639-4b73-91e8-c93b559efa73GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1
CHANGE MASTER 後
Slaves
New MasterUUID: 8560bec3-4639-4b73-91e8-c93b559efa73GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1
新マスターでトランザクション実行後
Slaves
New MasterUUID: 8560bec3-4639-4b73-91e8-c93b559efa73GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
8560bec3-4639-4b73-91e8-c93b559efa73:1-3
UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
8560bec3-4639-4b73-91e8-c93b559efa73:1-3
UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
8560bec3-4639-4b73-91e8-c93b559efa73:1-3
マスタ変更前のスレーブのコピーを追加New MasterUUID: 8560bec3-4639-4b73-91e8-c93b559efa73GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
8560bec3-4639-4b73-91e8-c93b559efa73:1-3
UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
8560bec3-4639-4b73-91e8-c93b559efa73:1-3
UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
8560bec3-4639-4b73-91e8-c93b559efa73:1-3
Slaves
UUID: 60746b02-bc87-4574-aa23-95f0631e4fefGTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
すべてが同期した状態へNew MasterUUID: 8560bec3-4639-4b73-91e8-c93b559efa73GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
8560bec3-4639-4b73-91e8-c93b559efa73:1-3
UUID: 9926a039-f11c-4ee5-87d8-6abba9b5fce4GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
8560bec3-4639-4b73-91e8-c93b559efa73:1-3
UUID: 2e3fc2b5-6546-427b-82fe-d3c2134aa687GTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
8560bec3-4639-4b73-91e8-c93b559efa73:1-3
Slaves
UUID: 60746b02-bc87-4574-aa23-95f0631e4fefGTID_Executed: 40bbcf9b-e556-45b0-bdb3-e528f0041652:1-2
8560bec3-4639-4b73-91e8-c93b559efa73:1-3
GTID の利点と欠点
GTID の利点すべてのトランザクションが一意に識別可
GTID_Executed が同一ならば一貫性を保証Binlog のポジションを自動決定
CHANGE MASTER TO… MASTER_AUTO_POSITION=1
スレーブがマスタに昇格しても大丈夫
利点 : MySQL Workbench 対応mysqlfailover
監視+自動でマスタ切り替えmysqlrpladmin
手動でマスタ切り替え自動でスレーブを選んでくれる
GTID の欠点クラスタ内で GTID 有効 / 無効の混在不可
全ノード停止→再起動が必要MyISAM が使えないまだ枯れていない運用ノウハウの不足「それって MHA でもできるよね」
ふつごうとのそうぐう
ふつごうとのそうぐうFLUSH LOGS でレプリケーションが止まる
(5.6.11 のみ )転送中のトランザクションが STOP/START
SLAVE でスキップ ( 未修正 )ネットワークが切断されると転送中のトラ
ンザクションがスキップ ( 未修正 )
FLUSH LOGS でレプリケーションが止まるGTID を有効にした状態でマスターに
FLUSH LOGS を発行するとレプリケーションが停止
GTID_NEXT が AUTOMATIC でない時に暗黙のトランザクションを禁止しようとして、副作用として発生
5.6.11 のみの不都合 (5.6.12 で修正 )
転送中のトランザクションが STOP/START SLAVEでスキップ
( 大きな ) トランザクションを転送中に STOP SLAVE IO_THREAD すると、次に再開した時にそのトランザクションがスキップされる
今のところ未修正http://bugs.mysql.com/bug.php?id=69
943
ネットワークが切断されると転送中のトランザクションがスキップ
再接続した時に実行されないトランザクションが発生する
一つ前のバグと似たようなバグ?今のところ未修正http://bugs.mysql.com/bug.php?id=69
758
まとめ
GTID でできることすべてのトランザクションを一意に識別クラスタ単位での一貫性を保証バイナリログのポジションを自動決定mysqlrpladmin / mysqlfailover を利用し
たマスタ切り替え
GTID で困ることサービスを止めないと有効にできないまだ大きいバグがある運用ノウハウが不足
私たちの現在の方向性現在 GTID を有効にする利点は少ないHA は MHA で実現できる将来状況が変われば使えるように勉強する
Thank you! / Questions?