MySQL在5.x系列提供了Blackhole引擎–“黑洞”. 其作用正如其名字一样:任何写入到此引擎的数据均会被丢弃掉, 不做实际存储;Select语句的内容永远是空。 和Linux中的 /dev/null 文件完成的作用完全一致。

那么, 一个不能存储数据的引擎有什么用呢?

在大规模的Mysql服务器集群中,如果是存在一台主服务,多台从服务器,在繁忙的业务中,意味着主服务器每操作一个事件,都要往自己的二进制日志中写数据,同时还要往多台从服务器发一次,N台服务器指向一台主服务器,那么需要主服务器发送N次,会启动N个线程,每个线程各自从线程里读二进制日志,那么会有大量的IO,本来是为主服务器减轻负担的,那么这样只能造成压力越来越大,那这样master主机就会为每台slave主机分配出一个binlog dump进程,这样的话会严重影响master的性能。

解决这种问题可以采用多级复制,主服务器还是保持主位置A,再拿一台服务器作为从服务器B,主服务器A只启动一个线程指向从服务器B,那么B服务器再作为其他N台服务器的主,那么B就启动了多个线程,怎么给B服务器减轻压力呢?

在主从之间添加一个分布式master,配置blackhole存储引擎,他起到一个中继的作用,他接收数据但丢其他而不是存储,只是会把master的二进制日志供下层的slave来读取。

第一,让B服务器不再执行查询操作;

第二,让B服务器不再执行写操作;

第三,负责多线程为每个从服务器提供数据,那么就不需要在B服务器存储数据了,但是需要提供二进制日志和中继日志,但B服务器又不需要数据库;

把blackhole引擎,用做slave,配置一些过滤规则,比如复制某些表、不复制某些表。然后也作为一个master,带多个slave。这样的好 处是省了一定的网络带宽,如果没有blackhole做中间环节,那么就需要把第一个master的所有日志都传递到各个slave上去。经过 blackhole这一个slave兼master过滤后再传递给多个slave,减少了带宽占用。而使用blackhole引擎的原因是它不占硬盘空 间,作为一个中转,只负责记日志、传日志。

如何设置呢?

先查看一下当下mysql支持的引擎列表;

没找到blackhole引擎,那么接下来安装。

mysql> INSTALL PLUGIN blackhole SONAME 'ha_blackhole.so';

要设置 default_storage_engine=blackhole 就能实现主从 使用不一致的存储引擎。

补充:如果使用blackhole引擎创建的表,在执行insert操作后,再查询,是没有数据的,因为创建的时候只有.frm表结构文件。

BLACKHOLE总结

BLACKHOLE支持所有类型的索引

BLACKHOLE 表不存储数据,如果复制基于SBR,语句可以记录并在从库执行;如果复制为RBR、MBR,UPDATE及DELETE操作将会跳过,不会记录也从库不执行。

Insert触发器可以正常使用,Update、Delete触发器因为不存储数据不能触发,FOR EACH ROW 也不能触发。

BLACKHOLE 表Auto Increment字段不会自动递增,也不保留自增字段的状态

结合复制replicate-do和replicate-ignore规则,可使用BLACKHOLE当做一个分发主服务器

可用来验证转储文件语法

测试binlog的开销量,通过对比 BLACKHOLE 与 不启动 binlog的性能

可能被用来查找与存储引擎自身不相关的性能瓶颈

mysql blackhole_MySQL的BlackHole引擎在主从架构中的作用相关推荐

  1. mysql blackhole_mysql基于BLACKHOLE复制基础的各种架构

    Mysql复制架构 这是mysql主从复制最基本的原理图,左边是主master,右边是从slave,从图中可以清晰看到mysql的复制进程,master产生二进制日志binlog,输出到binlog文 ...

  2. mysql主从架构备份,mysql数据库容灾实时备份主从架构

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 showslavestatusG; 先容: 各种保险策略履行备份,随着互联网时期的生长数据对于一个企业来说越来越首要 ...

  3. 网关与微服务的概念及在微服务架构中的作用详解

    网关的概念 网关(gateway),又称为网间连接器.协议转换器: 网关是在采用不同体系结构或协议的网络之间进行互通时,用于提供协议转换.路由选择.数据交换等网络兼容功能的设施: 网关在传输层上以实现 ...

  4. Hadoop生态系统完整组件及其在架构中的作用

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/cjDaShuJu_Java/article/details/80050858 (1)Hadoop生态 ...

  5. redis相关 主从架构

    redis概述 redis的出现时间并不长,是NoSQL中的一种,基于键-值型的存储,与memcache类似,但是memcache中只是内存的缓存,而redis不仅是内存中的缓存,还提供持久存储,在2 ...

  6. DNS的主从架构、子域委派、转发器

    为了保证服务能够稳定的进行,避免只有一台服务器的时候发生宕机而无法提供DNS服务:所有会有DNS主从服务器架构 主从DNS服务器:(主辅) 需要注意的细节: 1.主服务器和辅助服务器都是域级别的概念: ...

  7. redis主从架构宕机问题手动解决

    1    主机宕机 1.  设置端口6379是主机,端口6380是从机,全部都正常启动 2.  验证在6379写入数据,在6380也能得到数据 3.  现在将6379主机停掉,模拟主机宕机 4.  由 ...

  8. 【Redis】Redis主从架构和哨兵模式

    文章目录 主从架构 为什么需要Redis主从架构? 搭建主从架构(一主二从) 主从一致原理 复制积压缓冲区 全量复制 增量复制 在主从架构中出现了宕机的情况 为什么主从库之间的复制不使用 AOF? 哨 ...

  9. 如果redis哨兵宕机了怎么办_Redis 主从复制架构中出现宕机怎么办?以及哨兵功能...

    如果主从复制架构中出现宕机的情况,需要分情况看: 1. 从Redis宕机 相对而言比较简单,Redis从库重新启动后会自动加入到主从架构中,自动完成同步数据: 存在的问题是,如果从库在断开期间,主库变 ...

最新文章

  1. go io.reader 多次读取_Go 语言进阶:freecache 源码学习(1)
  2. windows无法完成安装 若要在此计算机上安装_全新安装Windows10 2004的技巧,官方工具,安全高效...
  3. ROS机器人程序设计(原书第2版)3.9.1 使用rqt_rviz在3D世界中实现数据可视化
  4. RBAC 权限设计(转载)
  5. Git在版本2.13中继续改进了安全性和UI
  6. linux c语言 延迟,linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写
  7. 电子商务概论_走进经管优质线上课堂(二)之电子商务概论
  8. 通过程序包管理器控制台解决版本错误(CS1705)
  9. 6. /proc/cpuinfo
  10. Java 生成二维码实战
  11. 变化世界中的军事地质学
  12. python安装chardet_Python使用chardet判断字符编码
  13. ADC、DAC等混合信号器件的AGND和DGND要不要分开接地
  14. 无刷舵机和普通舵机,数字舵机还有模拟舵机的区别
  15. PV、UV、IV的概念
  16. 时差,不同国家之间的大概时差
  17. 马科维兹+matlab,“马科维茨”投资组合模型实践——第三章 投资组合优化:最小方差与最大夏普比率...
  18. 深入学习区块链的隐私保护(四)秘密共享
  19. JSCRIPT如何调试
  20. 阿里巴巴校招笔试题整理

热门文章

  1. 如何选择一款适合自己的ssl证书?
  2. 如何在职场上变得更优秀
  3. vue 配合钉钉鉴权及钉钉 API 使用方法
  4. 内网穿透透透透的解决方案
  5. git命令看一这篇就够了
  6. 5 gtm 工作原理_基于GTM法的水泥稳定碎石力学性能研究
  7. linux内核志愿者,新闻|Linux 中国志愿者翻译小组 LCTT 三岁啦!
  8. IT经理应该怎样帮助企业建设信息化系统?
  9. 如何通过CRM系统做好客户的分级分类
  10. React + Typescript领域初学者的常见问题和技巧