Mysql slave 延迟故障一列
大事物延迟 延迟略为2*执行时间 状态为:reading event from the relay log大表DDL延迟 延迟略为1*执行时间 状态为:altering table长期未提交的事物延迟,会造成延迟的瞬时增加表上没有主键或者唯一键 状态为:system lock 或者 reading event from the relay loginnodb层锁造成延迟 状态为...
Mysql Prepared statement needs to be re-prepared
Compare metadata versions of an element obtained from the table definition cache and its corresponding node in the parse tree. 其逻辑有1 breakpoint keep y 0x0000000000ebd5f3 in main(int, char**) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/main.cc:25 breakpoint already hit 1 time ...
从Mysql slave system lock延迟说开去
本文基于5.7.17源码本文只考虑row 格式binlog主要考虑DML语句,DDL语句比较简单不做考虑其实每次show slave status命令的时候后台会调用函数show_slave_status_send_data进行及时计算,这个延迟并不是保存在哪里的。栈帧如下:其计算方式基本就是这段代码稍微解释一下:这里我们也看...
线程相关内存参数sort_buffer/join_buffer等的内存分配时机
今天一个朋友问我sort_buffer/join_buffer/binlog_cache_size/read_rnd_buff_size 等线程相关参数是什么时候分配内存的。我就特意做了gdb调试,得出结论这些参数都是在需要的时候才分配的,并不是建立线程就分配了,这里只是简单的给出我的结论并且给出栈帧以备后面学习和调试。水平有限有误请共同讨论。触发...
Mysql 5.7中数据量更改统计数据收集的逻辑
今天一个朋友在问Mysql什么时候收集统计数据,我就简单的找了一下源代码,现总结如下。如有错误请指出,因为我只是简单做了一下调试。Mysql统计数据分为持久化和非持久化前者是innodb表后者是memory表。他们受到参数innodb_stats_persistent的控制,默认为ON。关于这里还参考官方文档:二、持久化...
ORACLE服务器异常断电,控制文件故障的处理步骤
这里只是简单的记录操作步骤,以做备忘。本步骤由同事邹启健(问心)完成一、版本SQL> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.1 .0 - ProductionPL/SQL Release 11....
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。这里也会同步更新
Mysql 5.7 Gtid内部学习(十) 实际案例(二)
简书地址:http://www.jianshu.com/p/052a03b68fabLast_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires.' 三、故...
Mysql 5.7 Gtid内部学习(九) 实际案例(一)
简书地址:http://www.jianshu.com/p/2c25842d58d3binlog_gtid_simple_recovery=false。5.7.6以上版本。Gtid 关闭或者Gtid中途开启有大量的未开启Gtid的binlog。版本:MySQL版本 5.7.19。故障为:大概每半小时发生一次故障,整个Mysql压力巨大,很多简单的操作都相应缓慢。使用ioto...
Mysql 5.7 Gtid内部学习(八) Gtid带来的运维改变
简书地址:http://www.jianshu.com/p/caae9a019dbd如何跳过一个事物mysqldump导出行为的改变5.7中搭建基于Gtid的主从5.7中Gtid的主从的切换5.7中在线改变Gtid模式和传统基于位置的主从不同,如果从库报错我们需要获得从库执行的最后一个事物,方法有如下:然后构建一个空事...
Mysql 5.7 Gtid内部学习(七) 总结binlog_gtid_simple_recovery参数带来的影响
simplified_binlog_gtid_recovery=flasebinlog_gtid_simple_recovery=true一、Gtid关闭simple_recovery=flase重启Mysql需要扫描全部的binlog来获得正确的Gtid集合purge binlog或者超过参数expire_logs_days参数设置不触发全binlog扫描,由上层函数控制。因为不支持在线...
Mysql 5.7 Gtid内部学习(六) Mysql启动初始化Gtid模块
binlog文件mysql.gtid_executed表主库开启Gtid开启binlog。从库开启Gtid开启binlog不开启log_slave_updates参数。一、初始化Gtid 模块全局变量内存空间 if (init_server_components()) unireg_abort(MYSQLD_ABORT_EXIT); gtid_server_init()函数片段如下:二、初始化获得本...
Mysql 5.7 Gtid内部学习(五) mysql.gtid_executed表及其他变量更改时机
简书地址:http://www.jianshu.com/p/905d7e89a305mysql.gtid_executed表:Gtid持久化的介质,Mysql启动阶段会读取这个表来获取gtid_executed变量的值。gtid_executed变量(show global variables):Mysql数据库已经执行了哪些Gtid事物,处于内存中。show slave status中的Executed_Gtid_Set也取自这里。...
Mysql 5.7 Gtid内部学习(四) mysql.gtid_executed表Previous gtid Event的改变
一、Gtid event31704d8a-da74-11e7-b6bf-52540a7d243:100009 >Gtid Event:Pos:234(0Xea) N_pos:299(0X12b) Time:1513135186 Event_size:65(bytes) Gtid:31704d8a-da74-11e7-b6bf-52540a7d243:100009 last_committed=0 sequence_number=1-->Query Event:Pos:299(0X12b) N_Pos:371(0X173) Time:1513135186 Event_size...
Mysql 5.7 Gtid内部学习(三) Gtid和Last_commt/sequnce_number的生成时机
这里首先使用源码的解释给出三种类型:其中AUTOMATIC_GROUP通常用于主库开启Gtid的情况,GTID_GROUP通常用于备库和使用了GTID_NEXT的情况下。 /** Specifies that the GTID has not been generated yet; it will be generated on commit. It will depend on the GTID_MODE: if GTID_MODE<=OFF_PER...
Mysql 5.7 Gtid内部学习(二) Gtid相关内部数据结构
1、 Gtid基本格式单个Gtid:e859a28b-b66d-11e7-8371-000c291f347d:1-5 前一部分是server_uuid,后面一部分是执行事物的唯一标志集合,在内部使用Gtid_set中某个Sidno对应的Interval节点表示,后面会描述。2、server_uuid的生成既然说到了server_uuid这里就开始讨论server_uuid...
Mysql 5.7 Gtid内部学习(一) 导读
Mysql 5.7 Gtid内部学习(一) 导读 简书地址:http://www.jianshu.com/p/87f66cdeb49c本系列文章使用源码版本为percona 5.7.14,也比较过5.7.17,5.6.25的源码版本。占时没有能力比较全部的Mysql源码版本,有误导还请见谅。Gtid的全称为global transaction identifier,他在整个复制生态中完全唯一的,下面我...
设计模式:观察者模式(observer)
Mysql Innodb中的Linux native异步I/O(一) 内存结构的初始化
一、前言二、几个基本概念mysql> show variables like '%io_threads%';+-------------------------+-------+| Variable_name | Value |+-------------------------+-------+| innodb_read_io_threads | 2 || innodb_write_io_threads | 2 |+-------------------------+-------+ mysql> s...
Linux libaio 异步I/O
io_context_t:它是一个成为上下文的结构,在内部它包含一个完成队列,在线程之间是可以共享的。iocb:单次读写操作需求,下面是主要的一些定义data:是一个用户定义传入数据aio_lio_opcode:是一个标示可以取aio_fileds:是iocb读取或者写入的文件描述符fdu.c.buf:是一个读取或者写入的内存数据指针u...