Skip to content

Instantly share code, notes, and snippets.

@onigra
onigra / gist:5675674
Created May 30, 2013 04:11
スキーマに登録されてるテーブルをdumpする
#!/bin/bash
schema_name="hoge"
for x in `mysql -N -u user -ppass -e "select TABLE_SCHEMA || '@' || TABLE_NAME from information_schema.tables where TABLE_SCHEMA = '${schema_name}';"`;
do
table_name=`echo ${x} | cut -d@ -f2`;
mysqldump -t -u user -ppass -w"last_update >= '2013-05-01 00:00:00'" --add-drop-table=false --insert-ignore ${_schema_name} ${_table_name} > ${_table_name}.sql
done
#!/bin/bash
while getopts "i:h:n" opts
do
case $opts in
i) _MASTER_HOST=$OPTARG ;;
h) _MASTER_HOSTNAME=$OPTARG ;;
n) _DRYRUN="TRUE" ;;
esac
done
@onigra
onigra / gist:5572793
Created May 14, 2013 00:54
Mac OSX(LIon)にriakとtd-agentをインストールしてMySQLのslow-logを収集する

Mac OSX(LIon)にriakとtd-agentをインストールしてMySQLのslow-logを収集する

1.riakのインストール

brew install riak

riak起動(怒られる)

@onigra
onigra / gist:5486586
Last active December 16, 2015 19:39
mysqlのslow-logをfluentdで集める

環境

  • CentOS 6.3
  • perl 5.10.1
  • MySQL 5.5.30

MySQL、fluent-agent-lite、td-agent全てlocalhostで動かしている

必要なツール

find ./ -type f -exec md5sum {} \; > /tmp/checksums.md5
md5sum -c /tmp/checksums.md5
@onigra
onigra / gist:5251025
Last active December 15, 2015 11:09
ディレクトリ配下のファイルを再帰的にリモートホストへrsyncする
#!/bin/bash
# http://futuremix.org/2011/02/rsync
# http://study.next-engine.net/rsync%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6.html
# パスの末尾に/をつけてもつけなくても大丈夫なようにsedする
from_dir=`echo $1 | sed -e "s|/$||"`
to_host_user=$2
to_host=$3
to_dir=`echo $4 | sed -e "s|/$||"`
@onigra
onigra / gist:5242364
Created March 26, 2013 01:20
インデックスが重複してないかチェックするSQL
select
Z.TABLE_SCHEMA,
Z.TABLE_NAME,
Z.idx_column,
Z.CNT
from
(
select
Y.TABLE_SCHEMA,
Y.TABLE_NAME,
@onigra
onigra / gist:5114089
Last active December 14, 2015 16:19
MySQLに大規模データ移行した際のノウハウ

BULK INSERT ではなく LOAD INFILE を使う

基本

バイナリログを停止する

SUPER権限を持っているユーザーなら下記のSQLでそのセッションだけバイナリログを無効にできる

SET sql_log_bin=OFF;
@onigra
onigra / gist:4966081
Created February 16, 2013 08:29
mysqlのスキーマにある各テーブルに対してまとめてごにょごにょするワンライナー

例:データベース名"database_name"にある全てのテーブルにtruncateするワンライナー

for x in `mysql -N -ppassword database_name -e "show tables;"`; do echo "truncate table ${x} ;" | mysql -N -ppassword database_name ; done