| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 【数据库】mysql主从同步原理 -> 正文阅读 |
|
[大数据]【数据库】mysql主从同步原理 |
????????主节点 binary log dump 线程
MySQL主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点 建立一个和主数据库(参照物)完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。
????????1.可以对数据进行热备份,作为后辈数据库,祝数据库服务器故障后,可以切换到从数据库继续工作,避免数据库宕机的损失 ? ? ? ? 2.随着业务量增大,IO频率过高,单机无法满足,促使多库存储,降低磁盘IO的访问频率,提高IO性能 ? ? ? ? 3.读写分离,在开发工作中,有时候会遇见某个sql 语句需要锁表,导致暂时不能使用读的服务,这样就会影响现有业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。
MySQL主从复制建立在三个线程之上,分别为 ????????主节点 binary log dump 线程????????????????负责将主数据库更新后的binlog日志内容发送到从数据库,在读取操作的时候,线程会对binlog上锁,当读取完成后,锁会被释放 ? ? ? ? 从节点IO线程? ? ? ? ? ? ? ? 接收主节点 binary log dump 线程发送的binlog日志内容,将其写入到relay log(中继日志)中 ? ? ? ? 从节点SQL线程? ? ? ? ? ? ? ? 负责读取relay log中的内容,解析成具体的操作并执行,最终保证主从数据的一致性 注意? ? ? ? 主节点使用binlog问价+position偏移量来定位主从同步的位置,从节点会保存其已接收到的偏移量,下次会从偏移量的位置进行同步,相当于每次都是增量同步,不是全量同步
异步复制? ? ? ? MySQL的默认方式,主库把日志发送给从库后不管从库是否已经接收并处理,这样的效率比较高,但是一旦主库宕机,从库处理失败,这时候从库转换为主库,就会产生日志丢失,导致数据丢失 全同步复制? ? ? ? 主库写入binlog后强行同步到从库,所有从库都执行完后才会返回给客户端,这种方式稳定性高,但是性能会收到严重影响 半同步复制? ? ? ? 和全同步不同的是,从库写入日志成功后返回ACK确认给主库,主库收到至少一个从库的确认就会认为写操作完成 参考文章 MySQL主从、主主、半同步节点架构的的原理及实验总结 - 记忆流年 - 博客园 膜拜!华为大牛透彻讲解Java面试100道必考题,不管你工作几年,都得看看!现在免费分享给大家!_哔哩哔哩_bilibili |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 14:38:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |