资讯专栏INFORMATION COLUMN

[MySQL进阶之路][No.0003] 主从复制(Replication)在运维中的运用

e10101 / 744人阅读

摘要:水平分割是将一张数据表的数据分散到多个表里。只有当索引是比较大的值的时候优化提升比较显著水平分割和垂直分割的实现方法可能有很多种,用来实现数据表分割个人觉得理解和实现比较简单。垂直分割和水平分割一样,只是在删除数据的时候删除。

前序

在之前的两章里,主要介绍的主从复制(Replication)的基本使用方法和show slave status一些基本参数,这一章我们讲一下主从复制在生产环境中的一些在运维中的常见用途。下面将要介绍的一些运用可能在不同的地方有不同的叫法, 我取的名字可能比较随意, 如果有不准确或者有歧义的地方还请多多指教。

整体迁移

首先最常见的是主从数据库整体的迁移。具体的运用场景例如,当要换一批新的服务器的时候,需要将当前旧服务器的数据库服务迁移到新的服务器上。这个时候就可以利用主从复制来进行服务器的更换。具体流程如下图。

图例很简单,把新的主从集群做为slave挂在原来的集群下。之后把写入读取的指向改到新服务器上,整个迁移工作也就算完成了。
需要注意的是new master中一定要设置log_slave_updates为有效,不然不会将更新写入binlog文件中。

整体合并

合并两个或者多个主从数据库群也是在运维中经常见到的。为了节省成本,需要将多个主从集群合并到一个集群中,这时可以运用replication来整合数据。从多个主服务器获取数据需要运用multi-source replication(MSR)。其实就是通过change master命令的channel参数来区分多个复制源。

大体的原理如上图所示, 这里需要注意的是如果你使用的是5.7, 并且设置了binlog_format=row, binlog_rows_query_log_events=on。
使用MSR会出现memory leak的bug。所以在5.7版本下,把binlog_format设成statement之后再做MSR吧。
https://bugs.mysql.com/bug.ph...

数据表分割

当一张表越来越到大的时候, 其查询速度也会变的越来越慢。 为了优化性能, 我们需要对数据表进行分割。数据表分割分为垂直分割和水平分割。
垂直分割是对表的列(column)进行分割。如果一张表里有一些列不经常用,可以用这种分割方法来提高搜索速度。缺点就是提高了业务层面的复杂度。
水平分割是将一张数据表的数据(record)分散到多个表里。这样不仅可以减小索引B+树的层数,减少磁盘的读取次数提高索引速度。(只有当索引是比较大的值的时候优化提升比较显著)

水平分割和垂直分割的实现方法可能有很多种, 用replication来实现数据表分割个人觉得理解和实现比较简单。

水平分割

例如上面的例子,本来的数据库里Table1表里的user1和user2的两个数据,通过replication将数据复制到两个新的主从集群中,再将不要的数据删除, 简单的水平分割就完成了。

垂直分割

和水平分割一样,只是在删除数据的时候删除column。

小结

简单介绍了几种比较常见的replication运用的实例。这里只是介绍了最基本的实现原理,在实际生产环境中需要注意的东西还有很多。在以后有机会再同大家分享。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/48421.html

相关文章

  • [MySQL进阶之路][No.0001] MySQLReplication基础

    摘要:前记距离上一次在上发文章足足过了两年时间,自己也已经从在日本留学进入到了工作岗位。选择留在日本工作的理由其实自己也不是很清楚,只是无论身在哪里,都只想做一个技术人员的理想至少现在并没有改变。的在最近也是被日本的开发者们视为掌中宝。 前记 距离上一次在segmentfault上发文章足足过了两年时间,自己也已经从在日本留学进入到了工作岗位。选择留在日本工作的理由其实自己也不是很清楚,只是...

    崔晓明 评论0 收藏0
  • [MySQL进阶之路][No.0002] SHOW SLAVE STATUS

    摘要:当前的线程的状况。如果等待时间超过设置,线程为重连。如果你设置了当大小超过这个值以后,线程会先等线程删掉一部分。当和之前出现连接问题时,每隔这个时间就会尝试一次重连。一般情况下,如果这个值过大,我们可以考虑是否是服务器线程出问题了。 进入正题之前 上回我们聊到关于MySQL的replication。https://segmentfault.com/a/11... 在进入今天的正题之前,...

    afishhhhh 评论0 收藏0
  • 单表60亿记录等大数据场景MySQL优化和运维之道 | 高可用架构

    摘要:此文是根据杨尚刚在高可用架构群中,针对在单表海量记录等场景下,业界广泛关注的问题的经验分享整理而成,转发请注明出处。杨尚刚,美图公司数据库高级,负责美图后端数据存储平台建设和架构设计。 此文是根据杨尚刚在【QCON高可用架构群】中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处。 杨尚刚,美图公司数据库高级DBA,负责美图后端数据...

    xcc3641 评论0 收藏0
  • MySQL数据库高可用性分析

    摘要:存储数据的安全性和可靠性是生产数据库的关注重点。本文分析了目前采用较多的保障可用性方案。高可用是它设计的主要特性之一。采用了新的数据分片和容错的方式来实现数据安全和高可用。图数据高可用一个有个,被分为了两个。 推荐理由: 我们知道存储数据的安全性和可靠性是生产数据库重点要思考的问题,海量的应用将数据存储在MySQL数据库中,那么如何保障MySQL高可用性了,下面我给大家推荐的这篇文章,...

    zzir 评论0 收藏0
  • 搭建 MySQL 5.7.19 主从复制,以及复制实现细节分析

    摘要:搭建主从复制,以及复制实现细节分析概念主从复制可以使数据库主服务器的主数据库,复制到一个或多个从服务器从数据库,默认情况下,复制异步根据配置,可以复制数据库中的所有数据库,选定的数据库或甚至选定的表。 搭建 MySQL 5.7.19 主从复制,以及复制实现细节分析 概念 主从复制可以使MySQL数据库主服务器的主数据库,复制到一个或多个MySQL从服务器从数据库,默认情况下,复制异步;...

    focusj 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<