MySQLCasualTalksVol5にいってきた
こんにちは。smallpalaceです。
タイトルどおりMySQLマニア達が集うわりとガチな会で勉強させていただいてきた個人的な備忘録を。誤字があったら後日なおします。
始まる前から飲んでる人がいるような雰囲気でした。
午前中にオラクルさんのセミナーもあって盛りだくさん。下のロビー階ではハロウィンイベントでハロウィンコスの子どもたちがいっぱい来てたりお祭りでした。
イベントのページは↓こちら。
http://www.zusaar.com/event/1086003
ハッシュタグ:#mysqlcasual
とぅぎゃったー:http://togetter.com/li/581621
アンケート有りhttps://docs.google.com/forms/d/1hZFgCPzRVycI_WQPaxX3sTV9kWTIgkGWNwJhgdo5Y8Y/viewform
皆様のブログ:
http://y-ken.hatenablog.com/entry/mysql-casual-talks-vol5-mysql-migration
http://instagram.com/p/f5AsHPFAAb/
http://b.l0g.jp/mysql/mysql-casual-talks-vol-5/
http://onigra.github.io/blog/2013/10/25/lightning-talked-at-mysql-casual-talks-5/
http://nsrzakki.hateblo.jp/entry/2013/10/27/030616
http://norii.hatenablog.com/entry/2013/10/28/001553
------
@Yuryu | MySQL 5.6 で GTID を試してそっと閉じた |
いわおさん。フリークアウトの人。女性は初かも?大阪の人
http://www.slideshare.net/Yuryu/mysql56gtid
GTIDとは、
mysql5.6から実装されたGlobalTransactionID、トランザクションごとに固有のUUIDを付与
自分がどこまで実行したかをクラスタレベルで記録
show variablesとslave statusで見れるやつがある
GTID_NEXT次にどういう名前がつくかUUID:番号。デフォルト値はAutomatic
自分のUUIDをもとに連番を作成
GTID_Executed実行したトランザクション。UUID:start-end
Executed_gtid_setも同じ内容
GTID_Purgedバイナリログに記録されたやつ。
Retrieved_Gtid_setマスタから受信したやつ
フェイルオーバ後にChange Masterしたあとは新しいマスタのUUIDで連番がつくので2行になる。
GTIDの利点
トランザクションが一意に識別可能に、binlogのポジションを自動決定、スレーブがマスタに昇格しても大丈夫(Change masterで自動ポジション決定)
mysqlfailoverとmysqlrepladminでマスタ切替が便利
GTIDの欠点
クラスタ内でGTID有効・無効の混在不可(全ノード停止して再起動必要)
MyISAMが使えない、まだ枯れてない、運用ノウハウの不足、それMHAでできる
不都合との遭遇
FLUSH LOGSでレプリケーションがとまる
5.6.11固有のもの。GTID_NEXTがAutomaticでないときに暗黙のトランザクションを禁止しようとしてとまった
転送中のトランザクションがStop/Start slaveでスキップ
ネットワーク切断されると転送中のトランザクションがスキップされる
でっかいばぐだと思う
将来的にGTIDの固有のメリットがあればつかうかもなので勉強はつづける
------
@con_mame | 僕達のMySQL5.6移行記(仮) |
クックパッドの人。ほしのさん。
http://www.slideshare.net/conmame/mysql56-27565355
普段はAWSとかRedshiftとかいじっている。
おむすびけんで5.6つかってる。ほかにもマネジメントツールとかいろいろ。RDS一部つかってる。
検証は5.6.6からしている。Replicationしつつ本番で流れるクエリをためしてた。
最初だけ意外と素直に進んだ。
5.6のDB群を用意してswitch、メンテナンスでupgrade
EBSのsnapshotを作成して5.6群を作成しアタッチしてrepしてばつっと切り替え
スキーマ・クエリでワーニングでないか、新パラメータでDeprecatedなのがないか
パフォーマンス、スロークエリやレスポンスとCPUメモリ
アプリのライブラリ動作などを確認
kageというやつでプロダクションへのクエリをsandboxにも投げるというのをして試していた(双方同じクエリが流れるがユーザにはプロダクションからしか帰らない)
kageは双方のリクエストのdiffを取ることができる
実際のリクエストで発行されるクエリでテストが行えて便利。
漏れが少なくread/writeを実際に動作をさせながら確認できる
DB自体の不可試験は別途行う
テストが行いやすくアプリケーション・DB各レイヤで確認できる
開発・検証用のDBとしてバージョン・設定を変えて動作させる。開発中のクエリは実際に使用される可能性がある。
各種環境を用意してバグが直ってんのかとか色々みてる。Mariaも入れようとしてる
本番サーバは一定時間おきにsnapshotがとられている
5.6はじゃじゃ馬
GTIDは運用負荷が高い。replicationエラーでスキップできない
デフォルト値の変更やヒスイセンナもの
explict_defaults_for_timestanp
binlog_checksum
p_fがメモリ食いまくりなのでsmall以下だと厳しい
ピークタイムでレプリケーションエラー起こったら空コミット打つこの手順は厳しい
バグを結構いっぱい踏んだ
5.6はそろそろ気軽に使える(GTIDとpaformance_schemaオフればよいはなし)
検証はしっかりと。kage便利
Q:bugsどうみてる
A:5.6指定でみてます
Q:5.6はほんとにパフォーマンスあがってる?
A:結果的に同じクエリで落ちてたりパフォーマンス食って下がるとこはあるがそれ以外はあがってるところも。
--------
@yoshi_ken | MySQL5.0(Tritonn)から5.6(mroonga)への移行体験記 〜[技評連載記事](http://gihyo.jp/dev/clip/01/groonga)の裏話編〜 |
よしださん。LIVESENSEのなかのひと。全文検索エンジンの話。
デベロッパーズステージに寄稿してるので移行するときは読んでみて。
最近はfluentdがすき。プラグインつくりました。
5.0つかってるのが恥ずかしかったのとCPUスケールを狙って移行しようと。
5.6の魅力
memcacheAPI、バッファプール暖機運転、セミシンクrep、クラッシュセーフなスレーブ、InnoDBパーティ初任具、AlterTableの高速化とか
3月に実行しようという話になり、事前調査4~5月、検証、6月に不具合が取り除かれたので移行しようと。先月安定稼動に入った。
対象サイト20サイトくらい、合計70台、マスタはDRBDでミラーリング、HAはkeepalived、孫スレーブにrepして切り離す計画でした。
粛々と移行できた。オンプレなので保守切れに伴う一括購入のおかげでリッチな環境で切り替えができた(いいな~
少し大変だったこと
検索ヒット数の違いと最適な組み合わせの検討
検索クエリの動作確認でアクセスログから抜き出したURL情報を用いて試験環境でもはしらせて落ちないことを確認、、など
数字で振り返る移行プロジェクト、3ヶ月かかった
mroonga修正がいくつか
想定外のH/Wトラブル、IPMI経由で再起動ができないのでリセットボタン押す依頼をしたけど焦げ臭いといわれた(2台)NECの電源周りのロット不良だそう2/70台
プラクティス
パフォーマンスは、5.0からでHWスペックもかなり違うし色々あるけどあがったのも下がったのもあるけど安定稼動すればいいでしょうということで。
GTID semisync+MHAの組み合わせがいいと個人的に思っています
SQLモード sql_mode=NO_ENGINE_SUBSTITUTION にしました(oranieさん参考にしました
mysql_upgradeコマンド
mysqlupgradelせずにmysqldumpコマンドを使いました。5.0に5.6からつないでmysqldumpした。逆はset_gtid_purgged=ONしないとだめ
tritonnからmroongaへの移行は技術評論社のページをごらんください
http://gihyo.jp/dev/clip/01/groonga?ard=1382701510
まとめ
memcachedAPIはメモリリークのバグがあるため結局使えず
http://bugs.mysql.com/bug.php?id=68530
最後に人材募集
-----
@yoku0825 | 非常識DBA grumbles(仮) |
みんな大好きMariaDBも10.0.2からGTIDに対応してます。5.6とは書式もちがうし色々違うのでよくわからない
とあるイルカのバーボンハウス
http://www.slideshare.net/yoku0825/ss-27597161
yoku0825さんの ぐちの話だそうです。
命名規則などなどがめちゃくちゃなDDLの紹介。予約語で名前つけたり。
容量節約第一で修正提案を。
インデックスの名前は基本カラム名。where狙ってるのかorderby狙ってるのかわかるように絞り込む順にカラム名つける
名前から型が推測できると素敵。どこ狙ったクエリなのか一目瞭然。
コードだけで会話する必要はないが意思の疎通がコードだけで捗るとステキ
------
ビール飲んだ人用の休憩
------
@kamipo | 今週ネタ仕込む余裕ないからmysql-build関連の話すると思います…! |
kamipoさん
mysql-buildメンテされてないんじゃという指摘への反論
mysql-buildにプラグインを入れれるようにした。ハンドらソケットも使えるようになったよ。
オプションの第一引数にバージョン2番目にプラグイン、
やってることはbashスクリプトでとってきてがっちゃんこしてビルドしてる
昨日ぺるこなサーバのあたらしいやつも入るようにした。
おっと思った新機能。mysqldumpのオプションのdiff。--innodb-optimize-keys 一回keyをはずしてdumpしといて後でまた貼るみたいな。(※まだバグがあるらしい”https://t.co/CrJAxjWQGl”)平塚さんのデータロードの話でも紹介されてた。サイズも後で張ったほうが小さくなる。pelconaには追加されてる
diffはgistにあげてあるkamito/7151.。。メモリきれず。
InnoDBIndexfullscanを早くした話facebook ロジカルリードアヘッドを実装したやつがFB版の5.6。pelconaのdiffをみるとfb版にもさっきのoptimeize-keysとlraなんとかがついてる。
メンテはしててがんばってます。気軽に@kamipo大丈夫です。とのこと
-------
@do_aki | 殿堂入りのアレ ~Multi-Source Replication を添えて~ |
http://www.slideshare.net/do_aki/ss-27565738
マスタ分割するとjoinできないのでn:1レプリケションを2秒に一回切り替えるというやつの人。
マルチソースレプリケーションの話5.7のやつ
まだlab版で5.7に入るかも不明
並列に同時接続できるようになる。channellできりわけていて、changemasterでchannelを指定する。けっこうべんりそう。
接続設定をテーブルにする必要があるがGTID必須とかでなくて気軽に使えそう。
ピュアSQLでマルチマスタしてる人が実はより前にいたw
データディレクトリを同じとこにする(MyISAM)方法もあるよう。
MySQLで変態的なことを考える人多いみたい。
-----
@Rkajiyama | 殿堂入りできないLabs ~Multi-Source Replication を添えて~ |
かじやまさん。
http://www.slideshare.net/rkajiyama/20131025-casual-uppt
PerconaToolkitもいいけどMySQLUtilityのことも思い出してください
labs.mysql.comのやつの紹介。絶対にプロダクション環境でつかっちゃだめよ。
HadoopAplier for MySQL
Insertしかできない。ほかのことがしたい場合はパッチをかくか待つか。
MySQLJSONUDFs
yamasakiさんにきいてね
マルチソースレプリケーション
さきほど説明されたとおりchannelつかうのでFor channel=がいっぱいつく
MySQLUtilities
けっこうべんりなのでぜひつかってみてね
Fablic
シャーディングしてくれるやつ。マスタスレーブ構成のグループにしておいて、管理サーバが判別してアプリケーションに場所を返すとコネクタがそれを取得して情報をとりにいく
アプリケーションは場所しらなくて大丈夫
まだ設計だけで実装は追いついてないそうです
フェイルオーバも自動だけど皆大好きGTIDが必要。
vnwrites.blogspot.comをみてくださいドキュメントは間違ってます
MySQLUtilities-Fabric + MySQL MulitisorceReplication + MultiThreadSlave (GTIDひつよう)
つかってみてバグレポートよろしく
AffectsMeというボタンが増えたので同じ目にあってる主張がbugsでできる
告知 11/13~15 db tec showcase 松信さんもくるよ、山崎さんが5.6のパフォチューとか、奥野さんがclusterの徹底解説とか、梶山さんが5.7の解説とかしてくれる
日本語の5.7マルチソースレプリケーションの記事あるとつぶやいてた人が。
----
LT枠
----
そのほか、sh2さんがAffectMe押そうとつぶやいてたGTIDのバグレポート(松信さんがかいてる
http://bugs.mysql.com/bug.php?id=69943
http://bugs.mysql.com/bug.php?id=70669
以上です。楽しかった。
資料のURLとかはみつけたら載せようかと思います。
読んでいただいてありがとうございました。またそのうちに。