时间:2021-07-01 10:21:17 帮助过:3人阅读
解决这种问题可以采用多级复制,主服务器还是保持主位置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总结
mysql中BLACKHOOL的作用
标签:logs ros 读取 12px link 触发器 设置 日志 int