mysql blackhole_mysql基于BLACKHOLE复制基础的各种架构
Mysql复制架构
这是mysql主从复制最基本的原理图,左边是主master,右边是从slave,从图中可以清晰看到mysql的复制进程,master产生二进制日志binlog,输出到binlog文件,然后slave主机请求日志文件,master主机发送二进制到slave主机,二进制到slave后,写入中继日志,realylog,然后slave主机调用sql进程读取中继日志内容,写入到数据库,从而维持服务器的数据同步。
和上面不同的是,这个架构是一个三级架构,三台mysql服务器组成一个链式复制架构
,从左至右的master–slave–slave,前面两个,即master–slave和第一个图一样,没什么可说的,唯一的小变化是中间的slave主机也开启了二进制日志,他把从master上更新到的信息写入自身的logbin中,这样的目的可以从图中看到,为后面的slave主机提供二进制日志,此时这台slave主机其实充当了master主机的作用。
这个图中说明了mysql二进制日志的过滤,除非你想同步所有的数据库(包括mysql数据库,这会造成不必要的麻烦),二进制的日志过滤主要取决于master主机的设置binlog_do_db和binlog_ignore_db,他们决定了什么数据会记录到二进制日志中,并传送到slave主机,而slave主机也可以通过配置一些选项决定怎么利用这些数据,如replicate_do_db,replicate_do_table等
这个是一主多从的复制架构,实际应用也很多,可以用master来充当更新服务器,其他的几台slave充当只读服务器,在一定程度上分担了数据库流 量,一定确保只在master上更新数据。
这个一个主主复制的架构,两台master互为主从,更新和读取操作可以同时在两台上进行
这是一个反例,这种复制是不被允许的,一台slave不可能同时接受两台master的数据,不过我们可以考虑其他的办法来实现,比如后面的blackhole数据存储引擎就可以实现。
这个则是在主主复制架构上的一个扩展,每台master下面还有一层slave结构
这个其实也是主主复制结构的扩展(我的个人理解)只是master的结构组成了一个环状结构
这个也就容易理解,在环状结构的基础上又延伸出slave层。
这个图不太好理解,因为中间涉及到一个blackhole(黑洞)存储引擎,blackhole其实就相当于 linux系统中的/dev/null
主 要意思就是一主N从的结构,这里这个N可能会有很多,几十台,百台,那这样master主机就会为每台slave主机分配出一个binlog dump进程,这样的话会严重影响master的性能,这样可以考虑在主从之间添加一个分布式master,配置blackhole存储引擎,他起到一个 中继的作用,他接收数据但丢其他而不是存储,只是会把master的二进制日志供下层的slave来读取。
这里摘录一段别人的解释:
把blackhole引擎,用做slave,配置一些过滤规则,比如复制某些表、不复制某些表。然后也作为一个master,带多个slave。这样的好 处是省了一定的网络带宽,如果没有blackhole做中间环节,那么就需要把第一个master的所有日志都传递到各个slave上去。经过 blackhole这一个slave兼master过滤后再传递给多个slave,减少了带宽占用。而使用blackhole引擎的原因是它不占硬盘空 间,作为一个中转,只负责记日志、传日志。
BLACKHOLE 存储引擎就像 “ 黑洞 ” 一样,它接收数据但丢弃它而不是存储它。查询总是返回空集。
mysql> CREATE TABLE test(i INT, c CHAR(10)) ENGINE = BLACKHOLE;
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO test VALUES(1,’record one’),(2,’record two’);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM test;
Empty set (0.00 sec)
虽然 BLACKHOLE 表不存储任何数据,但是如果开启二进制日志 ( Binary Log ),SQL 语句将被写入 日志,反之 SQL 语句会 被过滤掉。
BLACKHOLE 表的其他用途:
* 通 过对比开启和关闭二进制日志 ( Binary Log ) 时 BLACKHOLE 的性能,来计算二进制日志记录的开销。
* BLACKHOLE 本质上是一个 “ no-op ” 存储引擎,它可能被用来查找与存储引擎自身不相关的性能瓶颈
下面这两张图也是跟blackhole存储相关,等慢慢研究blackhole后再细细研究
最后这种情况大致的意思,有三台mysql server,1,2和3,3做为复制从服务器,想同时复制1上的DB1和2上的DB2,这样可以在2上引进一个blackhole的DB1来解决问题.
来源:http://blog.csdn.net/zhaohang1983/archive/2009/08/11/4432634.aspx
mysql blackhole_mysql基于BLACKHOLE复制基础的各种架构相关推荐
- mysql blackhole_MySQL的BlackHole引擎在主从架构中的作用
MySQL在5.x系列提供了Blackhole引擎–"黑洞". 其作用正如其名字一样:任何写入到此引擎的数据均会被丢弃掉, 不做实际存储:Select语句的内容永远是空. 和Lin ...
- mysql数据库基于gtid复制,mysql基于gtid复制的错误解决
1.错误描述 Last_SQL_Errno: 1032 Last_SQL_Error: Coordinator stopped because there were error(s) in the w ...
- mysql blgg_GG基于用户复制问题
什么日志,这是REPORT的内容: Opened trail file /gglog/dirdat/r001/re000001 at 2012-04-18 00:44:33 2012-04-18 00 ...
- Mysql原理、主从复制、半同步复制及基于SSL复制
本篇博文主要讲解Mysql主从复制.半同步.基于SSL加密的复制 简介 MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.MySQL被广泛地应用在Internet上 ...
- MySQL高可用之基于Galera复制跨地域节点分布的滥用
mysql使用教程 MySQL高可用之基于Galera复制跨地域节点分布的滥用 2018-11-22 02:15 8335 85 让我们再一次讨论MySQL高可用性(HA)和同步复制. 它是地理上分布 ...
- mysql blackhole_MYSQL中的BlackHole引擎
MYSQL中的BlackHole引擎 MySQL在5.x系列提供了Blackhole引擎–"黑洞". 其作用正如其名字一样:任何写入到此引擎的数据均会被丢弃掉, 不做实际存储:S ...
- mysql 基于gtid复制_深入MySQL复制(二):基于GTID复制
相比传统的MySQL复制,gtid复制无论是配置还是维护都要轻松的多.本文对gtid复制稍作介绍. 1.gtid基本概念 传统的基于binlog position复制的方式有个严重的缺点:如果slav ...
- mysql gtid 搭建主从_MySQL5.7 - 基于GTID复制模式搭建主从复制
MySQL5.7 - 基于GTID复制模式搭建主从复制 发布时间:2020-04-17 10:09:20 来源:51CTO 阅读:226 作者:insist_way 环境: MySQL5.7.24版本 ...
- mysql二进制文件复制_MySQL 主从复制:基于二进制文件复制配置详解
##MySQL-主从复制:基于二进制文件复制详解 ###前言 主从复制是指把一个MySQL的数据库服务器作为主服务器(master),然后把master的数据复制到一个或者多个MySQL数据库服务器作 ...
最新文章
- 创新工场南京人工智能研究院执行院长冯霁:联邦学习中的安全问题
- mockito 外部接口_【IDEA开发SpringBoot2.0】使用Mockito进行常规接口测试#05
- hive load data inpath 空目录_走近大数据之Hive进阶(一、Hive数据的导入)
- JAVA设计模式-策略模式
- 华为云平台使用手册_华为云首发全生命周期应用平台,四大能力解决政企上云五大难题...
- php写简单的随机验证码
- 让IT工作者过度劳累的12个坏习惯
- 结构化分析方法是一种自下而上逐步求精的分析方法【软件项目管理】
- ecshop源码分析:会话类cls_session
- 128G SSD固态卡死,主控SM2258xt,颗粒PFG29-6量产开卡教程+软件
- python发送以太网报文_python之分解以太帧
- hprose-php教程,Swoole学习笔记(六):Hprose入门
- Liu C-2021-1: Nontrivial Gates FET
- 搜狐狐友通过增加知名度增加用户量
- 支持苹果18W-60W PD快充协议芯片JD6606S
- 华三 mstp-路由聚合-ospf-三层聚合 入门全套实验
- 你不能不知道的荣耀V40隐藏功能
- Linux服务器百万并发实现与问题排查
- EasyExcel之回填下拉框
- .NET(C#) 查找打印机指定打印机名称打印代码(PrintDocument)
热门文章
- python 时间等待函数
- 料理机破壁技术是什么?
- intelNUC5i5Ryh微型计算机,【已修复】求INTEL NUC迷你机NUC5I5RYH BIOS
- webpack 打包(plugin、loader 工作原理)
- 此主机支持 AMD-V,但 AMD-V 处于禁用状态
- mysql字段类型原理_mysql数据类型和字段属性原理与用法详解
- 计算机文件夹莫名其妙丢失,电脑上的文件突然消失了怎么办?及时止损很关键...
- 无法启动oracle安装程序,oracle服务无法启动的原因及解决方法
- vue3使用tinymce
- Shell:标准输入(stdin)、标准输出(stdout)、标准错误输出(stderr)介绍