天天看点

Mysql操作(待续)

前提是需要开启表的binlog日志

log-bin=test-bin

一、查看binlog的起始位置和结束位置,Pos是起始,End_log_pos是结束

[root@slave mysql]# mysql -uroot -e "use test;show binlog events"

+-----------------+-----+-------------+-----------+-------------+-------------------------------------------------------------+

| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |

| test-bin.000001 | 4 | Format_desc | 134 | 245 | Server ver: 5.5.52-MariaDB, Binlog ver: 4 |

| test-bin.000001 | 245 | Query | 1 | 360 | use <code>test</code>; create table t44(id int not null,name char(20)) |

| test-bin.000001 | 360 | Query | 134 | 465 | use <code>test</code>; DROP TABLE <code>t44</code> / generated by server / |

| test-bin.000001 | 465 | Stop | 134 | 484 | |

[root@master mysql]# mysqlbinlog test-bin.000002

Mysql操作(待续)

以上这个截图操作是根据binlog位置进行数据恢复

参数说明:

-B:指定数据库

-F:刷新日志

-R:备份存储过程等

-x:锁表

--master-data:在备份语句里添加CHANGE MASTER语句以及binlog文件及位置点信息

三、查询连接的IP几多

select SUBSTRING_INDEX(host,':',1) as ip , count(*) from information_schema.processlist group by ip;

四、查询锁表情况

show status like 'Table%';

Mysql操作(待续)

Table_locks_immediate表示立即释放表锁数,Table_locks_waited表示需要等待的表锁数,

如果Table_locks_immediate / Table_locks_waited &gt; 5000,最好采用InnoDB引擎,

因为InnoDB是行锁而MyISAM是表锁,对于高并发写入的应用InnoDB效果会好些。

示例中的服务器Table_locks_immediate / Table_locks_waited = 235,MyISAM就足够了。

五、关于报错

Mysql操作(待续)

这个的报错是权限的问题,因为互为主备的存放的binlog数不同,我直接从另一个库那里传过去,没改权限导致。

Mysql操作(待续)

     本文转自wsw26 51CTO博客,原文链接:http://blog.51cto.com/wsw26/2051731,如需转载请自行联系原作者

继续阅读