や、まあ、バイナリーログに吐かれるのはマニュアルに書いてあってそうなんだけれども、GTID振られるのは失念してた。
一つだけマニュアルが誤解を招く表現。
デフォルトでは、サーバーは FLUSH
ステートメントをバイナリログに書き込み、それらがレプリケーションスレーブにレプリケートされるようにします。ロギングを抑制するには、オプションの
NO_WRITE_TO_BINLOG キーワード、またはそのエイリアス LOCAL を指定します。
注記
FLUSH LOGS、FLUSH TABLES WITH READ LOCK (テーブルリスト付き、またはなし)、および
FLUSH TABLES tbl_name ... FOR EXPORT
は、スレーブにレプリケートされると問題が発生するため、どのような場合でもバイナリログに書き込まれません。
…
mikasafabric for MySQL が何なのかについては こちら
取り敢えずビルド方法のメモ。雑に。
#!/bin/bash
version="0.1.1"
dirname="mikasafabric-${version}"
rm -rf ~/rpmbuild
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
if [ -d ~/$dirname ] ; then
rm -rf ~/$dirname
fi
git clone https://github.com/gmo-media/mikasafabric.git ~/$dirname
cd ~/$dirname
git checkout ${version}
cd $OLDPWD
tar czf ~/rpmbuild/SOURCES/${dirname}.tar.gz $dirname
rpmbuild -bb ~/$dirname/mikasafabric.spec
ビルドにはpython-develとrpm-buildが必要。実際にmikasafabricを動かすにはmysql-connector-pythonが必要。CentOS …
ログポジションベースのレプリケーションの場合は、レプリケーション障害発生時にスレーブでSKIP処理を容易に行う事ができましたが、GTIDモードの場合は以下のように空のトランザクションを実行して、エラー対応をする必要がありました。
mysqlslavetrxを利用しない場合の例
root@localhost [sakila]> stop slave; Query OK, 0 rows affected (0.03 sec) root@localhost [sakila]> SET GTID_NEXT = "3edaa0b8-3e39-11e4-9df1-080027f5bf08:54"; Query OK, 0 rows affected (0.00 sec) root@localhost [sakila]> begin; commit; Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) root@localhost [sakila]> SET GTID_NEXT = "3edaa0b8-3e39-11e4-9df1-080027f5bf08:55"; Query OK, 0 rows affected (0.00 sec) root@localhost [sakila]> begin; commit; Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) root@localhost [sakila]> SET …[さらに読む]
京都で開催された、オープンソースカンファレンス(OSC)2016-Kyoto に参加してきました。
今までは、関西開催の京都の部、みたいな感じで、OSC-Kansai/Kyoto という呼び方でしたが、このたび実績を重ねてめでたく
OSC-Kyoto となったとのことです。
http://www.ospn.jp/osc2016-kyoto/
暑い夏の京都。今回は、京都駅からまずバスで会場であるリサーチパークに向かってみました。
京都のバスは路線が多く、入り組んでいるため、非常にわかりにくいです。
…
MySQL 5.7 で JSON 型が追加されたのに関連して、私がメンテナをしている MySQL ドライバーで罠にハマったので、 MySQL のテキストプロトコルの闇を書き残しておくことにします。
Text Resultset
MySQL にクエリを投げるコマンドが COM_QUERY で、そのレスポンスとして返されるのが Text Resultset と呼ばれる一連のパケットです。その中身は次のようになっています。
- column count (整数1つだけのパケット)
- column definition * column count (各カラムの定義)
- EOF
- row * N (結果行数分)
- EOF
この記事で注目するのは column definition パケット ( …
[さらに読む]
SHOWってshwoってタイポしませんか? わたしはします。
mysqlコマンドラインクライアントでの改変は、やった。- 日々の覚書: mysqlコマンドラインクライアントでuseの代わりにcdを使う
クエリーリライトプラグインも、やった。- 日々の覚書:
過去、現在、未来、全宇宙に存在する全てのクソクエリーを、生まれる前に自分の手でカジュアルに消し去ること(仮)- Handlerさんコンニチワ (lsステートメントとかcatステートメントとかやった)
…
MySQL Bugs: #82330: Don't recursively-evaluate
stopword after tokenize
ngramパーサー
を使ってアルファベット混じりの日本語全文検索をしようとすると悲劇が起こる。デフォルトのストップワード一覧は このへん 。
MySQL
5.7.13で全文検索INDEXを使ってるんですけど半角英字でヒットする奴とヒットしないやつが居るんですけどこれって何ででしょう…
ちなみに NGRAMを2文字 です。 例えばbabyって単語が含まれてる文章でbabyって単語がヒットしません。 stop …
現状、まだLab版ですが、MySQL5.7の追加のプラグインとして、マルチマスタまたはアクティブ/アクティブレプリケーションをサポートする
同期レプリケーション型のグループレプリケーションが準備されています。まだ、Lab版という事もあり、機能追加やバグ対応などがまだまだ必要な段階ですが、LAB版→DR版→RC版→GA版と段々と安定してくると思いますので、次のLab版がリリースされたら是非検証環境で試してみて頂ければと思います。
マスターサーバーのHA対応やスレーブが多い環境で、マスターサーバーのレプリケーション負荷分散等に活用出来そうです。
Group Replication関連参考ブログを見て頂けると、基本的なインストール方法が書かれていますので試される場合は、此方を参考にして下さい。
…
[さらに読む]前回 MySQL X Protocol で使用している Protobuf について書きましたが、それだけでは MySQL のプロトコルは解析できません。
TCP を流れるデータは区切りがないので、書き込み側が Protobuf データをただ垂れ流しても、読み込む側がどう読んで良いのかわかりません。
書き込むデータの大きさと、書き込む Protobuf データの型を相手に伝える必要があります。
MySQL X Protocol のパケットは次のようになっているようです。
┌────┬─────────────── │size(4) │type(1) + Protobuf(size-1) └────┴───────────────
最初の4バイト(リトルエンディアン)で続くデータ部のサイズを示します。 …
[さらに読む]既に昨日のdb tech showcaseのスライドでご存じの方も多いだろうが、この度MySQL 5.7の新機能を解説するための書籍を発行させていただくこととなった。8月23日発売予定である。
MySQL 5.7の新機能については、これまでブログでは紹介してこなかった。というのも、あまりにもボリュームが多すぎて、ブログという媒体でカジュアルに紹介するには向いていないと思ったからだ。とはいえ、MySQL 5.7を皆さんに使っていただくには、誰かが新機能をしっかりと解説しなければならない。どうするべきか考えた結果、書籍としてまとめて出させていただくことになった。
…
[さらに読む]