mysql -u root -p -bash: mysql: 未找到命令_MySQL主从复制配置说明,一文教你搞懂数据库主从复制...

一,MySQL主从配置原理

1. mysql支持的复制格式

基于语句复制(STATEMENT)

  • (优点)基于statement复制的优点很明显,简单的记录执行语句同步到从库执行同样的语句,占用磁盘空间小,网络传输快,并且通过mysqlbinlog工具容易读懂其中的内容 。
  • (缺点)并不是所有语句都能复制的比如:insert into table1(create_time) values(now()),取的是数据当前时间,不同的数据可能时间不一致,另外像存储过程和触发器也可能存在问题。

基于行复制(ROW)

  • (优点)从MySQL5.1开始支持基于行的复制,最大的好处是可以正确地复制每一行数据。一些语句可以被更加有效地复制,另外就是几乎没有基于行的复制模式无法处理的场景,对于所有的SQL构造、触发器、存储过程等都能正确执行。
  • (缺点)主要的缺点就是二进制日志可能会很大,比如:update table1 set name='admin' where id<1000,基于行复制可能需要复制1000条记录,而基于语句复制只有一条语句,另外一个缺点就是不直观,所以,你不能使用mysqlbinlog来查看二进制日志。

混合类型的复制(MIXED)

  • 混合复制是借用语句复制和行复制的有点进行整合,MIXED也是MySQL默认使用的二进制日志记录方式,但MIXED格式默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。比如用到UUID()、USER()、CURRENT_USER()、ROW_COUNT()等无法确定的函数。

2. mysql主从复制作用

  • 数据分布
  • 主从分摊负载。
  • 高可用性和故障切换。
  • 数据备份。
  • 利用从服务器做查询。

3. mysql主从复制原理

  • binlog Events 我们知道binlog日志用于记录所有对MySQL的操作的变更,而这每一个变更都会对应的事件,也就是Event。index文件记录了所有的binlog位置 每个binlog会有heade, event,rotate三个event,binlog的结构如下。

1d9cee54b4101509a7a3cef3b8d2c7d5.png

常见event如下:

  • Format_desc:一个全新的binlog日志文件event信息
  • Rotate :日志分割时结束event。
  • Table_map:表,列等元数据的event。
  • Query:查询,就是DDL这类的Event,如果binlog格式为STATEMENT格式,增删改都属于Qeury event。
  • Write_rows:Binlog为ROW格式时的插入event。
  • Update_rows:Binlog为ROW格式时的更新event。
  • Delete_rows:Binlog为ROW格式时的删除event。

我们也可以通过binlog 看到这些事件,通过mysql提供的工具查看binlog日志,如下:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值