前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高性能MySQL第十章 读书笔记

高性能MySQL第十章 读书笔记

作者头像
用户7962184
发布2020-11-20 15:02:27
4070
发布2020-11-20 15:02:27
举报
文章被收录于专栏:没事多喝水没事多喝水

第10章 复制

  • 复制是通过在主库记录二进制日志,然后再在备库重放日志的方式来实现异步的数据复制。
  • 复制通常不会对主库产生开销,主要是启用二进制日志带来的开销。除此之外每个备库也会对主库增加一些负载,例如网络io开销

复制如何工作:

  1. 在主库上把数据更改记录到二进制日志中。
  2. 备库将主库的日志复制到自己的中继日志中。
  3. 备库读取中继日志中的事件,将其重放到备库数据之上。
  • 二进制日志是由服务器层面去实现的,事务日志是存储引擎层面的。先记录了二进制日志之后,MySQL才会去提交相关事务。
  • 创建复制账号的时候虽然可以只设置REPLICATION SLAVE权限,但是加上REPLICATION CLIENT权限可以共享账号权限使用和方便切换成主库。
  • 备库最好开启read_only配置选项。
  • 利用SHOW PROCESSLIST可以查看到从库的线程,通常有IO线程和SQL线程,以及一些备份信息。
  • 如果数据库已经存在切运行一段时间了,可以先把数据库的数据捞一份出来,然后设置相应的二进制日志坐标值来进行同步,可以通过SHOW MASTER STATUS来获取log file.
  • 基于语句的复制更多的是类似于将同样的sql在备库上重放一遍,但是涉及到触发器和存储过程还有一些特别的语句是无法被正确复制的,而基于行则是可以完整地复制数据,但是有一些语句代价则比较大,比如一次修改整张表的数据。推荐都是使用行方式去进行复制。
  • 如果在设置复制的时候碰到问题,服务器ID应该是应该检查的因素之一。
  • 虽然复制有过滤复制的功能,但是存在着问题,好好理解之后再用。
  • 如果存在多个备库,最好使用分发主库(采用blackhole存储引擎)。
  • 利用选择性复制能让备库只缓存部分数据,利用replicate_wild_do_table = sales.%来限制。
  • 利用备库可以做到弥补mysql的很多缺陷。
  1. 选择性复制。
  2. 分离功能。
  3. 数据归档。
  4. 备库做全文检索。
  5. 作为日志服务器。
  • 单纯的增加机器,作为备库或者写库,所带来的性能提升并不是线性的,因为每台备库的写负载和主库是同等的。
  • 利用复制心跳可以更好的监控主从之间的延迟。
  • 计划内将备库提升为主库。
  1. 停止向老的主库写入。
  2. 让备库追赶上主库。
  3. 将一台备库配置为新的主库。
  4. 将备库和写操作指向新的主库,然后开启主库的写入。

这个过程需要断开所有的客户端连接。

  • 如果在紧急提升的过程中,备库1要提升成主库,此时它复制到了100号事件,而备库2和3分别复制到99和98,如果都指向同一个二进制文件日志,他们将从101号事件去复制,导致数据不一致,但是如果开启了log_slave_updates,那么他们就会记录他们各自复制到二进制文件的哪里,从而避免这个问题。
  • 如果一台主库挂了,可以通过查看该主库的binlog事件,确定最后的日志位置,再查看从库的SHOW SLAVE STATUS中获得Master_Log_File(二进制文件)和Read_Master_Log_Pos(偏移量)的值对比,来查看执行到哪里。
  • 利用percona toolkit中的pt-table-checksum可以查看主备的一致性,以便于修复。
  • 尽量少用Insert....select语句,可以使用into outfild+load data infile去代替。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第10章 复制
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档