MySQL主从同步 --原理、问题、解决方案和应用 @淘宝丁奇 2009-8-22.

Slides:



Advertisements
Similar presentations
平衡飲食保健強身 整理至簡體版,作者不可考。內容為 參加國際健康會議所發表的心得。. 人應該活多久 有人告訴我五六十歲就差不多了。 我在醫院工作四十年了,絕大部分病死的人是 很痛苦的。 我在美國遇見張學良,一進門見到他就大吃ㄧ驚, 他眼不花,耳不聾,很多人問他:少帥,您怎 麼能活這麼久? 他回答:不是我活的久,是他們活的太短了。
Advertisements

复习提问 1. 从物理角度来说说什么是噪声? 从物理角度来说噪声是指发声体做无规则 的振动时发出的声音。 2. 从环境保护角度来说说什么是噪声? 从环境保护的角度看:凡是妨碍人正常休 息,学习和工作的声音,以及对人们要听 的声音 起干扰作用的声音,都属噪声。
數學社群 教學分享 和平國小 陳淑渟老師 數學社群 教學分享 和平國小 陳淑渟老師. 小一常發生的 學習困難 定位板的應用 序數的學習 困難與教學 突破 主題大綱.
C A D C D.
健康.安全年 製作 : 黃靜怡. 安全第一,我想,這是一句大家都耳熟能詳的話吧,說安全, 簡單的說,就是注意自己、眼睛要看、耳朵要聽,不要莽莽 撞撞的,安全是大家所期望的,而父母總是常常掛念我們, 就是希望我們能安全,畢竟,孩子是父母一輩子的牽掛,會 擔心我們的,往往就是關心我們的人,每個人都希望自己做.
【大願文教基金會】園藝治療師 黃盛璘督導、王麗玲執行. 年齡在 2 足歲以上 18 歲以下,經醫學中 心或區域醫 院鑑定為 重度、極重度 身心障礙,不具行動能 力、且不能自理生活,並持有身心障礙 手冊的新北市居民。 八里愛心教養院~服務對象.
第二十九课 致儿子书 张之洞.
联合国提出个口号:“千万不要死于无知” 保健的三个里程碑 平衡饮食 有氧运动 心理状态.
如何陪伴孩子度過 高三歲月.
把人的生命写在教育的旗帜上 了解一个案件 欣赏一篇散文 学习一种理念 感悟一个故事.
扬声器的布置与安装.
六大原因造成 現代人身體酸性化.
平衡飲食保健強身.
第五章 话语的语用意义(上) 主讲人:周明强.
【2008年高考重庆卷】A.当冰雪皑皑之际,唯独梅花昂然绽放于枝头,对生命充满希望和自信,教人精神为之一振。
景区讲解常用方法.
厦门大学数据库实验室 刘颖杰 2014年11月15日 实习总结报告 厦门大学数据库实验室 刘颖杰 2014年11月15日.
班級愛心小護士訓練 臺南市東區勝利國小 健康中心.
第一部分 中考基础复习 第一章 声现象.
校园信息管理系统 河北科技大学网络中心 2000/4/10.
项目四 营业税 山东经贸职业学院 财政金融系.
敬业·创业·乐业 ——我的成长之路 赵谦翔.
四年七班親師會 自信學習,健康成長.
主办:泰兴市质量强市领导小组办公室 承办:泰 兴 市 市 场 监 督 管 理 局.
醫療旅遊.
社會發展學系 簡 介.
人物小传:杨嘉嵋,1975年出生,国家 重点四川大学本科毕业,中国传媒大学博士毕业,现为上海政法学院讲师。多次发表学术论文:《试论社会主义法治的目标和现代法治精神的培育》发表于钦州师范高等专科学校校报2000年04期,《西部在引进,利用外资中应重视的问题及对策》发表于四川师范学院学报2000年05期,《试论毛泽东的刑法思想》发表于达县师范高等专科学校学报2001年01期,《美国著名主持人的十点共性》发表于中国广播电视学刊2007年08期,《我国电视法治节目的现状与提升》发表于新闻战线2008年08期。
第二章 语用的主要要素分析 第一节 语境 第二节 预设 第三节 角色 第四节 视角.
从从容容中考去.
美麗的星空 陳弦希製作.
性別刻板印象.
初三8班(上) 期末总结班会.
初三(上) 期末总结班会.
一週菜單設計.
第一章 复 习 锦囊妙计 多看书 多看笔记 善于梳理.
徵收苗栗市福全段147、1588及文心段10、11地號等4筆土地之
改革开放给我们带来的变化 系别:11商务流通系 班级:物流四班 组员:物四男生组.
MHA(Master High Availability) 作者
大村國小 尋根之旅.
那年我參加瑞士巴塞爾博覽會, 除了接單做貿易,還零售賣品, 以擴大出口商品的影響。
西安国际港务区 入区企业相关地方税收 知识培训
拒绝毒品健康成长 ——张鸿谊.
讲 义 大家好!根据局领导的指示,在局会计科和各业务科室的安排下,我给各位简要介绍支付中心的工作职能和集中支付的业务流程。这样使我们之间沟通更融洽,便于我们为预算单位提供更优质的服务。 下面我主要从三方面介绍集中支付业务,一是网上支付系统,二是集中支付业务流程及规定等,
动商研究中心 让高校体育驶入快车道 --国家“学校体育”相关文件解读 2016 年 05 月 15 日.
第三章 领悟人生真谛 创造人生价值 第一节 树立正确的人生观 创造有价值的人生 第二节 第三节 科学对待人生环境.
鸟的生殖和发育.
电子商务师 第二部分 电子商务的技术基础—计算机.
Canal开源产品介绍 taobao.
中国人民公安大学经费管理办法(试行) 第一章总则 第四条:“一支笔” “一支笔”--仅指单位主要负责人。负责对本 单位的经费进行审核审批。
课程名称 黄杉 讲师的CSDN博客地址:
翰林自然 六年級上學期 第二單元 聲音與樂器.
噪音與振動 令人感到不舒適 造成生理與心理上危害的聲音—噪音 振動—聲音 聲音—空氣中壓力之變化—正弦波 音量—音壓之強弱—分貝 dB
《生活与哲学》第一轮复习 第七课唯物辩证法的联系观.
補救教學實施方案 科技化評量系統操作說明 對象:承辦人權限.
面向高能所信息化系统的高可用数据库服务 王丽 计算中心 中科院高能所 第十八届全国科学计算与信息化会议.
第8章 数据库的安全和完整性约束 数据库的破坏一般来自: 1.系统故障; 2.并发所引起的数据不一致; 3.人为的破坏;
浅谈MySql索引及锁的应用 厦门大学数据库实验室 刘颖杰 2014年3月8日.
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 3 章 安裝 WebServ.
OceanBase 0.4:从API到SQL 日照
第六類 資料庫備份與回復.
網際網路與電腦應用 林偉川 2001/12/13.
微信商城系统操作说明 色卡会智能门店.
創造不一樣的人生 -如何與身心障礙者接觸 新竹教育大學 薛明里.
全台灣最美的日出好美…好美… 這就是傳說中的潑墨二寮,耳聞她的日出有如國畫般 所以稱為潑墨二寮
大綱 一.受試者之禮券/禮品所得稅規範 二.範例介紹 三.自主管理 四.財務室提醒.
第二节 声音的特性 人们有规律的、好听悦耳、使人愉快的声音叫做乐音,无规律的、难听刺耳、让人心烦的声音叫做噪声。
多姿多彩的世界.
台灣房價指數 台灣房屋 中央大學 2011年7月29日.
银川社保网上申报 宁夏人力资源和社会保障 网上服务大厅操作
Presentation transcript:

MySQL主从同步 --原理、问题、解决方案和应用 @淘宝丁奇 2009-8-22

讲师介绍 讲师简介: 丁奇: 08年至10年在百度贴吧,作服务端开发,开始接触MySQL。之后由于业务需要开始看MySQL代码,囫囵吞枣不求甚解。10年得机会进入淘宝核心系统数据库组,主要是MySQL优化和提升可维护性。参与IC、TC读库调优;写了一些插件,打了几个patch到官方;实现MySQL主从同步工具、设计MySQL异构数据同步方案、MySQL中间层。一直游离在了解需求、设计方案、推广方案的三点一线上 。

课程目标与目标学员页 目标学员:对存储引擎、系统优化有兴趣的同学。 课程目的 : 介绍主从同步的概念、原理、存在的问题和优化思路。 课程目的 : 介绍主从同步的概念、原理、存在的问题和优化思路。 学员能够获得的收获: 主从同步的基本配置步骤和注意事项、探讨追查和解决问题的思路

MySQL主从同步基本概念和配置步骤 MySQL主从同步基本流程 延迟的原因 解决方案一 解决方案二 --Transfer 应用场景和业务限制 保障和退化 在多主同步的应用 不能解决的光速问题 不能解决的更新延迟

MySQL主从同步基本概念和配置步骤 用于实例之间同步数据,可以级联 只需要更新主库 备库用于备份或查询分流 配置注意事项 主库必须开启binlog Master和slave的server-id不能相同 同一个Maser的多个slave,server-id也不能相同 Binlog_format最好相同。 在log-slave-updates=1时,不允许Master是row,slave是statement这种是不允许的。

MySQL主从同步基本概念和配置步骤(续) 配置基本步骤 主库上grant权限 从库上change master to …; Start slave 问题

MySQL主从同步基本流程 Master Slave

等等。。。1和2之间那个箭头怎么不画出来--我们不关心 MySQL主从同步延迟原因 什么是延迟--2和6的时间间隔 1 为什么延迟 2、5的文件更新通知?不是 3的网络延迟? 不是 4的写盘延迟? 不是 2 3 5 6 4 等等。。。1和2之间那个箭头怎么不画出来--我们不关心

MySQL主从同步延迟原因 延迟原因 主库更新多线程 从库更新单线程 都是箭头,你咋这么苗条呢?

三秒钟变格格么。有那么好MySQL为什么不支持? 解决方案: 从库变成多线程更新 反问一句: 三秒钟变格格么。有那么好MySQL为什么不支持? 说胖就胖了啊。。。

语句顺序无法保证--insert和update调换有什么问题? MySQL主从同步解决方案 直接多线程存在的问题: 语句顺序无法保证--insert和update调换有什么问题? 又瘦回去了,怂了。。。

MySQL主从同步解决方案 咔~ 导演说咔了吗? 其实我准备变身, 左上角的兄弟, 后面好像都没你的戏份了, 能不能先洗洗睡去?

6、先作个不同表之间并行的,线上一个库都有很多表 MySQL主从同步解决方案 解决方案分析: 1、一定要多线程!为什么? 2、多线程又会打乱顺序 3、总是有些没那么严格的,是吧? 4、同一个表的更新必须按照顺序 5、不同表呢? 6、先作个不同表之间并行的,线上一个库都有很多表 过渡太久了吧,变身的那位呢?

MySQL主从同步解决方案 Slave 认不出来了,来个对比照

从此Master和Slave过着幸福的生活? 太naïve了。。。 MySQL主从同步解决方案 应该是解决了 从此Master和Slave过着幸福的生活? 太naïve了。。。 实际上,刚才那个是副导演 导演回来了,说: 说明:直接修改slave代码,风险比较大 咱这剧本不允许主角变身! 未完待续

MySQL主从同步解决方案 方案考虑: 多线程是ok的 但是不能修改线上的代码 就是Master和Slave都不能动 变回来了,导演管饭,听导演的

MySQL主从同步解决方案 某路人 。。。肿么这么眼熟

MySQL主从同步解决方案

以上为前传,介绍MySQL多线程同步工具(Transfer)的设计思路 以下为文字解释版 相同的机器配置,出现性能差异的原因,是从库上单线程更新。 说明:直接修改slave代码,风险比较大

MySQL主从同步解决方案 一种方案是将从库的单线程apply改成多线程,但需要修改slave的代码。 安全起见,以工具的形式提供多线程同步功能。 Transfer也是一个MySQL,DBA一般部署在slave同一个机器上,放到/u01/mysql2 Transfer设置为Master的从库,接收日志后更新Slave 从Slave来看,Transfer是一个普通的Client。

MySQL主从同步基本概念和配置步骤 MySQL主从同步基本流程 延迟的原因 解决方案一 解决方案二 --Transfer 应用场景和业务限制 保障和退化 在多主同步的应用 不能解决的光速问题 不能解决的更新延迟

Transfer的应用场景和业务限制 多表业务 对Master的限制 Transfer的策略是在io_thread接收主库日志后,分成16份不同的relay-log存放 再用16个sql_thread分别读取日志分发 确保同一个表的更新语句顺序与主库binlog相同 对Master的限制 主库设置binlog为row模式 (不支持Statement的原因) 主库单个语句的binlog不能超过1G (原因说明) 尽量减少一个语句更新两个表

Transfer的应用场景和业务限制 对Slave的限制 对DDL语句的处理 设置max_allowed_packet = 1G 需要一个root权限账号提供给Transfer 对DDL语句的处理 0号线程的作用

Transfer的保障和退化 保障 退化 Transfer本身挂了数据不丢(持久化的数据队列) Slave出错重启后,继续同步直接start slave Master重启后自动重新同步 维护方便。 stop slave; change master; slave_skip_errors 直接接入现成监控系统 退化 Statement模式下某些语句不支持。 支持的语句性能也不提升 事务打散 从库上不再支持rollback (什么时候从库会收到rollback?)

效果对比 原始性能 Transfer方案性能

MySQL主从同步基本概念和配置步骤 MySQL主从同步基本流程 延迟的原因 解决方案一 解决方案二 --Transfer 应用场景和业务限制 保障和退化 在多主同步的应用 不能解决的光速问题 不能解决的更新延迟

Transfer在多主同步的应用 多主复制的需求来源 备份节约机器 数据聚集分析 理想方案 MySQL不支持

Transfer在多主同步的应用 现在方案 浪费硬盘空间 增加额外更新 更大的延迟

Transfer在多主同步的应用 Transfer方案

MySQL主从同步基本概念和配置步骤 MySQL主从同步基本流程 延迟的原因 解决方案一 解决方案二 --Transfer 应用场景和业务限制 保障和退化 在多主同步的应用 不能解决的光速问题 不能解决的更新延迟

无法解决的光速问题 抽象回简单场景,在解决cpu利用问题后,从库更新性能与主库相同 新问题:跨机房单个数据延迟 杭州到青岛线路就是那么长 20ms

无法解决的光速问题 回到最开始的一个问题 什么是延迟 1 2 3 5 6 4

无法解决的光速问题 如果我们把延迟定义为 3到6的时间差呢? 1 让用户多等20ms 换取数据一致性 一起来讨论 2 3 5 6 4

MySQL主从同步基本概念和配置步骤 MySQL主从同步基本流程 延迟的原因 解决方案一 解决方案二 --Transfer 应用场景和业务限制 保障和退化 在多主同步的应用 不能解决的光速问题 不能解决的更新延迟

一个耗时10ms的更新,至少延迟10ms 不能解决的更新延迟 这回我们关注6本身, 要求完全没有延迟怎么作? 全同步?--no 2 不要陷入锤子钉子的误区 3 5 6 4 放弃这方案,用双写

MySQL官方版5.6的多线程同步介绍 & 启发 按DB分线程 为什么我们当时没这么作? 跨DB的则线程合并 Transfer与其实质区别是粒度不同 被按DB分提醒了 – 后续改进

课程回顾 、总结页 如何配置主从同步 主从同步原理 主从同步性能问题现状 优化方向 安全的妥协方案 Transfer的其他应用

谢谢