Mysql管理必备工具Maatkit详解之十五(mk-slave-restart)
Leave a Comment2010年03月09日 作者: 大头刚
mk-slave-restart - 对slave进行监控,以及在slave报错后,重启slave。安装方法查看这里。
其实可以理解成在slave执行了如下命令:
stop slave;
set global sql_slave_skip_counter=1;
start slave;
下面举例说明:
先模拟一个slave报错,在主库建表,然后在从库删除,再去主库删除。报错如下:
Last_SQL_Errno: 1051
Last_SQL_Error: Error ‘Unknown table ‘test_sg” on query. Default database: ‘test’. Query: ‘drop table test_sg’
在利用mk-slave-restart去重启这个slave;
[root@mysql2 ~]# mk-slave-restart -u xxx -p xxx -h xxx –run-time 3 –skip-count 1
2010-03-09T14:01:57 h=xxx,p=…,u=xxx slave-relay-bin.000215 74173942 1051
解释下参数:
run-time:指监控slave的时间,单位是秒;
skip-count:指跳过log的数量;
解释下输出:
1、time
2、slave IP
3、user
4、passwd
5、MASTER_LOG_FILE
6、MASTER_LOG_POS
7、Last_SQL_Errno
很显然mk-slave-restart是一个很不错的slave监控工具,当salve出错后能及时报警,并直接重启slave。同时输出了报错的相关信息,方便后面查询在哪出错,是什么错。下面给出它的帮助:
[root@mysql2 ~]# mk-slave-restart –help
mk-slave-restart watches one or more MySQL replication slaves for errors, and
tries to [...]
Mysql管理必备工具Maatkit详解之十四(mk-kill)
Leave a Comment2009年12月29日 作者: 大头刚
mk-kill - 顾名思义,杀mysql线程。安装方法查看这里。
在一个OLTP的生产环境,一般不会让sql执行过长的时间,特别是myisam这样表锁的引擎,如果出现长时间执行的sql一般是误操作,要不就是出现问题了。
出现这种情况,一般是登录mysql手工执行kill操作,Maatkit现在提供了一个命令来执行这个操作。例如:
杀掉超过60秒的sql:
mk-kill –busy-time 60 –kill
如果你想先不杀,先看看有哪些sql运行超过60秒:
mk-kill –busy-time 60 –print
如果你想杀掉,同时输出杀掉了哪些进程:
mk-kill –busy-time 60 –print –kill
下面举例说明:
先模拟一个长时间的sql
mysq> select count(*) from test where gid>2;
把长时间的sql打印:
[root@mysql2 ~]# mk-kill –busy-time 5 –print -u -p -h
# 2009-12-29T10:26:34 KILL 499967 (Query 33 sec) select count(*) from test where gid>2
将这个sql杀掉并打印:
[root@mysql2 ~]# mk-kill –busy-time 5 –print -u -p -h –kill
# 2009-12-29T10:27:09 KILL 499967 (Query 68 [...]
Mysql管理必备工具Maatkit详解之十三(mk-slave-find)
Leave a Comment2009年12月07日 作者: 大头刚
mk-slave-find - 顾名思义,根据master查找slave。安装方法查看这里。
在mysql5.1里查看一个master有哪些slave可以通过PROCESSLIST系统表查出:
mysql> select HOST from information_schema.PROCESSLIST where STATE like ‘%slave%’;
+——————+
| HOST |
+——————+
| 192.168.1.2:44846 |
| 192.168.1.3:33022 |
| 192.168.1.4:50836 |
| 192.168.1.5:32769 |
| 192.168.1.6:33113 |
| 192.168.1.7:33005 |
| 192.168.1.8:32786 |
| 192.168.1.9:32862 |
+——————+
11 rows in set (0.00 sec)
在5.1之前想查出有哪些slave比较麻烦,比较直接的就是直接通过show processlist把所有进程列出,在去刷选查出:
show processlist;
+———–+———-+——————+———–+————-+———-+—————————————————————-+——————+
| Id | User | Host | db | Command | Time | State | Info |
+———–+———-+——————+———–+————-+———-+—————————————————————-+——————+
| 1211 | slave2 [...]
Mysql管理必备工具Maatkit详解之十二(mk-query-digest)
Leave a Comment2009年09月17日 作者: 大头刚
mk-query-digest 一个功能很强大的工具,能分析慢查询日志,也可以对当前的语句进行分析等。安装方法查看这里。
一、分析慢查询日志,生成报表
mysql通过log-slow-queries和long_query_time参数来记录慢查询,默认的格式如下:
# Time: 090909 4:34:28
# User@Host: sparty[sparty] @ [localhost]
# Query_time: 18 Lock_time: 0 Rows_sent: 5 Rows_examined: 52830
select * from test;
# Time: 090909 14:04:24
# User@Host: sparty[sparty] @ [localhost]
# Query_time: 20 Lock_time: 0 Rows_sent: 10 Rows_examined: 2500284
select * from test2;
每产生一条慢查询记录一行,分析起来不直观,也无法进行统计。mk-query-digest能对slow log进行了统计和分析产生报告,可以更具自己的需要,分析出想要的结果。例如
mk-query-digest –limit 2 –select Query_time,Lock_time,Rows_sent,Rows_examined,ts slow.log \
|grep -v [...]
Mysql管理必备工具Maatkit详解之十一(mk-table-checksum)
Leave a Comment2009年08月19日 作者: 大头刚
mk-table-checksum - 检查数据库复制模式里,master和slave的表是否一致,安装方法可以参考这里。
mysql在5.1之前,其replication都是采用的STATEMENT模式,对表的数据是否一致要求并不严格,所以对数据一致性要求比较严格的应用,定期检查数据一致性是很有必要的,mk-table-checksum 是一个很不错的检查工具。
例如:
我要检查master=192.168.0.1,slave=192.168.0.2的两台mysql的test库里的test表是否一致,命令如下:
mk-table-checksum h=192.168.0.1,u=sg,p=sg109504 h=192.168.0.2,u=sg,p=xxxx -d test -t test
DATABASE TABLE CHUNK HOST ENGINE COUNT CHECKSUM TIME WAIT STAT LAG
test test 0 192.168.0.1 MyISAM [...]



