自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 mysql binlog日志(二) FORMAT_DESCRIPTION_EVENT、XID_EVENT等

本节介绍几种常用的binlog event。FORMAT_DESCRIPTION_EVENT: 该事件是binlog文件的第一个事件。描述了版本信息、各种类型event的post_header的长度、checksum算法。对应的格式如下: 内容 offset:length // bi...

2019-10-25 14:22:10 689

原创 mysql binlog日志(一)概述

mysql binlog是mysql主备复制的基础。笔者根据自己的理解整理下这部分的内容(主要针对V4版本的binlog),希望能够对想深入学习和研究这部分内容的人提供帮助。在binlog相关内容讲解完毕后,会分享一个解析binlog文件的程序,有兴趣的同学参考该程序进入更深入的研究。mysql支持多种binlog event。参考binlog_event.h::Log_event_type数...

2019-10-14 19:43:24 189

原创 mysqlbinlog工作流程

mysqlbinlog主要流程:main函数: dump_multiple_logs: 处理所有的binlog文件 注意PRINT_EVENT_INFO print_event_info; 该变量描述了mysqlbinlog打印event的方法,ev->print函数的参数 循环调用dump_single_log函数:注意最后一个binlog文...

2019-09-29 16:51:03 382

原创 redis跳表的实现

看了redis的跳表的源码,感觉代码的实现非常短小精悍。redis中跳表主要实现:增删改查, 除了这几个常规功能之外,还有一个很牛逼且很实用的功能:获取节点的rank排名、或者获取指定范围rank的节点。redis中跳表的实现typedef struct zskiplistNode {robj *obj; double score; // ...

2019-05-30 11:20:03 737

原创 mysql常用数据结构介绍(1)

mem_rootmysql层通过mem_root管理内存分配,防止频繁分配和释放小内存。mem_root的定义见include/my_alloc.h:typedef struct st_mem_root{  USED_MEM *free;              空闲链表,分配空间时先检查该链表有没有剩余空间,如果没有,再分配新空间  USED_MEM *used;     ...

2018-12-19 10:45:59 1923

原创 CSV存储引擎源码解析

csv存储引擎是mysql自带的一种简单的存储引擎,可以直接处理CSV文件。该存储引擎特点:1.所有的列不能为NULL2.不支持索引3.不支持分区表4.该存储引擎的数据文件是普通的csv文件,可以直接拷贝出来使用或编辑。该存储引擎工作原理:1.该存储引擎每个表有一个元数据文件,文件名:表名.CSM。格式如下: offset 长度 ...

2018-11-24 19:59:31 572

原创 mysql .par文件格式解析

mysql 5.6版本分区表有一个文件:表名.par, 该文件在5.7.6版本后被移除。在一个现场环境中,客户端执行check table后报错如下,源码跟踪下来之后是缺失par文件。 mysql解析par文件的调用堆栈如下:(gdb) bt#0  ha_partition::read_par_file (this=0x7fff980aa760, name=0x7fff980...

2018-11-13 14:00:59 2390

原创 mysql配置文件和启动参数的处理

概述本文简单梳理了mysql配置文件和启动参数的读取和解析过程相关处理源码load_defaults函数: 这个函数在mysqld_main函数开始的地方调用,注意load_default_groups参数:mysqld、server、mysql5.7,表示该函数只处理配置文件中这些group的内容。init_default_directories:设置配置文件的初始化目录。后...

2018-11-06 17:02:44 2095

原创 mysql报文通信:报文的接收和发送函数

文章中的源码来自mysql 5.7.10版本。1. NET结构             该结构定义了网络连接描述符,本结构是实现接收和发送协议数据的核心。该结构的定义在include\mysql_com.h                 定义如下:typedef struct st_net {  Vio *vio;  unsigned char *buff,*buff_...

2018-11-01 11:22:48 766

原创 mysql 账户登录的处理流程

现场环境mysql账户登录错误,用户名和密码都确认过没有问题的。报错信息如下:ERROR 1045 (28000): Access denied for user 'test'@'localhost' (using password: YES)查看1045对应的错误信息:perror 1045:MySQL error code 1045 (ER_ACCESS_DENIED_ERROR)...

2018-10-26 14:25:05 559 1

原创 mysql报文通信:基本结构介绍

mysql client和server端之间的的数据根据不同的协议规则的进行组织发送。每包数据在发送的时候都要添加上协议头。mysql源码采用5.7.10版本。协议头:           每个协议头共4个字节          包数据长度:              前三个字节表示数据部分的长度(不包括协议头),三字节能表示的最大长度是16M-1(2^24 - 1),如果要发...

2018-09-28 18:42:44 1314

原创 oracle DDL锁超时问题

oracle数据库在执行truncate table的时候报错: ORA-00054:resource busy and acquire with NOWAIT specified or timeout expired该问题原因是oracle在执行DDL操作时,DML操作已经对该对象加锁,由于DDL获取锁超时导致的。模拟场景:1.在session1中首先向一个表插入一...

2018-01-22 13:55:04 1961

原创 ORA-25153: Temporary Tablespace is Empty 错误处理

一个生产环境现场报错:ORA-25153: Temporary Tablespace is Empty 该现场前几天由其他同事重建过控制文件,怀疑是控制文件导致。处理步骤如下:1. 首先查询临时文件是否存在:     可以看到数据库确实没有指定数据文件。  2. 查询数据库正在运行控制文件内容: alter  database  backup controlfile t...

2018-01-19 15:25:23 3807

原创 Optimize Table整理MySQL表空间

Optimize Table table_name 该命令会整理表的数据和索引的物理存储内容,可以减少磁盘空间、提高I/O的访问效率。该命令对不同存储引擎下的表作用不同。Optimize Table适用场景:   1. InnoDB表做了大量的insert、update、delete操作,并且每个表一个ibd文件(设置了innodb_file_per_table值为ON)。  2.  ...

2018-01-04 13:06:45 2419

原创 Mysql 复制介绍

MySQL 复制执行流程:1. Master上语句执行解释之前,将更新数据库的操作记录在二进制日志中(select语句不记录)。2.Master上有个转储线程,读取二进制日志文件的内容发送到slave机器的I/O线程上。3.slave I/O线程接收数据写入中继日志。4.salve的sql线程从中继日志读取并执行  如果主机和备机要穿越网络,为保证安全性,可以配置S...

2017-12-26 19:46:26 285

原创 MySQL数据库备份和恢复方案小结

这两天在调研MySQL数据库的备份和恢复方案,备份对象是对大量Innodb表,或者加上少量的MyISAM表。 InnoDB备份常见问题:文件一致性:数据文件、缓存、日志文件必须保持严格一致。加锁的方法没法保证一致性,因为InnoDB后台刷新数据是异步进行的。数据一致性:不能一次锁住一张表,这个备份的是不同时刻的表数据;如果一次锁住所有表,innodb的mvcc机制会增加undo日志...

2017-12-20 20:08:11 3653

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除