MySQLでのスローログ情報の取得方法
1186 ワード
今日はcaseを処理します.データベースが異常で、接続数が急増しました.スローログを分析しようと思ったが、スローログを見ると何Gもあり、しかも短いログフォーマットで、その時点を見つけるのは比較的難しい.そこで、スローログからポイントログを時間単位で抽出するスクリプトを書きました.スクリプト:
https://github.com/wubx/mysql-binlog-statistic/blob/master/bin/cutlogbytime
使用方法:
タイムスタンプを書く必要がある
これにより、一日のログファイルが小さく分析しやすくなります.また、日のファイルに基づいて、1日のある時点のログを取ることができます.
https://github.com/wubx/mysql-binlog-statistic/blob/master/bin/cutlogbytime
使用方法:
cutlogbytime
#
./cutlogbytime /path/slowlogfile starttime endtime > dstfile.log
タイムスタンプを書く必要がある
mysql> select unix_timestamp('2013-04-05');
+------------------------------+
| unix_timestamp('2013-04-05') |
+------------------------------+
| 1365091200 |
+------------------------------+
1 row in set (0.00 sec)
mysql> select unix_timestamp('2013-04-06');
+------------------------------+
| unix_timestamp('2013-04-06') |
+------------------------------+
| 1365177600 |
+------------------------------+
1 row in set (0.00 sec)
./cutlogbytime /path/slowlogfile 1365091200 1365177600 > 20130405_slow.log
これにより、一日のログファイルが小さく分析しやすくなります.また、日のファイルに基づいて、1日のある時点のログを取ることができます.