Submit Search
tcpdump & xtrabackup @ MySQL Casual Talks #1
17 likes
5,562 views
Ryosuke IWANAGA
1 of 39
Download now
Downloaded 68 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
More Related Content
PDF
MySQL 初めてのチューニング
Craft works
PPTX
MySQLの運用でありがちなこと
Hiroaki Sano
KEY
Mysql casial01
matsuo kenji
PPTX
MySQL clients
yoku0825
PDF
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
PDF
MySQLの冗長化 2013-01-24
Yoshihiko Matsuzaki
PPTX
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
hiroi10
PDF
MySQL ガチBeginnerがやってみたことと反省したこと
Satoshi Suzuki
MySQL 初めてのチューニング
Craft works
MySQLの運用でありがちなこと
Hiroaki Sano
Mysql casial01
matsuo kenji
MySQL clients
yoku0825
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
MySQLの冗長化 2013-01-24
Yoshihiko Matsuzaki
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
hiroi10
MySQL ガチBeginnerがやってみたことと反省したこと
Satoshi Suzuki
What's hot
(20)
PDF
DBスキーマもバージョン管理したい!
kwatch
PDF
MySQLやSSDとかの話 前編
Takanori Sejima
PDF
MySQLバックアップの基本
yoyamasaki
PPT
Handlersocket 20140218
akirahiguchi
PDF
MHAの次を目指す mikasafabric for MySQL
yoku0825
PPT
Handlersocket etc. 20110906
akirahiguchi
PDF
ゆるふわMySQLフェイルオーバー
Kimitoshi Takahashi
PDF
MySQLチューニング
yoku0825
PDF
MySQL 5.6新機能解説@dbtechshowcase2012
Mikiya Okuno
PPTX
MySQL Clusterを運用して10ヶ月間
hiroi10
KEY
My sql casual_in_fukuoka_vol1
Makoto Haruyama
PDF
MySQL Casual Talks in Fukuoka vol.2
学 松崎
PDF
Mysql toranomaki
Mikiya Okuno
PDF
MySQL カジュアル 福岡 03
Aya Komuro
PPT
実践!データベースリファクタリングツール
Tatsunori Matoba
PDF
MySQLを割と一人で300台管理する技術
yoku0825
PDF
MySQL5.7 GA の Multi-threaded slave
Takanori Sejima
PDF
MySQLやSSDとかの話 後編
Takanori Sejima
PDF
sysloadや監視などの話(仮)
Takanori Sejima
PDF
「今そこにある危機」を捉える ~ pg_stat_statements revisited
Uptime Technologies LLC (JP)
DBスキーマもバージョン管理したい!
kwatch
MySQLやSSDとかの話 前編
Takanori Sejima
MySQLバックアップの基本
yoyamasaki
Handlersocket 20140218
akirahiguchi
MHAの次を目指す mikasafabric for MySQL
yoku0825
Handlersocket etc. 20110906
akirahiguchi
ゆるふわMySQLフェイルオーバー
Kimitoshi Takahashi
MySQLチューニング
yoku0825
MySQL 5.6新機能解説@dbtechshowcase2012
Mikiya Okuno
MySQL Clusterを運用して10ヶ月間
hiroi10
My sql casual_in_fukuoka_vol1
Makoto Haruyama
MySQL Casual Talks in Fukuoka vol.2
学 松崎
Mysql toranomaki
Mikiya Okuno
MySQL カジュアル 福岡 03
Aya Komuro
実践!データベースリファクタリングツール
Tatsunori Matoba
MySQLを割と一人で300台管理する技術
yoku0825
MySQL5.7 GA の Multi-threaded slave
Takanori Sejima
MySQLやSSDとかの話 後編
Takanori Sejima
sysloadや監視などの話(仮)
Takanori Sejima
「今そこにある危機」を捉える ~ pg_stat_statements revisited
Uptime Technologies LLC (JP)
Ad
Viewers also liked
(13)
PDF
Tcpdump basico
Josu Orbe
PPT
TCPdump-Wireshark
Harsh Singh
PPT
Tomasz P from Poland
irenazd
PPTX
Cain and abel
Maxiene Alex Mejia
PPTX
Kismet
Nilesh Pawar
PPT
09 Cain And Abel
Maranata
PPTX
Tcpdump
Sourav Roy
PPTX
Wireshark
Deepika Ojha
PPTX
Tcpdump hunter
Andrew McNicol
PPT
Tcpdump
Tensor
PPTX
Practical Packet Analysis: Wireshark
Ashley Wheeler
PPT
Wireshark - presentation
Kateryna Haskova
PPTX
Network Packet Analysis with Wireshark
Jim Gilsinn
Tcpdump basico
Josu Orbe
TCPdump-Wireshark
Harsh Singh
Tomasz P from Poland
irenazd
Cain and abel
Maxiene Alex Mejia
Kismet
Nilesh Pawar
09 Cain And Abel
Maranata
Tcpdump
Sourav Roy
Wireshark
Deepika Ojha
Tcpdump hunter
Andrew McNicol
Tcpdump
Tensor
Practical Packet Analysis: Wireshark
Ashley Wheeler
Wireshark - presentation
Kateryna Haskova
Network Packet Analysis with Wireshark
Jim Gilsinn
Ad
Similar to tcpdump & xtrabackup @ MySQL Casual Talks #1
(20)
KEY
Web Operations and Perl kansai.pm#14
Masahiro Nagano
PDF
HashiCorpのNomadを使ったコンテナのスケジューリング手法
Masahito Zembutsu
PDF
LINEのMySQL運用について
LINE Corporation
PDF
Maatkitの紹介
Akinori YOSHIDA
PDF
20140612_Docker上でCloudStackを動かしてみる!!
Midori Oge
PDF
Webサーバのチューニング
Yu Komiya
PDF
ioMemoryとAtomic Writeによるデータベース高速化
IIJ
PDF
Node予備校 vol.1 名古屋
Mori Shingo
PDF
TripleOの光と闇
Manabu Ori
PPT
Maatkit で MySQL チューニング
Kensuke Nagae
PDF
配布用Beginnerならきっと役立つmaster slave環境
yut148atgmaildotcom
PDF
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
PDF
Lxc cf201207-presen
Kouhei Maeda
PDF
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
PPT
HandlerSocket plugin for MySQL
akirahiguchi
PDF
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
maebashi
PDF
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
Insight Technology, Inc.
PDF
Puppet on AWS
Sugawara Genki
PDF
Apache cloudstack4.0インストール
Yasuhiro Arai
PDF
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
Web Operations and Perl kansai.pm#14
Masahiro Nagano
HashiCorpのNomadを使ったコンテナのスケジューリング手法
Masahito Zembutsu
LINEのMySQL運用について
LINE Corporation
Maatkitの紹介
Akinori YOSHIDA
20140612_Docker上でCloudStackを動かしてみる!!
Midori Oge
Webサーバのチューニング
Yu Komiya
ioMemoryとAtomic Writeによるデータベース高速化
IIJ
Node予備校 vol.1 名古屋
Mori Shingo
TripleOの光と闇
Manabu Ori
Maatkit で MySQL チューニング
Kensuke Nagae
配布用Beginnerならきっと役立つmaster slave環境
yut148atgmaildotcom
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
Lxc cf201207-presen
Kouhei Maeda
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
HandlerSocket plugin for MySQL
akirahiguchi
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
maebashi
[A33] [特濃jpoug statspack on pdb oracle database 12c] 20131115 補足・続報付き
Insight Technology, Inc.
Puppet on AWS
Sugawara Genki
Apache cloudstack4.0インストール
Yasuhiro Arai
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
More from Ryosuke IWANAGA
(9)
PDF
"I want to use Fluentd" Fluentd Casual Talks LT
Ryosuke IWANAGA
PDF
"Mobage DBA Fight against Big Data" - NHN TE
Ryosuke IWANAGA
PDF
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Ryosuke IWANAGA
KEY
English Casual 2012/05/10
Ryosuke IWANAGA
KEY
Devsumi2012 攻めの運用の極意
Ryosuke IWANAGA
PDF
20120127 LDeNA LT riywo
Ryosuke IWANAGA
KEY
#bphbqpstudy2012 LT riywo
Ryosuke IWANAGA
PDF
qpstudy#5 懇親会LT riywo
Ryosuke IWANAGA
ZIP
Tsukuba.R#4
Ryosuke IWANAGA
"I want to use Fluentd" Fluentd Casual Talks LT
Ryosuke IWANAGA
"Mobage DBA Fight against Big Data" - NHN TE
Ryosuke IWANAGA
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Ryosuke IWANAGA
English Casual 2012/05/10
Ryosuke IWANAGA
Devsumi2012 攻めの運用の極意
Ryosuke IWANAGA
20120127 LDeNA LT riywo
Ryosuke IWANAGA
#bphbqpstudy2012 LT riywo
Ryosuke IWANAGA
qpstudy#5 懇親会LT riywo
Ryosuke IWANAGA
Tsukuba.R#4
Ryosuke IWANAGA
tcpdump & xtrabackup @ MySQL Casual Talks #1
1.
tcpdump
と xtrabackup @riywo
2.
アジェンダ ● tcpdumpとか
● tcpdumpでクエリ見る ● mk-query-digest ● MyQueryShow(3日で作った><) ● xtrabackupとか ● InnoDBのHotbackupの手法 ● xtrabackupの使い方入門編 2
3.
tcpdump とか
3
4.
tcpdumpでSQLを見る ● みんな大好きtcpdump ●
たまにパケット落ちるけど結構使える ● libpcapはそんなもんらしい ● mysql(やmemcachedやhttp)はテキスト プロトコルなので読める! 4
5.
tcpdumpでSQLを見る tcpdump -s 0
-l -w - dst port 3306|strings|perl -e ' while(<>) { chomp; next if /^[^ ]+[ ]*$/; if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT| ROLLBACK|CREATE|DROP|ALTER)/i) { if (defined $q) { print "$qn"; } $q=$_; } else { $_ =~ s/^[ t]+//; $q.=" $_"; } }' http://www.mysqlperformanceblog.com/2008/11/07/poor-mans-query-logging/ 5
6.
6
7.
tcpdumpでSQLを見る ● これだと実行時間がわからない。 ●
日本語ちょっと化ける。 ● perlで頑張ればましになるかも。。 ● ※MySQL 5.1なら ● set global long_query_time = 0でslow- logに全部出る! ● 但しコネクションプールしてると出な い。。。(set globalは新規接続から) 7
8.
mk-query-digest ● Perconaの人が作ってるUtility
scripts “Maatkit”の中の1つ ● http://www.maatkit.org ● id:marqs++ ● http://www.slideshare.net/marqs/maat kit-4098945 8
9.
mk-query-digest インストール # wget http://maatkit.googlecode.com/files/maatkit- 7041.tar.gz #
tar xvzf maatkit-7041.tar.gz # cd maatkit-7041 # perl Makefile.PL # make & make install -> /usr/bin/mk-query-digest 9
10.
mk-query-digest 一般的な使用例(mysqldumpslow的な) # mk-query-digest slow.log
10
11.
mk-query-digest 実はtcpdumpも食える! # tcpdump -s
65535 -x -nn -q -tttt port 3306 > /tmp/tcp.log # mk-query-digest --type tcpdump /tmp/tcp.log ※おまけ 実はmemcachedのtcpdumpも食える! # tcpdump -s 65535 -x -nn -q -tttt port 11211 > /tmp/tcp.log # mk-query-digest --type memcached /tmp/tcp.log 11
12.
mk-query-digest ●
reportはある時点の状況分析にはよさげ ● 総実行時間や実行回数の割合 ● 実行時間の平均や95パーセンタイル ● せっかくなら継続的に結果をみたい ● 時系列での変化を分析できると極めて有用 ● ドキュメントをよく読んでみると… ● --review, --review-history ● クエリの種類毎に統計情報を記録する機能! ● SQLのレビュー用っぽい 12
13.
mk-query-digest query_reviewをDBに記録しよう # export DSN=”h=host,D=db,u=user,p=pw” #
mk-query-digest --review $DSN,t=query_review --review_history t=query_review_history --create- review-table --create-review-history-table ... 13
14.
mk-query-digest 継続的に記録する tcpdump.sh #!/bin/sh SEC=$1; HOSTNAME=`hostname` /usr/sbin/tcpdump -s
65535 -x -nn -q -tttt (dst port 3306 or src port 3306) and host $HOSTNAME 2> /dev/null & PID=$!; sleep $SEC; kill $PID mk-qd-review.sh #!/bin/sh DSN=$1; TCPFILE=$2 /usr/bin/mk-query-digest --no-report --type tcpdump --review- history t=query_review_history --review $DSN,t=query_review --create-review-table --create-review-history-table $TCPFILE rm -f $TCPFILE 14
15.
mk-query-digest 継続的に記録する crontab * * *
* * /root/tcpdump.sh 30 > /tmp/tcp.log.`date '+%Y%m %d_%H%M'` 2> /dev/null * * * * * /root/mk-qd-review.sh h=host,D=test,u=test,p=test /tmp/tcp.log.`date -d '1 minutes ago' '+%Y%m%d_%H%M'` 2> /dev/null →これで毎分30秒間tcpdumpを記録して、 その分析結果を継続的にDBに 入れられる!(゚д゚)ウマー 15
16.
mk-query-digest ●
統計情報をDBに入れるメリット ● SQLで簡単に抽出等ができる ● 例:〇〇時〇〇分から遅くなったクエリを探す ● でもSQLとかめんどいし。。。 ● 今流行はWEBアプリケーションだ! ● ブラウザでぽちぽち見れたら楽 ● ついでにグラフとかにできたらもっと楽 ● WEBアプリとか作ってみたい(←これが本音) 16
17.
作ってみた 「MyQueryShow」 https://github.com/riywo/MyQueryShow
17
18.
MyQueryShow
18
19.
MyQueryShow
19
20.
MyQueryShow ●
WAF ● Amon2(tokuhirom++) ● シンプルで使いやすい! ● jQuery + jQuery Grid plugin ● APIじゃなくてHTMLから表を作成 ● RRDTool ● 毎分バッチで統計DBから値取って更新 ● が、未実装。。 ● デモ 20
21.
MyQueryShow インストールなど $ git clone
git://... $ cd MyQueryShow $ cpanm -v --installdeps . ※ RRDsはがんばって入れて>< (apt/yum/port,brew) $ plackup MyQueryShow.psgi → 足りないと言われたモジュールはがんばってcpanmだ! $ perl -I./lib script/sync_data_to_rrd.pl → query_review(_history)をRRDに全部入れる ※ 基本的な運用としてはcronで今のデータだけを更新していく 21
22.
MyQueryShow ●
問題点 ● 名前がダサい ● UIがダサい ● ロジックがSQL ● 機能がしょぼい – クエリ詳細のページにexplainとか欲しい ● DB複数の時どうする? ● ソース上のクエリの実行箇所がわからん – →クエリコメント! 22
23.
MyQueryShow ※おまけ クエリコメント my $dbh =
DBI->connect('dbi:mysql:host=host:dbname=test','test','test', { RaiseError => 1, Callbacks => { ChildCallbacks => { execute => sub { my ($obj, @binds) = @_; my (undef, $file, $line) = caller; $obj->{Database}->{Statement} .= "/* $file:$line $obj->{Database}->{Name} */"; return; }, }, }, }); ↓ select * from query_review where checksum = '26684480389196246' 23 /* QueryComment.pm:30 host=localhost:dbname=test */
24.
もっと かっこいいの 誰か作って
><24
25.
xtrabackup とか
25
26.
InnoDBのHotbackup ●
Hotbackupとは… ● 更新を止めずにバックアップをすること ● バックアップ自体に時間がかかる(数時間はざら) ● →どうやって一貫性を保つか ● いくつかの方式 ● LVMのスナップショット ● mysqldump --single-transaction ● ibbackup & innobackup ● xtrabackup & innobackupex 26
27.
InnoDBのHotbackup ●
LVMのスナップショット ● あまりよく知らない>< ● 安定してなさそう ● mysqldump --single-transaction ● begin; してからmysqldumpする論理バックアップ ● データ増につれてバックアップ時間が長くなる ● ロールバックセグメントが肥大化する ● ibbackup & innobackup ● 有償>< 27
28.
InnoDBのHotbackup ●
xtrabackup & innobackupex ● ibbackup & innobackup風のオープンソフトウェア ● オンラインで物理バックアップができる! – バックアップ時間はレコード増えてもほぼ一定 ● 無償で使える Percona++ ● 簡単な説明 – WALを複製するプロセス – データファイルをコピーするプロセス – データファイルコピーが終わったら、WALを適応 – (適応はInnoDBのクラッシュリカバリを利用) – →コピー終了時点の静止断面が完成! 28
29.
[ InnoDB Internals:
InnoDB File Formats and Source Code Structure ]@MySQL University http://forge.mysql.com/wiki/InnoDB_Internals:_InnoDB_File_Formats_and_Source_Code_Structure
30.
2. その間にdatafleをコピー 1. InnoDBのWALを二重に記録
Copy of ibdata xtrabackup_logfile 3. 終了後に記録しておいたWALを適応 [ InnoDB Internals: InnoDB File Formats and Source Code Structure ]@MySQL University http://forge.mysql.com/wiki/InnoDB_Internals:_InnoDB_File_Formats_and_Source_Code_Structure
31.
xtrabackup使い方 インストール ・rpm/debを入れるのが簡単 ・makeする場合、MySQLのbuildも必要なのでちょっと面倒 http://www.percona.com/downloads/XtraBackup/LATEST/ ・xtrabackup WALのコピーとデータファイルのコピーができるCで書かれたプログ ラム。 ・innobackupex-XXX xtrabackupを便利に使うためのPerlで書かれたヘルパープログラ ム。 http://www.percona.com/docs/wiki/percona-xtrabackup:start
31
32.
xtrabackup使い方 ■よくある使い方 WALのコピーもデータファイルのコピーもxtrabackupで バックアップ # innobackupex-1.5.1 --slave-info
--user root --password pass /tmp/xtrabackup/ ■innobackupexの関数でフローを説明 start_ibbackup(); #xtrabackup起動 WALとデータのコピー開始 wait_for_ibbackup_suspend(); #データファイルコピー終了待ち mysql_lockall(); #更新をロックしてbinlogポジション記録 backup_files(); #.frmとかmysqlとかMyISAMをコピー resume_ibbackup(); #WALのコピーを停止 mysql_unlockall(); #ロックを解除 32
33.
xtrabackup使い方 ログの適応 # innobackupex-1.5.1 --apply-log /tmp/xtrabackup/YYYY-mm-dd_HH-MM-SS/ xtrabackup:
This target seems to be not prepared yet. xtrabackup: xtrabackup_logfile detected: size=2097152, start_lsn=(538288766) xtrabackup: Starting InnoDB instance for recovery. InnoDB: Log scan progressed past the checkpoint lsn 538288766 101211 11:25:25 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Doing recovery: scanned up to log sequence number 538934654 (34 %) 101211 11:25:25 InnoDB: Starting an apply batch of log records to the database... InnoDB: Progress in percents: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... xtrabackup: starting shutdown with innodb_fast_shutdown = 1 101211 11:25:26 InnoDB: Starting shutdown... 101211 11:25:31 InnoDB: Shutdown completed; log sequence number 538934654 xtrabackup: This target seems to be already prepared. xtrabackup: Starting InnoDB instance for recovery. 101211 11:25:32 InnoDB: Log file ./ib_logfile0 did not exist: new to be created InnoDB: Setting log file ./ib_logfile0 size to 1024 MB InnoDB: Database physically writes the file full: wait... InnoDB: Progress in MB: 100 200 300 400 500 600 700 800 900 1000 xtrabackup: starting shutdown with innodb_fast_shutdown = 1 101211 11:26:07 InnoDB: Starting shutdown... 33 101211 11:26:12 InnoDB: Shutdown completed; log sequence number 538934796
34.
xtrabackup使い方 ■よくある使い方2 WALのコピーをxtrabackupで、コピーはtar4ibdで ついでにgzipで固める(lzopの方が速くていいかも) # innobackupex-1.5.1 --stream=tar
--slave-info --user root --password pass ./ | gzip - > backup.tar.gz ・親プロセス wait_for_ibbackup_suspend(); #xtrabackupの準備待ち tar4ibdでデータファイルをSTDOUTへ mysql_lockall();以下同文(但し出力はSTDOUT) ・子プロセス xtrabackup --log-stream --target-dir=./ WALのコピーを行うだけ。始まったらsuspendファイル作る 34
35.
xtrabackup使い方 ■よくある使い方3 WALのコピーをxtrabackupで、コピーはscpで # innobackupex-1.5.1 --remote-host=host
--slave-info --user root --password pass /tmp/xtrabackup/ ・親プロセス wait_for_ibbackup_suspend(); #xtrabackupの準備待ち データファイルをscpでリモートホストへ mysql_loclall();以下同文(但し全てリモートホストへ) ・子プロセス xtrabackup --log-stream --target-dir=./ WALのコピーを行うだけ。始まったらsuspendファイル作る 35
36.
時間切れ ><
36
37.
続きは MySQL Casual
Talks #2 で(^^)v 37
38.
Thanks Oracle++ myfnder++ Speakers++ Listeners++
38
39.
Thank you for
listening God bless your MySQL! @riywo 39
Download