Community journal

The latest from the MySQL community

Ideas, releases, practical guides, and perspectives from the people building with MySQL.

Follow the feed
Showing entries 1581 to 1590 of 3187 « Previous | Next »
InfiniDBのデータサイズメモ

ロード前の.tsvファイルの情報。


$ ls | wc
457 457 13531

$ du -sh .
8.4G .

$ gzip -l *.gz | sort -k 3 -n | head -2
compressed uncompressed ratio uncompressed_name
8828777 65857744 86.6% hogelog.tsv

$ gzip -l *.gz | sort -k 3 -nr | head -2
7788996 179347671 95.7% hogelog.tsv
7507164 173335810 95.7% hogelog.tsv

$ gzip -l *.gz | awk '{compressed += $1; uncompressed += $2}END{printf("%d\t%d\n", compressed, uncompressed)}'
17863413934 237716864426



非圧縮で200GB、平均すると圧縮率は92.5%…って、compressedの合計とduの結果合わないけどまあいいや。。


これを1テーブルにまとめてInfiniDBに突っ込んだ結果。

mysql> SHOW …
[さらに読む]
OSC広島と中国地方DB勉強会に参加しました。

かねてから予告していた通り、OSC広島と中国地方DB勉強会(第5回)に参加させて頂いた。両方のイベントがこの土日で連続して行われたので、いずれのイベントにも遠方からの参加者がたくさんいて盛況だったように思う。OSC広島ではデモマシンの展示を、中国地方DB勉強会ではスライド(MySQLのトラブルシューティングについて)の発表をそれぞれやらせて頂いたので、今日はその報告をさせて頂こう。

OSC広島に持っていったデモマシン既にツイッターやFacebookで目にされた方もいらっしゃるかも知れないが、今回展示したマシンのコンセプトは「持ち運べるMySQL Clusterのデモ環境」というものだ。MySQL Clusterを動作させるためのBeagle Bone Black …

[さらに読む]
mysql_install_dbが生成する.mysql_secretのパスワード形式が5.7で変更になってる

5.7.4をちょこちょこいじっていてふと気付いた。


$ cat ~/.mysql_secret
# The random password set for the root user at Tue Sep 16 18:33:14 2014 (local time):
9dl}uOS35]s4pAa3


…あれ、なんか桁数とバリエーション増えてない?;


358 sub generate_random_password {
359   # On (at least) Linux and Solaris, a "random" device is available, use it:
360   # cat /dev/urandom | LC_ALL=C tr -dc "[:alnum:]" | fold -w 8  | head -1
361   # Without LC_ALL, "tr" may not know the "alnum" character class -
362   # and there are user profiles which do not have this set.
363   #
364   my $password = `cat /dev/urandom | LC_ALL=C tr -dc "[:alnum:]" | fold -w 8  | head -1`;
365   chomp ($password);
366   return $password;
367 }
…

[さらに読む]
MySQL 5.7で追加されたALTER TABLE .. RENAME INDEX

5.7.5が来る前に、5.7.4までのおさらい。

mysql57> SHOW CREATE TABLE t1\G
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE `t1` (
`num` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`val` varchar(32) DEFAULT NULL,
UNIQUE KEY `num` (`num`),
KEY `org_index` (`val`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql57> ALTER TABLE t1 RENAME INDEX org_index TO renamed_index;
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql57> SHOW CREATE TABLE t1\G
*************************** 1. row ***************************
Table: t1
Create Table: CREATE TABLE `t1` (
`num` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`val` varchar(32) DEFAULT NULL,
UNIQUE KEY `num` (`num`),
KEY `renamed_index` (`val`)
) …
[さらに読む]
LOAD DATA INFILEで複数ファイルを食わせるのにちょっとだけ有効なTIPS

LOAD DATA INFILEで複数のファイルを順番(じゃなくてもいいけど)食わせる場合を考える。

↓こんなかんじ


$ ll *.tsv
-rw-rw-r-- 1 mysql mysql 541810051 Sep 16 10:51 20140912.tsv
-rw-rw-r-- 1 mysql mysql 523910384 Sep 16 10:52 20140913.tsv
-rw-rw-r-- 1 mysql mysql 513351897 Sep 16 10:53 20140914.tsv
-rw-rw-r-- 1 mysql mysql 513221906 Sep 16 10:54 20140915.tsv



無圧縮なファイルなら、シェルでぐるんぐるん回すのが便利。

$ for f in *.tsv ; do
> mysql -sse "LOAD DATA INFILE $f INTO TABLE .." && gzip $f
> done



成功したらgzip圧縮とかそのまんま書けるのでラク。
ただし、圧縮ファイルだと"展開" => "LOAD DATA INFILE" => "再圧縮"とか書くのはちょっと面倒だしなんかイヤだ。
…

[さらに読む]
InfiniDBのERROR 122 Bulkload Read Failed.

気持ちよくLOAD DATA INFILEしてたら急に現れたこんなやつ。

mysql> LOAD DATA INFILE '/data/tmp/fifo' INTO TABLE vegelog;
ERROR 122 (HY000): PM1 : Bulkload Read (thread 0) Failed for Table d1.t1. Terminating this job.



ちなみにError 122はHandler層でのエラーらしい。

$ /usr/local/Calpont/mysql/bin/perror 122
OS error code 122: Disk quota exceeded
MySQL error code 122: Internal (unspecified) error in handler


結論だけ書くと、テーブルのスキーマと食わせてたtsvファイルが完全に一致していなかった。
MySQLのLOAD DATA INFILEを使ってやると勝手にtruncationされて入る…んだけど、スキーマちゃんと調整しました。


mysql> SELECT @@infinidb_use_import_for_batchinsert; -- これがONだとLOAD DATA …
[さらに読む]
InfiniDBにロードしている時に ERROR 122 (HY000): CAL0006: IDB-2008: The version buffer overflowed. と言われた

fifoファイル使ってごりごり流してたら怒られた。

mysql> LOAD DATA INFILE '/data/tmp/fifo' INTO TABLE infinidb_table
ERROR 122 (HY000): CAL0006: IDB-2008: The version buffer overflowed. Increase VersionBufferFileSize or limit the rows to be processed.


VersionBufferFileSizeを上げるのはいいんだけど、どれくらいが適正なのか、何をするパラメーターなのか、そもそもどこで設定するのかとかいろんな情報が出てこなくて困った。

とりあえず上げ方。


$ /usr/local/Calpont/bin/calpontConsole

InfiniDB> getSystemConfig
getsystemconfig Tue Sep 16 11:35:41 2014

System Configuration

SystemName = calpont-1
SoftwareVersion = 4.6.0
SoftwareRelease = 1
ParentOAMModuleName = pm1
StandbyOAMModuleName = unassigned
NMSIPAddr = 0.0.0.0 …
[さらに読む]
MariaDBの監査プラグインの導入

WED, 2014/09/03 07:48 ANATOLIYDIMITROV

データベースの環境を監視する上で監査は必須のタスクである。監査の情報はパフォーマンスやアプリケションの問題をトラブルシュートしたり、どのようなSQLクエリが処理されているのか正確に知るのに役立つ。 MariaDBの監査プラグインは、MariaDBだけでなく、MySQLにも監査機能を提供する。

MariaDBを公式のパッケージからインストールした場合は、標準でインストール済みでも有効化されているわけでもないがプラグインはシステム上にある。 server_audit.so(Linux)かserver_audit.dll(Windows)をプラグインディレクトリ(CentOS 6では/usr/lib64/mysql/plugin)を探してみてほしい。 …

[さらに読む]
MySQLのロックについて

JPOUG> SET EVENTS 20140907 | Japan Oracle User Group (JPOUG)に参加して発表をしてきました。IIJさまのセミナルームは窓からの眺めがすばらしいですね。JPOUGの運営メンバのみなさま、会場を提供してくださったIIJのみなさま、当日お越しいただいたみなさま、どうもありがとうございました。 私のセッションでは「MySQLのロックについて」と題してネクストキーロックなどの説明をしました。プレゼンテーション資料と、調査のために作成したツールを公開します。 プレゼンテーション資料 (PDF) Lock Inspector 1.0 プレゼンテーション資料からリンクしているウェブサイトの一覧です。 MySQL Lists: mysql: Re: InnoDB’s inner workings + checkpoints 過去記事の訂正 …

[さらに読む]
MySQLのロックについて

JPOUG> SET EVENTS 20140907 | Japan Oracle User Group (JPOUG)に参加して発表をしてきました。IIJさまのセミナルームは窓からの眺めがすばらしいですね。JPOUGの運営メンバのみなさま、会場を提供してくださったIIJのみなさま、当日お越しいただいたみなさま、どうもありがとうございました。

私のセッションでは「MySQLのロックについて」と題してネクスト …

[さらに読む]