mysql之主备

主备流程图

在这里插入图片描述
过程简介:主库A,从库B
从库B启动两个线程,第一个线程:io-thread 用于接收主库A发送的binlog数据,然后写入临时文件 relay log。第二个线程sql-thread用来读取relay log文件并解析后执行sql。

binlog 的三种格式

每个日志第一行为:server id,用来区分是那台机器生成的binlog日志。
例外:当执行的语句是重放语句时,则生成binlog的server id是重放前的(与重放的id保持一致)。用来解决mysql架构为双M架构时的日志循环。

statement

记录的就是 SQL 语句的原文
缺陷:可能主备不一致
例如:delete from t where a>=4 and t_modified<=‘2018-11-10’ limit 1;
假设在主库执行时使用的a索引字段进行删除一条数据,在从库上执行时使用t_modified字段进行删除一条记录。(同时符合这两个条件的有多条)
注意点: 当执行语句有依赖上下文时,回放binlog时注意在上下文参数下执行。例如:新增数据某条字段为时间类型:输入值为now();

row

记录的是sql执行的内容
例如:当前语句( delete from t where a>=4 and t_modified<=‘2018-11-10’ limit 1; )在binlog中如果以row格式存储,存储的是:具体删除了ID是多少的数据。
缺陷:如果删除修改数据量很大 ,则binlog文件会越来越大。

优势:恢复数据
执行错delete

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值