mysql主从搭建 注意:不同mysql版本之间的binlog日志可能不同,所以应尽量保证mysql的版本一致,如不同,只能是slave的版本高于master版本,因为mysql的版本是向下兼容。 一:环境 mysql版本号:mysql-5.6.16 操作系统:CentOS release 6.8 ...
分类:
数据库 时间:
2019-01-11 19:01:45
阅读次数:
195
本文由云+社区发表 1.概述 binlog是Mysql sever层维护的一种二进制日志,与innodb引擎中的redo/undo log是完全不同的日志;其主要是用来记录对mysql数据更新或潜在发生更新的SQL语句,并以”事务”的形式保存在磁盘中; 作用主要有: [x] 复制:MySQL Rep ...
分类:
数据库 时间:
2019-01-10 13:08:51
阅读次数:
157
一:主备延迟 主备切换的场景:可能是一个主动运维的动作。比如软件升级,主库所在的机器按计划下线等,也可能是被动操作,比如主库所在机器掉电 与数据同步延迟有三个: 1.主库执行完一个事务,写入binlog,记为T1 2.之后传给备库,接收完,记为T2 3.备库执行完记为T3 延迟的时间就是T3-T1 ...
分类:
数据库 时间:
2019-01-09 13:42:39
阅读次数:
201
MySQL的wal机制,得到的结论是:只要redo log和binlog 持久化到磁盘,就能确保mysql异常重新启动后,数据是可以恢复的。 binlog的写入机制 其实,binlog的写入逻辑比较简单:事务执行过程中,先把日志写到binlog cache,事务提交的时候,再把binlog cach ...
分类:
数据库 时间:
2019-01-08 17:13:54
阅读次数:
241
Ⅰ、binlog与redo的一致性(原子) 由内部分布式事务保证 我们先来了解下,当一个commit敲下后,内部会发生什么? 步骤操作 step1 InnoDB做prepare redo log(fsync) step2 Sever层写binlog(fsync) step3 InnoDB层commi ...
分类:
数据库 时间:
2019-01-08 00:59:27
阅读次数:
233
MySQL主从复制包括异步模式、半同步模式、GTID模式以及多源复制模式,默认是异步模式 (如之前详细介绍的mysql主从复制)。所谓异步模式指的是MySQL 主服务器上I/O thread 线程将二进制日志写入binlog文件之后就返回客户端结果,不会考虑二进制日志是否完整传输到从服务器以及是否完 ...
分类:
数据库 时间:
2019-01-06 14:21:52
阅读次数:
207
一:binlog写入机制。 先write ,把日志写入文件系统的的page cache ,然后fsync 将数据持久化到磁盘的操作。 binlog是每个线程一个binlogCache,binlogCache中包含tmpfile和memery. 二:redo log 写入机制 首先日志写道redolo ...
分类:
数据库 时间:
2019-01-05 13:26:18
阅读次数:
302
MySQL主从复制(Master-Slave)mysql主从复制的功能:实时灾备,读写分离 原理: 从库生成两个线程,一个I/O线程,一个SQL线程; i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中; 主库会生成一个 log dump 线程 ...
分类:
数据库 时间:
2019-01-05 00:14:37
阅读次数:
229
在主库上执行 show slave status\G; Slave_IO_Running: No Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find fi ...
分类:
数据库 时间:
2019-01-03 19:25:26
阅读次数:
226
在MySQL5.5之前的版本中,MySQL的复制是异步复制,主库和从库的数据之间存在一定的延迟,比如网络故障等各种原因,这样子容易存在隐患就是:当在主库写入一个事务成功后并提交了,但是由于从库延迟没有及时得到主库推送的Binlog日志时,主库突然宕机了,那么此时从库就可能损失这个事务,从而造成主从不 ...
分类:
数据库 时间:
2019-01-03 13:58:43
阅读次数:
253