前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL 09 - 主从复制

SQL 09 - 主从复制

作者头像
Reck Zhang
发布2021-08-11 12:05:33
2090
发布2021-08-11 12:05:33
举报
文章被收录于专栏:Reck Zhang

主从复制

原理

  1. 数据库有个bin-log二进制文件, 记录了所有的sql语句.
  2. 主从复制就是从主数据库中将bin-log二进制文件复制到从数据库, 再执行一遍.

过程

整个过程需要三个进程进行实现.

  1. binlog输出进程: 每当有从库连接到主库的时候, 主库都会创建一个线程然后发送binlog内容到从库. 在从库里, 当复制开始的时候, 从库会创建两个线程来处理.
  2. 从库I/O线程: 当START SLAVE语句在从库开始执行之后, 从库创建一个I/O进程, 该进程连接到主库并请求主库发送binlog里面的更新到从库上. 从库I/O线程读取主库的binlog输出进程发送的更新并拷贝到这些更新到本地文件, 其中包括relay log文件.
  3. 从库的SQL线程: 从库创建一个SQL线程, 这个线程读取从库I/O线程写到relay log的更新事件并执行.
master_slave_1
master_slave_1
master_slave_2
master_slave_2

作用

  1. 做数据的热备份. 作为后备数据库, 主数据库故障后, 可以切换到从数据库继续工作, 避免数据丢失.
  2. 架构的扩展. 业务量越大, I/O访问频率越高, 单机无法满足, 此时做多库的存储, 降低磁盘的I/O访问的频率, 提高单个机器的I/O性能.
  3. 读写分离. 使数据库支持更大的并发, 在报表中尤其重要. 由于部分报表sql语句非常的慢, 导致锁表, 影响前台服务. 如果实现了读写分离, 前台使用master, 报表使用slave, 那么报表sql将不会导致前台锁, 保证了前台速度.
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 主从复制
    • 原理
      • 过程
        • 作用
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档