M-S-S:

使用一台slave作为中继,分担master的压力,中继slave上需要开启二进制日志,

并打开一下选项在my.cnf中:

vim my.cnf
log-bin
log-slave-updates=1

 

之前配置好了M-S 环境。

接下来增加一台中继slave


步骤:

1,使用一台slave作为中继

打开二进制日志,并允许中继日志重放到二进制日志中

log-bin
log-slave-updates=1

授权:

grant replication slave on *.* to repl@slave-ip identified by '123456';
flush privileges;

保持和master的二进制日志格式一致


show master status\G;

查看binlog和pos


2,配置最终slave,指向中继slave作为他的master

保持和master的二进制日志格式一致

1,先在中继slave导出所有的库,在最终slave还原后,在做以下配置、

change master to 
 master_host='中继slaveip',
 master_user='repl',
 master_password='123456',
 master_log_file='mysql-bin.000001',--中继slave处查看
 master_log_pos=120;
 start slave;
 show slave status\G;


针对M-S-S 什么时候使用blackhole存储引擎?


BLACKHOLE存储引擎能够接受存储的数据,但是不存储,所以不管往里面存储多少数据,总是会返回空值。

因为BLACKHOLE表的插入不存储任何数据,在一般情况下我们是不用的,但是如果遇到类似这样的情况的话,BALCKHOLE就是一个很好的选择:


如果你要进行一次数据迁移,,数据须要经过一 个中转的MySQL服务器做一些相关的转换操作,然后再通过复制移植到新的服务器上面,但做中转需要很大的空间,如果你没有那么大的空间或者不想临时浪费这个空间,这时候就可以使用BLACKHOLE了,他不会记录下任何数据,但是会在binlog中记录下所有的Query.而这些Query最终都会被复制利用,并实施到最终的slave端。

BLACKHOLE存储引擎其他几项用途:

Query语法的验证;

测试二进制日志记录的性能开销,如通过比较允许二进制日志功能的BLACKHOLE与禁止二进制日志功能的BLACKHOLE的性能来实现;

查找与存储引擎自身不相关的性能瓶颈,因为BLACKHOLE本质上是一个"no-op"的存储引擎。


缺点:

1,某些情况下不会自增ID写入到二进制日志中

2,使用分发主库的另一个缺点是,无法使用备库来代替主库,由于分发主库的存在,导致各个备库与原始数据二进制坐标不相同


注意,如果中继slave的存储引擎改为blackhole,那么最终的slave也会变为blackhole,我们需要查询数据,则需要把slave的改回以前的存储引擎、