Original post : http://anothermysqldba.blogspot.com/2014/06/mysql-table-error-1064.html
だから私は今日奇妙な状況に出くわした。
私は、PHP $ _COOKIE
['PHPSESSID']の値を使用して、メモリテーブルを作成するシステムを持っている。
いくつかの作業が完了すると、それは、テーブルをドロップします。
2つのサンプルテーブルは、私の例については、以下である。
@@VERSION: 5.6.19-log
CREATE TABLE `f7a7a8d3a7ba75b5eb1712864c9b27eb` (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY (`id`)
-> ) ENGINE=MEMORY;
CREATE TABLE `8865e52c7e1bea515e7156f240729275` (
…
Ubuntu の MySQL の datadir は /var/lib/mysql
です。これを別のディレクトリに変更して動かそうとするとエラーになります。
# mkdir /hoge # mysql_install_db --datadir=/hoge Installing MySQL system tables... 140614 8:57:23 [Warning] Can't create test file /hoge/hostname.lower-test 140614 8:57:23 [Warning] Can't create test file /hoge/hostname.lower-test Installation of system tables failed! Examine the logs in /hoge for more information. ...
これは AppArmor の設定で、mysqld に対して /hoge へのアクセスが許可されていないためです。
# vi /etc/apparmor.d/local/usr.sbin.mysqld # Site-specific additions and overrides for usr.sbin.mysqld. # For more details, please see /etc/apparmor.d/local/README. /hoge/ r, /hoge/** rwk, # service apparmor reload * Reloading AppArmor profiles Skipping profile in /etc/apparmor.d/disable: usr.bin.firefox Skipping profile in …[さらに読む]
・・・という話を、いつもならこちらの日記に書いているのに、
うっかり、あちらの日記に書いてしまいました。
ということで、以下URL。 ご笑覧くださいませ。
たとえばこんなエラーログ。
140603 10:05:58 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000032' at position 61352894, relay log './mysql-relay.000787' position: 21485832
140603 10:05:58 [Note] Slave I/O thread: connected to master 'replicator@xxx.xxx.xxx.xxx:3306', replication started in log 'mysql-bin.000032' at position 61352894
140603 10:05:58 [ERROR] Error reading packet from server: Client requested master to start replication from impossible position ( server_errno=1236)
140603 10:05:58 [ERROR] Got fatal error 1236: 'Client requested master to start replication from impossible position' from master when reading data from binary log
140603 10:05:58 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000032', position 61352894
START SLAVEしたタイミングでこんなんが出ることがあります。
…
今ふっと2年くらい前にInfobright調べてたことを思い出しましたが気にしない。
Infobrightが今どうなったのかは知りませんが、InfiniDBは去年くらい(4.0)から「商用版とオープンソース版のコードベースが統合され、機能制限がなくなった(同じ機能が使える)」と前々から聞いていたので、GPL版だと変にコア数の制限を受けたりするInfobright使うぐらいならInfiniDBかなと思って。
昔は www.calpont.com (Calpontって会社がInfiniDBを作ってた)
だったものの、今はInfiniDB社になったっぽく、URLは http://infinidb.co/ にリダイレクトされる。
ダウンロードページにいってプラットフォームを選ぶと、「Access denied. You must log in to view …
senna_log_levelでぐぐったけど、まさかの何も見つからなかったので。
const char *senna_log_level_type_names[] = { "NONE", "EMERG",
"ALERT",
"CRIT", "ERROR",
"WARNING",
"NOTICE", "INFO",
"DEBUG",
"DUMP", NullS };
TYPELIB senna_log_level_typelib=
{
array_elements(senna_log_level_type_names)-1, "",
senna_log_level_type_names, NULL
};
…
1000000です。
↓は"log-bin= bin"を設定した状態。
# ll[さらに読む]
total 537160
-rw-rw---- 1 mysql mysql 56 May 20 14:32 auto.cnf
-rw-rw---- 1 mysql mysql 139 May 20 15:42 bin.000001
-rw-rw---- 1 mysql mysql 13 May 20 15:42 bin.index
-rw-r----- 1 mysql root 11916 May 20 15:42 error.log
-rw-rw---- 1 mysql mysql 884 May 20 15:42 ib_buffer_pool
-rw-rw---- 1 mysql mysql 268435456 May 20 15:42 ib_logfile0
-rw-rw---- 1 mysql mysql 268435456 May 20 15:42 ib_logfile1
-rw-rw---- 1 mysql mysql 12582912 May 20 15:42 ibdata1
-rw-rw---- 1 mysql mysql 6 May 20 15:42 mysql.pid
drwx------ 2 mysql mysql 4096 May 20 14:32 mysql
drwx------ 2 mysql mysql 4096 May 20 14:32 performance_schema
-rw-rw---- 1 mysql mysql 322 May 20 15:42 slow.log
drwx------ 2 mysql mysql 4096 May 20 14:32 test
# mv -i bin.000001 bin.999999
# …
そのままなんですが。
インデックス張ってからロードしたとき。
mysql> CREATE TABLE t1 (num int unsigned, val varchar(32), upd datetime default current_timestamp);[さらに読む]
mysql> ALTER TABLE t1 ADD KEY (val, upd), ADD KEY (upd);
mysql> LOAD DATA INFILE '/data/tmp/md5.tsv' INTO TABLE t1(num, val);
$ ls -ls /data/tmp/mysql/d1/t1.ibd
1754804 -rw-rw---- 1 mysql mysql 1795162112 May 20 14:41 /data/tmp/mysql/d1/t1.ibd
mysql> SHOW TABLE STATUS\G
*************************** 1. row ***************************
Name: t1
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 9705549
Avg_row_length: 74
Data_length: 727711744
Max_data_length: 0
Index_length: 1027342336
Data_free: 6291456
Auto_increment: NULL
Create_time: 2014-05-20 14:38:32
…
InnoDBのオンラインALTER TABLEの時に使われるパラメーター。
セッション変数のsort_buffer_sizeのように使われて、これをあふれたぶんだけsort_merge_passes相当の処理が走るので重くなる。
http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_sort_buffer_size
最大値が6.7GBに見えたけど全くの空目で、最大値は64Mと小さめ。暗黙のデフォルトは1M。
実際どれくらい違うのか。ざっくりテスト。
$ perl -e 'use Digest::MD5 qw/md5_hex/; open($fh, ">/data/tmp/md5.tsv"); for ($n= 1; $n<= 10000000; $n++) {printf($fh "%d\t%s\n", $n, md5_hex($n));}'[さらに読む]
$ cat /data/tmp/md5.sql
SELECT @@innodb_sort_buffer_size;
use d1 …
innobackupexのオプションごとにどれくらいかメモ。
主にファイルサイズと処理時間を比べたいだけなので、MySQLは起動しておれどトラフィックはなし。tpcc-mysqlのWH=
100をロードしただけ。
$ du -sh /data/mysql
14G /data/mysql
データファイル意外と小さかった。。RESET MASTERしたのでバイナリーログは当然含まず。
tarボールストリーム圧縮なし
$ time innobackupex /data/mysql --stream=tar | ssh mysql@backup-server "cat - > /data/tmp/xtrabackup.tar"[さらに読む]
..
real 4m53.213s
user 4m13.456s
sys 0m37.721s
$ ls -lh xtrabackup*
-rw-rw-r-- 1 mysql mysql 8.5G May 19 16:35 xtrabackup.tar
$ mkdir xtrabackup
$ time tar ixf xtrabackup.tar -C xtrabackup
real 0m16.243s
user …