InnoDBストレージエンジンには InnoDB Monitor という機能があって、
だいたい`SHOW ENGINE INNODB
STATUSの結果をエラーログファイルに定期的に吐き出してくれる'というイメージがある。
mysql> CREATE TABLE innodb_monitor ( hoge int );
$ tail -f error.log
=====================================
130306 10:09:30 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 20 seconds
-----------------
BACKGROUND THREAD
-----------------
..
----------------------------
END OF INNODB MONITOR OUTPUT
============================
そのまんまですね。
これなら正直、mysql -e "SHOW ENGINE INNODB …
ある日SH2先生がつぶやきました。
127.0.0.1で接続したクライアントがlocalhostで認証されるらしい。再現しない
— SH2さん (@sh2nd) 2013年2月19日mysql.userにlocalhostのみがある場合、localhost
(UNIX Socket)、127.0.0.1
(TCP/IP)は両方接続できる。mysql.userに127.0.0.1のみがある場合、localhost (UNIX
Socket)では接続できない
— SH2さん (@sh2nd) 2013年2月19日GRANT ALL PRIVILEGES ON db1.* TO
test1(at)localhost、GRANT ALL PRIVILEGES ON db2.* TO
test1(at)127.0.0.1 ってやったときに、
— SH2さん (@sh2nd) 2013年2月19日(続き) mysql -u test1 -h localhost db2
は通らないけど mysql -u test1 -h …
MySQL 5.6から搭載、5.5.28,
5.1.66にもバックポートされたinformation_schema.INNODB_BUFFER_PAGEを覗いてみました。
http://dev.mysql.com/doc/refman/5.6/en/innodb-buffer-page-table.html
5.1.66(or later)は--plugin-loadでInnoDB
Pluginに食わせてやる必要があるので、my.cnfに書いておく。
さてさて。マニュアル読んでもよく判らなかったので、テキトーに流してみる。
mysql> SELECT PAGE_TYPE, TABLE_NAME, INDEX_NAME,
SUM(NUMBER_RECORDS) AS NUMBER_RECORDS, SUM(DATA_SIZE) AS
DATA_SIZE, SUM(COMPRESSED_SIZE) AS COMPRESSED_SIZE, SUM(IS_OLD =
'NO') AS OLD_PAGES, SUM(IS_OLD = 'YES') AS NEW_PAGES FROM
innodb_buffer_page GROUP BY PAGE_TYPE, …
使ってみたりBugsに色々上がったりしているのを見たのでメモ。
ネタ元はOracle公式のここ。 MySQL Server 5.6 defaults changes
・binlog_checksum
⇒5.6からの新規パラメータ。
暗黙のデフォルトはcrc32だが、
マスターが5.6、スレーブが5.5以下の(定石を無視した)環境ではnoneでないとI/O
Threadが転ける。
・innodb_buffer_pool_instances
⇒5.5ではデフォルト1が、デフォルトautosized8に。
autosizedではinnodb_buffer_pool_sizeが1300M以上の時はinnodb_buffer_pool_size/128Mに設定されるらしい。
…
Spiderストレージエンジンのバージョン 3.0(beta)とVartical Partitioningのバージョン
0.18(beta)をリリースしました。
大変長らくお待たせしました。今回は1年分の更新をまとめてお送りさせて頂きます。
Spiderストレージエンジンは、database sharding用のストレージエンジンです。
http://spiderformysql.com/
Vertical Partitioningストレージエンジンは、テーブルのVertical
Partitioning用のストレージエンジンです。
http://launchpad.net/vpformysql
バイナリのダウンロードにはこちらをご利用ください。
http://spiderformysql.com/download_spider.html
…
一晩がんばってみたけどこれ以上は僕の力量では解決方法がわからないので誰か続きをお願いします…!
kamipo/q4m at mysql-5.6 · GitHub
とりあえずビルドが通ってlibqueue_engine.soまではできあがるんだけど、INSTALL
PLUGIN queue SONAME 'libqueue_engine.so'してみるとSymbol not
foundでいけてない感じです。
追記
@kamipo 手元で確認したところ、-DDBUG_OFF が必要のようです。
— Isao Shimizu (@isaoshimizu) February 15, 2013
おぉ…手元で #define DBUG_OFF で …
[さらに読む]
MySQL5.6の新機能(といいつつ5.5.30にもバックポートされてる)、一部で念願だったデッドロックのログ機能を試してみる。
my.cnfにごにょごにょ。
[mysqld]loose-innodb-print-all-deadlocks
オプション名の先頭にloose-って付けると、
そのオプションが存在しないバージョンでもエラーにならずにワーニングで済むんですよ!
⇒出典 かみぽわーる さん
起動して、取り敢えずデッドロックさせてみる。
$ less error.log2013-02-14 17:55:31 7fc810773700InnoDB:
transactions deadlock detected, dumping detailed
information.2013-02-14 17:55:31 7fc810773700*** (1)
TRANSACTION:TRANSACTION 5638, ACTIVE 12 sec starting index
readmysql tables in use 1, locked 1LOCK WAIT 3 lock …
ぱっと見、誰も書いてなさそうなので。
MySQL 5.6ではバイナリログのチェックサム(binlog_checksum)が追加され、
しかもそれが5.6.5以降デフォルトで有効になっているので、
5.5をスレーブにして構成するとI/O ThreadがErr:1236で止まる。
mysql55> SHOW SLAVE STATUS\G
*************************** 1. row
***************************
Slave_IO_State:
Master_Host: localhost
Master_User: replicator
Master_Port: 64056
Connect_Retry: 60
Master_Log_File: bin.000007
Read_Master_Log_Pos: 4
Relay_Log_File: relay.000004
Relay_Log_Pos: 144
Relay_Master_Log_File: bin.000007
Slave_IO_Running: No
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
…
オープンソースカンファレンス2013@浜松 に、日本MySQLユーザ会(MyNA)として参画してきました。
https://www.ospn.jp/osc2013-hamamatsu/
全国各地で開催されている …
[さらに読む]
本当はpt-online-schema-changeとオンラインALTER
TABLEでどう違うかを実験したかったんだけど、
innodb_online_alter_log_max_sizeなんてものの存在を初めて知ったので取り敢えずメモ。
tpcc-mysqlを20WH, 20Connsで流しながらALTER TABLEをする at 5.6.10。
mysql> set foreign_key_checks = 0; ALTER TABLE stock ADD
test_col int unsigned not null default 0, ADD KEY (s_ytd);
Query OK, 0 rows affected (0.08 sec)
ERROR 1799 (HY000): Creating index 'PRIMARY' required more than
'innodb_online_alter_log_max_size' bytes of modification log.
Please try again.
mysql> show variables like
'innodb_online_alter_log_max_size';
+----------------------------------+-----------+
| Variable_name
| Value |
…