当前位置: 首页 > news >正文

Oracle和MySQL DBA的进阶之路

   今天去数据技术嘉年华做了一个主题分享,会场由肖鹏大师主持,我的印象中MySQL中圈子里彦伟和肖鹏真能侃,什么都能聊。下午的场子比预想的人要多,场子里都坐不下了。我到的时候只能站着听了。

   在今年数据库技术大会的时候,我在专场"DBA修炼之道”里讲了关于DBA的一些技术建议,没想到得了第三天的“最佳讲师”。奖品是有个蛮不错的音响,没事的时候在客厅放上几个曲子。

0

当然这个不是重点,自己几斤几两还是自知之明的,我想说的是,同一个主题或者方向,我如果做分享我还是会重新构思一版,这样对自己是一种鞭策,对听众也有新的收获。

 我把今天分享的内容整理了一下,先放出一部分的ppt内容,做一些解读和分析,更多的内容还是希望在现场和大家交流,或者在后台互动吧。

主题是“Oracle和MySQL DBA的进阶之路"。

先来说说分享的初衷,这个是参考了朱赟[yūn]的一段话,我觉得已经很透彻形象了,毕竟在短短的几十分钟里,你只能得到一些思想上的建议和思路,落到实处还是得靠自己。而参考和借鉴的过程也是自己修行的过程。第二句我关于坚持,有的同学说坚持是习惯,有的说是毅力,本质上来说,还是坚持的态度,是坚持做一件事情,还是坚持把一件事情做好,两者听起来相似,实则有很大的差别。

0

我分了几个层面来做了一些解读。在本文中会抽取重点列出一些来。0

对于Oracle和MySQL的学习周期,其实正如我开篇所说,目前国内的使用有两个比较明显的误区,一个是把Oracle当做MySQL用,主要表现就是把Oracle当做免费版来用,另外一个是把MySQL当做Oracle来用,一些复杂的查询,表关联放在MySQL里还想达到Oracle的性能标准,这个本身也是不合适的,找到自己最好的业务场景非常关键,不是为了上一个技术而用一个技术,结合不好,后期出了问题就很尴尬,本质来说不是某个技术方案不好,而是你没用好。对于Oracle DBA来说,学习MySQL的话学习周期会相对短一些,入门也比较快,但是如果要深入学习MySQL,还是很难的,因为有很多方面都需要深入理解,深入的层次是在源码级,可以做定制,而对于MySQL DBA来说火,学习Oracle的周期会比较长,因为很多方面是MySQL不会关注,或者没有的功能,如果要深入学习Oracle,还是得有很长时间的积累,Oracle的体系太大,备份恢复,性能优化,数据迁移能够抓住几个面搞到精通就很不容易了,深度进阶的层级基本是到了调试,内核的程度。这方面国外其实做得很不错,氛围非常浓厚。

0

对于Oracle和MySQL,还是需要了解下他们目前的位置,最新的DB-Engines的报告显示前三甲稳稳的是关系型数据库,而MySQL是作为开源数据库的第一阵营出现的,当然这个排行榜不要过度解读,本身只是一个流行度的标识,就是你在搜索引擎中搜索的关键字,反映的一个热度而已,绝非市场占有率。

Oracle目前最新的版本是开放的12.2.0.1.0,而12.2.0.2.0即是下一个版本18c.当前的版本中的变化更多是在CDB和IMO方面。尤其是在CDB部分,自己逼着自己琢磨了一段时间,还沉淀了一些经验和大家做了分享,而18c的亮点就在于自治了,本质上自治和自动化还是有一定的区别,可以简单理解自治是自动化的延伸。而MySQL的改进一个重大标志是在去年年底的MGR GA,本身从优化器层面和复制方面,MySQL是卯足了劲,现在MySQL 8.0的更新速度极快,到目前最新的是8.0.3,5.7版本是5.7.200

这里我们就需要考虑数据库的版本规划,想起来容易但是落实起来难,因为就有很多的因素需要考虑,而不是简单的找一个认为好的。比如MySQL的版本选型,到底用哪一个版本,5.5太旧,5.6相比5.7完善,5.7相对来说更加成熟,8.0又太新,那么问题来了,5.7的版本该选择5.7的具体哪个版本呢,这里就有很多的门道了,最后我们选择的是5.7.16作为基线版本,而分支选择的是也有需要的考虑因素,细节也很多,原则就是从把正面,反面的考虑点都列出来,综合评估。对于Oracle的版本规划整体而言要清晰很多,目前的主流业务还是11gR2为主,12cR1和12cR2有一个较长的时间间隔,很多DBA的印象中R2是稳定版本已根深蒂固,要改变这种思维估计在18c之后才会有大的改观,毫无疑问,软件选型目前都基本是企业版的。

0

关于高可用方案,其实是一个永恒的热点话题,就是因为这是一把双刃剑,如果保证数据不丢失,如果保证业务的可持续性,要做出一个100%完美的方案是一个理想状态,但是至少可以朝着这个方向努力。

Oracle的数据架构是集中,本质上是集成共享,统一访问,能够达到数据强一致性,而MySQL的数据架构是复制,本质上是多个数据的副本,在数据的一致性方面还是有很多事情要做,或者说完善。MySQL的架构方式明显会限制它的集群规模,比如MGR是硬性限制是9个节点,而Oracle扩展节点来说还是相对容易的,因为本质数据是同一份,共享存储。

 阿里的IOE架构陪伴他们走过了业务发展的黄金时期,也是在达到资源的使用瓶颈之后,他们全面拥抱了分布式方案。从早期使用MySQL到后期再次引入MySQL,出发点已然不同。MySQL的高可用方案我列举的是MHA,其实还有很多其他的方案,但是MHA目前是最流行的,经过的考验也最多。0

要搞明白MHA需要做很多的细致工作,我分析了MHA的代码,发现里面的调用关系还是蛮复杂的,总是看起来不得要领,索性理了一份代码关系图,通过这种方式就能很快抓住重点了。中间的橙色框就是常用的一些命令和库文件了。

0

当然还有一个很经典的Oracle迁移方案,我们后续有时间再细聊,里面的细节问题比较多。

关于进阶的建议,本身会有很多的选择。比如大数据,开发,架构等方向,或者做一个更专业,技能精神的专家或者一个很全面的行业大咖。

0?wx_fmt=jpeg

进阶的思路总是一些建议,落实的时候会发现有一些落差,就如同下图所示的这样。

0

这个图怎么理解呢,其实是一个知乎有名的游戏,即100个人每个人手里有1块钱,大家随机交换,最后每个人手里剩下多少钱,经过真实的模拟,有一套理论。如果通过SQL来模拟,也是分分钟搞定,可以看到,绝大多数人都是原地踏步,但是只有极少数的人能够走出这个圈子来。0

所以大家要多多加油。走出思维的桎梏。

相关文章:

  • 重新构建自动化运维平台的起步工作
  • 关于MySQL极限值的初步验证纠错
  • “这一次母亲不会原谅我”作文《孟婆汤》全文
  • 技术价值公益化的思考
  • 如果理解Python web开发技术
  • 推荐的一些最近在读的文章
  • 《封神榜》童年的回忆
  • 疯狂的十天计划开启(二)
  • 今年计划读完的几本书
  • 从性格色彩认知了解自己
  • 运维平台中的脚本管理
  • 今天的几点感悟(20180327)
  • 让我认识下手机对面的你
  • 推荐几篇最近在读的技术文章
  • 专注三说
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • If…else
  • mongo索引构建
  • Odoo domain写法及运用
  • Phpstorm怎样批量删除空行?
  • Python爬虫--- 1.3 BS4库的解析器
  • vue-router的history模式发布配置
  • vuex 学习笔记 01
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 构建工具 - 收藏集 - 掘金
  • 后端_MYSQL
  • 【干货分享】dos命令大全
  • 进程与线程(三)——进程/线程间通信
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • # centos7下FFmpeg环境部署记录
  • #{}和${}的区别?
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (八)c52学习之旅-中断实验
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (三)模仿学习-Action数据的模仿
  • (十五)使用Nexus创建Maven私服
  • (推荐)叮当——中文语音对话机器人
  • (转)JAVA中的堆栈
  • (转)LINQ之路
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .project文件
  • @Autowired和@Resource装配
  • @html.ActionLink的几种参数格式
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [android] 手机卫士黑名单功能(ListView优化)
  • [bzoj4240] 有趣的家庭菜园
  • [C#]猫叫人醒老鼠跑 C#的委托及事件
  • [C++] 默认构造函数、参数化构造函数、拷贝构造函数、移动构造函数及其使用案例