前々からパッチは書いてあって(本番環境で使ってる)公開するする詐欺だったんだけれども、
著作権周りのごたごたが社内でやっと落ち着いたので今度こそ公開。
修正している内容の主なものは、
"--master-data=2と--dump-slave=2を同時に指定できるようにする"
です。
何に使うかというと、こんな構成で
・バイナリログのバックアップはlog-slave-updatesでスレーブにとってあるので、
・マスターのDISKが消し飛んでもバイナリログからロールフォワードを保証するためには
--master-dataと--dump-slaveの両方のポジション情報が必要で、
・でも2回もmysqldumpは取りたくなくて
…
グラフツールであるGrowthForecastはFluentdと組み合わせた利用で一躍有名となり、自分にとっても欠かせない存在となりつつあります。 ところがOS起動時の自動起動としたくても、公式サイトには以下の記述のみでした。
起動コマンド
$ growthforecast.pl --data-dir /home/user/growthforecast
http://kazeburo.github.io/GrowthForecast/
なんというか、ストイックすぎる・・・!
もちろん、start-growthforecast.sh的な起動スクリプトを作成し、/etc/rc.d/rc.localあたりから呼び出せば動きはしますが、自分以外の人が触るサーバだったりすると運用が引き継ぎづらいですよね。
…
[さらに読む]
なんかうれし恥ずかし状態になっているので頑張って調べてます。
もともとの話は、MySQL5.6で巨大テーブルのALTER TABLE中に
tmpdirに何かI/Oがあるせいで遅くなってる、という話で、
⇒MySQLでデータ領域をシステムと別diskにするならtmpdirも設定した方がいい - 酒日記
はてな支店
というか、でも、
During an online DDL operation that copies the table, files are
written to the temporary directory. ow.ly/kmDJ1
って書いてあったけど待ちます!
— SH2さん (@sh2nd) 2013年4月24日
Σ(゚д゚lll) 結論出てるじゃないですか!?
…
また使う気がするのでメモ。
mysql1> CREATE DATABASE d1;
mysql1> USE d1;
mysql1> CREATE TABLE t1 (num SERIAL, val VARCHAR(32), KEY (val(1))) ENGINE = InnoDB;
mysql1> INSERT INTO t1 VALUES (1, 'one'), (2, 'two'), (3, 'three');
mysql1> START TRANSACTION;
mysql1> SELECT * FROM t1 WHERE val = 'two' FOR UPDATE;
mysql2> SELECT * FROM t1 WHERE num = 3 LOCK IN SHARE MODE;
valの先頭1文字でインデックスになっているので、"[t]wo"のロックは"[t]hree"も一緒にロックする。
よってnum = 3のロックは不可能。
2013年4月17日にオラクルで開催された「MySQL
Casual Talks Vol.4」に初参加してきました。
さらにライトニングトーク(LT)もさせて頂けましたのでレポートしたいと思います。
前夜
開催前日の夜に「MySQL Casual Talks Vol.4」のイベント告知をTwitterで見つけました。
この手の勉強会は気づいたときには満席で参加を諦める事が多かったのですが、
今回は「事前登録不要/先着順受付」という新しい試みのお陰もあり、参加することが出来ました。
…
[さらに読む]
皆さん、Planet
MySQL Japanというサイトをご存じでしょうか?
公式のFAQ(以下参照)にあるように、MySQLにまつわる記事をまとめてくれるサービスです。
さらに、記事は https://twitter.com/planetmysql_jp にも掲載されます。
2013年4月20日現在、24のブログが登録されています。
What is Planet MySQL?
Planet MySQL is an aggregation of blogs and news from MySQL developers and users. The views expressed here are those of the author and do not …
[さらに読む]
取り敢えずBugsにも上げたんですけど、エスパーさんでないと伝わらない気がしています。
http://bugs.mysql.com/bug.php?id=68981
MySQL 5.6.2, 5.5.28,
5.1.66に搭載された新しいinformation_schema、INNODB_BUFFER_PAGEとINNODB_BUFFER_PAGE_LRU。
⇒ http://yoku0825.blogspot.jp/2013/02/informationschemainnodbbufferpage.html
これの中身をちょこちょこ確認していたところ、どうにも`ACCESS_TIME`が納得のいく値にならないことに気付いた。
mysql56> DESC INNODB_BUFFER_PAGE;[さらに読む]
+---------------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | …
--master-dataのオプションの説明にこんなことが書いてある。
on servers before MariaDB 5.3 this will still take a global read
lock for a short time at the beginning of the dump;
MariaDB 5.3以降だとFLUSH TABLE WITH READ LOCKしないのか?
⇒しない。START TRANSACTION WITH CONSISTENT SNAPSHOTの時に
binlog_snapshot_fileセッション変数とbinlog_snapshot_positionセッション変数に
値を自動的に格納してくれる。すご。
https://kb.askmonty.org/en/enhancements-for-start-transaction-with-consistent-snapshot/
⇒対応していないバージョンの場合、オプション解析中にFLUSH TABLES WITH READ LOCKが
必要な分岐に流れる。
527c531,532
< …
MySQL で「Illegal mix of collations」というエラーが出ることがあります。テーブルの charset と接続の charset 等、すべてを utf8 などで統一してれば出ないので、あまり見ることはないかもしれません。
私はカラム毎に charset を指定することがあるので、時々このエラーにハマります。
たとえば、次のようなテーブルを作ったりします。
CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, email VARCHAR(320) CHARSET ascii UNIQUE, name VARCHAR(30) CHARSET utf8 );
メールアドレスの規約は、ローカル部が最大64バイト、ドメイン部が最大255バイト、それと @
の1バイトで合計最大320バイトなので、 VARCHAR(320) にします。UNIQUE
インデックス持つカラムを utf8 charset で …