【2017DTC精彩重现】Oracle和MySQL DBA的进阶之路

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

分享的初

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

ce183fad3906fd21b094c69ac7973a574220c166

分享思路

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

9dc998567483eb0fb8148cc921998a0b7106c76b

Oracle和MySQL的学习周期

其实正如我开篇所说,目前国内的使用有两个比较明显的误区,一个是把Oracle当做MySQL用,主要表现就是把Oracle当做免费版来用;另外一个是把MySQL当做Oracle来用,一些复杂的查询,表关联放在MySQL里还想达到Oracle的性能标准,这个本身也是不合适的。找到自己最好的业务场景非常关键,不是为了上一个技术而用一个技术,结合不好,后期出了问题就很尴尬,本质来说不是某个技术方案不好,而是你没用好。

对于Oracle DBA来说,学习MySQL的话学习周期会相对短一些,入门也比较快,但是如果要深入学习MySQL,还是很难的,因为有很多方面都需要深入理解,深入的层次是在源码级,可以做定制,而对于MySQL DBA来说火,学习Oracle的周期会比较长,因为很多方面是MySQL不会关注,或者没有的功能,如果要深入学习Oracle,还是得有很长时间的积累,Oracle的体系太大,备份恢复,性能优化,数据迁移能够抓住几个面搞到精通就很不容易了,深度进阶的层级基本是到了调试,内核的程度。这方面国外其实做得很不错,氛围非常浓厚。

797fa06be62749997293540c528a2b81294745e8

数据库技术发展现状

对于Oracle和MySQL,还是需要了解下他们目前的位置,最新的DB-Engines的报告(DB-Engines最新11月数据库排名)显示前三甲稳稳的是关系型数据库,而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.20

cd22d6992bf303c96760c1c43de8364b44dfbda0

数据库版本规划

想起来容易但是落实起来难,因为有很多的因素需要考虑,而不是简单的找一个认为好的。比如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之后才会有大的改观,毫无疑问,软件选型目前都基本是企业版的。

5c66f1d2bdadc23ce7209a5835cb5855b4402c5b

Oracle与MySQL的高可用方案

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

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

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

阅读全文请点击

从一个“普通”的Oracle DBAOracle数据库管理员)转变为Oracle Applications DBAOracle应用程序数据库管理员),有两个内容你必须去弄清楚。第一个内容是如何成为一个Oracle Applications DBAOracle应用程序数据库管理员)。第二个内容是你要搞清楚Oracle应用程序背后的架构体系,也就是说你要明白诸如以下产品的结构体系:Oracle电子商务套件、Oracle 11i数据库、Siebel产品等。 本文首先讲述如何从一个普通的Oracle DBA转变为一个Oracle Applications DBAOracle应用程序数据库管理员),接着讲述一些Oracle应用软件架构方面的内容 。 如何成为Oracle应用程序数据库管理员 首先是角色的转变 Oracle Applications DBAOracle应用程序数据库管理员)对“普通”的Oracle DBAOracle数据库管理员)来说是一个很大的挑战。拿Oracle EBS DBAOracle 电子商务套件DBA)来说,不仅需要了解EBS的各个组件、服务,而且还要更主动和其他相关人员接触。 一个Oracle Applications DBAOracle应用程序数据库管理员)不仅需要和其他DBA一样去负责managing、 sizing、maintaining和 tuning database这些日常的数据库管理的工作,如果他的Apps database是OLTP系统的话,他还需要监察wait和lock 。Oracle E-Business Suite还有一些特性需要DBA去完成,比如从外部资源里灌数据到Apps database里,或支持开发人员从已有数据中提取数据。 接着工作内容的转变 作为一个Oracle Applications DBAOracle应用程序数据库管理员),要想更好的对Oracle Application database做支持,需要仔细记住以下几项。 1.网络上没有什么比较容易简单的文档让你去熟悉Apps DBA,所以我建议去看帮助。 2.在你没有经过多次测试并且得到客户认可的时候不要去打补丁,并且你要确信这个补丁解决了现有的问题,而且没有带来其它新的问题。 3.记住Oracle Applications会有很多索引,定期rebuild index会对性能有好处,当然做这项工作应该在系统的空闲时间。 4.不要为了提高性能而在没有询问oracle Support前试着去增加额外的indexes。如果你一定要去做,那千万记住要有文档作记录,因为在这之后你再打patch的时候它可能会把你做的修改自动复原。 5. 知道怎么样是正确的打patch,先计划打哪个patch,然后取得patch,接着打patch,测试,最后文档记录。 6. 要知道任何时刻数据库都可能会有一些object 是invalid的,你的一些操作也会增加invalid objects,定期检查这些invalid objects的数量,然后定期用utlrp去重新编译,utlrp.squ在ORACLE HOME的rdbms/admin下,需要用SYS运行。在你的DB运行过程中如果碰到错误,就可以先重新编译invalid objects,如果没有解决问题再去递交iTAR(Internet created Technical Assistance Request). 7.能看懂日志。 8.了解Apps database的环境,包括操作系统和DB的,当你对你的工作环境了如指掌后,一切也就变得容易了,那时,你就是一个悠闲的Apps DBA了。 另外,对于APPS DB(应用程序数据库)来说,你可能需要创建或拷贝(克隆)多个生产库以外的数据库,比如测试和开发数据库,当然,需要多少数据库是由你的商业需求所决定的。开发环境数据库是供开发人员进行report,PL/SQL等开发的,这个环境可以在开发人员觉得数据已经不再满足开发需求的时候,当然也可以在这个环境测试补丁(patches)。当然最终使用patch的时候还需要在测试环境做测试,因为测试数据库是和生产数据库环境最接近的。(上面说的克隆cloning是一种将applications layer和database layer完全复制的一种方法。)所以,当你拥有这三个数据库的时候,打patch的步骤是先development database再test database最后才在production database环境应用。 构架应用体系 如果你研究过Oracle Forms,使用过Application Server和Devel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值