电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MySQL實現主從復制的原理詳解

瀏覽:24日期:2023-07-20 19:52:12
目錄異步復制半同步復制垂直分庫水平分庫分表

主從復制是怎么實現的呢?

當MySQL數據庫發生寫操作的時候會記錄下binlog,它是一種邏輯日志。有了這個 binlog,從服務器會獲取主服務器的 binlog 文件,然后解析里面的 SQL 語句,在從服務器上面執行一遍,保持主從的數據一致。

這里面涉及到三個線程:

IO線程

連接到 master 獲取 binlog,并且解析 binlog 寫入中繼日志,這個線程叫做 I/O 線程。

log dump線程

master 節點上有一個 log dump 線程,是用來發送 binlog 給 slave 的。

sql線程

從庫的 sql 線程,是用來讀取 relay log,把數據寫入到數據庫的。

主從復制的方式

異步復制

在異步復制中,主庫執行完操作后,寫入binlog日志后,就返回客戶端,這一動作就結束了,并不會驗證從庫有沒有收到,完不完整,所以這樣可能會造成數據的不一致。

說到底,復制過程中數據是否一致,主要取決于Binlog日志的安全性與完整性

在MySQL中,有sync_binlog=n這一參數,他的值表示每進行n次事務提交,MySQL就將Binlog刷新到磁盤。如果這個值為1,就代表每提交一次事務(SQL),就將Binlog往磁盤刷新一次,這樣一來,就算數據庫宕機了,那么最多只能損失一次事務的數據。

但是,一旦多個事務并發提交時,由于受sync_binlog的限制,MySQL只能按順序來處理這些請求,另外,高頻率的刷新binlog對IO的影響也很大,進一步影響了數據庫的性能,所以,一般這個值都設為0或者其他值,在數據的安全性和高并發下的性能之間取得一個平衡。

為了更加有效的保護Binlog的安全性和完整性,MySQL5 .5之后引入了半同步復制

半同步復制

在異步復制中,我們遇到的一個主要問題就是,在復制過程當中,主庫不會去驗證Binlog有沒有成功復制到從庫,那如果主庫提交一個事務并寫入Binlog中后,當從庫還沒有從主庫得到Binlog時,主庫宕機了或因磁盤損壞等故障導致該事務的Binlog丟失了,那從庫就不會得到這個事務,也就造成了主從數據的不一致。

而半同步復制,當主庫每提交一個事務后,不會立即返回,而是等待其中一個從庫接收到Binlog并成功寫入Relay-log中才返回客戶端,所以這樣就保證了一個事務至少有兩份日志,一份保存在主庫的Binlog,另一份保存在其中一個從庫的Relay-log中,從而保證了數據的安全性和一致性。

另外,在半同步復制時,如果主庫的一個事務提交成功了,在推送到從庫的過程當中,從庫宕機了或網絡故障,導致從庫并沒有接收到這個事務的Binlog,此時主庫會等待一段時間(這個時間由rpl_semi_sync_master_timeout的毫秒數決定),如果這個時間過后還無法推送到從庫,那MySQL會自動從半同步復制切換為異步復制,當從庫恢復正常連接到主庫后,主庫又會自動切換回半同步復制。

半同步復制的“半”體現在,雖然主從庫的Binlog是同步的,但主庫不會等待從庫執行完Relay-log后才返回,而是確認從庫接收到Binlog,達到主從Binlog同步的目的后就返回了,所以從庫的數據對于主庫來說還是有延時的,這個延時就是從庫執行Relay-log的時間。所以只能稱為半同步。

總之這兩種策略,可以濃縮理解為,一個是“不管不問”,一個是“確認到位就跑”。

讀寫分離

做了主從復制的方案之后,我們只把數據寫入 master 節點,而讀的請求可以分擔到slave 節點, 這種方案我們稱之為讀寫分離。

讀寫分離可以一定程度低減輕數據庫服務器的訪問壓力,但是需要特別注意主從數據一致性的問題。

我們在做了主從復制之后,如果單個 master 節點或者單張表存儲的數據過大的時候,比如一張表有上億的數據,單表的查詢性能還是會下降,我們要進一步對單臺數據庫節點的數據進行拆分,而這個拆分就是分庫分表。

常見的分庫分表策略

垂直分庫

把一個數據庫按照業務拆分成不同的數據庫:

水平分庫分表

把單張表的數據按照一定的規則分布到多個數據庫。

到此這篇關于MySQL實現主從復制的原理詳解的文章就介紹到這了,更多相關MySQL 主從復制內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
主站蜘蛛池模板: 胀套-锁紧盘-风电锁紧盘-蛇形联轴器「厂家」-瑞安市宝德隆机械配件有限公司 | 西门子伺服控制器维修-伺服驱动放大器-828D数控机床维修-上海涌迪 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 网带通过式抛丸机,,网带式打砂机,吊钩式,抛丸机,中山抛丸机生产厂家,江门抛丸机,佛山吊钩式,东莞抛丸机,中山市泰达自动化设备有限公司 | 校车_校车价格_19座幼儿园校车_幼儿园校车_大鼻子校车 | 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 塑料熔指仪-塑料熔融指数仪-熔体流动速率试验机-广东宏拓仪器科技有限公司 | 建大仁科-温湿度变送器|温湿度传感器|温湿度记录仪_厂家_价格-山东仁科 | 不锈钢电动球阀_气动高压闸阀_旋塞疏水调节阀_全立阀门-来自温州工业阀门巨头企业 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 液压油缸-液压缸厂家价格,液压站系统-山东国立液压制造有限公司 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | 网站建设,北京网站建设,北京网站建设公司,网站系统开发,北京网站制作公司,响应式网站,做网站公司,海淀做网站,朝阳做网站,昌平做网站,建站公司 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 防爆大气采样器-防爆粉尘采样器-金属粉尘及其化合物采样器-首页|盐城银河科技有限公司 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 学习安徽网 | 齿辊分级破碎机,高低压压球机,立式双动力磨粉机-郑州长城冶金设备有限公司 | 湖州织里童装_女童男童中大童装_款式多尺码全_织里儿童网【官网】-嘉兴嘉乐网络科技有限公司 | 酒万铺-酒水招商-酒水代理| 篷房|仓储篷房|铝合金篷房|体育篷房|篷房厂家-华烨建筑科技官网 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 自动钻孔机-全自动数控钻孔机生产厂家-多米(广东)智能装备有限公司 | 广州印刷厂_广州彩印厂-广州艺彩印务有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 便民信息网_家电维修,家电清洗,开锁换锁,本地家政公司 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 圆形振动筛_圆筛_旋振筛_三次元振动筛-河南新乡德诚生产厂家 | 超声波流量计_流量标准装置生产厂家 _河南盛天精密测控 | 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | 全自动不干胶贴标机_套标机-上海今昂贴标机生产厂家 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 电磁铁_小型推拉电磁铁_电磁阀厂家-深圳市宗泰电机有限公司 | 生产自动包装秤_颗粒包装秤_肥料包装秤等包装机械-郑州鑫晟重工科技有限公司 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 板式换热器_板式换热器价格_管式换热器厂家-青岛康景辉 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 净化板-洁净板-净化板价格-净化板生产厂家-山东鸿星新材料科技股份有限公司 | 冷却塔降噪隔音_冷却塔噪声治理_冷却塔噪音处理厂家-广东康明冷却塔降噪厂家 | 郑州律师咨询-郑州律师事务所_河南锦盾律师事务所 | 生产加气砖设备厂家很多,杜甫机械加气砖设备价格公道 |