王宝器漫游O记数据商店
作者:互联网
王宝器是蜀你最棒集团新上任的CTO,今天应邀参加O记数据大会。王总是四川阆中人,公司特意指派了资深销售苏小妹负责接待,一大早,苏小妹就在会场门口恭候王总的光临。
苏小妹:王总,您好!我是Oracle公司的销售苏小妹,您可以叫我Sophia。我是四川眉山的,和您是老乡。
王宝器:老乡好,你们那的钵钵鸡可真巴适。
苏小妹:是啊是啊,阆中的川北凉粉也很安逸哦。
王宝器:哈哈,不说吃的了,听说你和我们崔大牛崔总是校友?
苏小妹:我们都是英国克莱登大学毕业的,同系不同届。他是“编故事”专业,我是“讲故事”专业。
王宝器:海归啊,优秀优秀,那后来怎么转行做销售了呢?
苏小妹:也不算转行,讲故事是最古老也是最强大的沟通方式,也是我们销售的一项重要技能。以故事形式传递的信息,让人记住的效果,比只用事实和数字会好很多,特别是同类型客户的Success Story。今天就由我负责给您“讲故事”。
王宝器:好啊好啊,今天会议的主题是介绍Oracle数据库吗?
苏小妹:准确的说是介绍以数据库为核心的数据解决方案,Oracle致力于帮助用户管理、使用、分享和保护数据,通过数据为用户创造业务价值。王总,我们Oracle的数据产品很丰富,就像川菜一样,一菜一格,百菜百味,而不仅限于麻辣哦。
王宝器:这样啊,那你们有哪些典型的数据方案呢?
苏小妹:数据操作,数据分析,数据安全,数据保护,数据集成,数据治理,这些领域我们都会涉及到。
王宝器:听起来有点抽象,能具体介绍一下吗?
苏小妹:那我们先从最基础的数据库企业版讲起吧。数据库企业版由核心和选件组成。用户在购买核心的基础上,可以搭配一些选件,以形成所需的企业级解决方案。您平时听到的Database Option或DBO,指的就是数据库选件。例如真正应用集群和活动数据卫士可用来搭建高可用和灾备解决方案,Database In-Memory和分区可构成数据仓库和实时分析解决方案。
王宝器:难怪我们的核心财务系统配了真正应用集群。我理解这些选件虽然是可“选”的,但对于用户却是相当重要的,对吧。
苏小妹:是的,这些选件是Oracle数据库丰富企业级功能的体现,也是我们重要的差异化竞争优势。
王宝器:谢谢,这方面我已经大致了解。还想问一下,数据库对于我们业务很重要,我们怎么样才能把数据库管好用好,例如运行是否正常,出现问题后如何尽快解决?
苏小妹:您正好可以用上我们的管理运维工具,Oracle Enterprise Manager,简称OEM或EM。
王宝器:我多年前也装过Oracle数据库,我记得每个数据库都可以通过一个Web页面进行管理,和你说的有什么不同?
苏小妹:那个只能做简单的,单个数据库的管理。我们的EM可以集中式的管理多个数据库,功能也丰富得多。和数据库选件类似,EM也可以进行一些功能组合,我们叫做Management Pack,或管理包。常用的管理包有诊断包和调优包,可以快速发现和解决性能问题。其它如生命周期管理包可大幅减轻DBA的数据库供应,补丁和升级的工作量,数据脱敏和子集包可以从生产系统提取数据并脱敏后用于持续的开发测试,云管理包可用来构建数据库私有云。运维管理和健康管理一样,都是预防为主,用了EM,数据库的管理就从被动变为主动,就好像中医常说的上医治未病。
王宝器:北京这几天这么冷,多穿点上衣确实能防治胃病。
苏小妹:王总真会开玩笑。对了,数据库必须是企业版才能通过EM管理,管理包之间也存在依赖性,具体您可以看上面这张图。另外,这里只涉及到数据库的管理,其实EM还可以管理Oracle的中间件产品和其它厂商的产品,象SQL Server和DB2等。
王宝器:这么多数据库选件和数据库管理包,有没有一些简单的原则指导我们选择呢?
苏小妹:您可以参考下面这张图,根据您的业务需求来做选择,例如灾备可以参考可用性那个圈,数据仓库可参考分析那个圈。当然,您还可以组合这些需求,或做一些调整。
王宝器:那我问个具体的问题吧。我们的财务系统明年要做异地灾备,灾备中心在贵州,该选用哪些选件和管理包呢?
苏小妹:您可以参考一下Oracle最高可用性架构,简称MAA。这个架构专注于高可用、灾备与数据保护,总结了30多年来解决高可用问题的经验和教训,最适合您这种对停机时间和数据保护要求严格的客户了。根据这个图,您可以先选择ADG,也叫活动数据卫士,这个是非常成熟的技术,核心系统的参考案例非常多;然后呢,在灾备端可以配置RAC,以保证接管时处理能力足够;最后,如果复制链路带宽比较紧张,可以配置高级压缩选件。
王宝器:我听说由于性能的原因,远程灾备通常只能采用异步复制,但异步复制可能会丢数据,而我们的财务系统是一点数据都不能丢的,你们有什么好的建议?
苏小妹:同步怕影响性能,异步怕丢数据,在以前确实是个两难的选择。不过现在我们ADG有一个Far Sync功能可以解决这个问题。其实就是在靠近生产中心的地方增加了一个二传手,负责接收来自生产中心的变化并传递到灾备中心。因为它和生产中心是完全同步的,这样数据不会丢,因为和生产中心非常近,所以性能也不受影响。
王宝器:那这个二传手,我们是不是需要增加硬件。
苏小妹:是的,但这个二传手比较轻,只负责传变化,不提供数据服务,所以对硬件要求不高,增加的成本也不多。
王宝器:对了,我听说你们还有一个免费的Data Guard,这个和ADG有什么区别呢?
苏小妹:ADG是Data Guard的高级版。ADG可以保证在实时复制的同时,灾备端还能提供只读访问,这样就可以将灾备端利用起来,做一些分析查询,数据备份之类的工作,从而减轻生产端的负担;还可以对损坏的数据块提供自动修复,这也是我们相对于存储复制的一个优势;还有刚才提到的Far Sync也是ADG中的功能。
王宝器:我看MAA架构图中数据复制那一栏,还有个GoldenGate,它和ADG有什么区别呢?我们这次的灾备项目可以用它吗?
苏小妹:都可以实现复制,但使用的技术、应用的场景和支持的环境不一样。先说技术,ADG是物理复制,GoldenGate是逻辑复制。物理复制是将源端的变化导出,然后直接在目标端应用。逻辑复制是将源端的变化导出后,转换为SQL语句,最后在目标端应用。场景上,ADG专注于Oracle数据库的灾备,GoldenGate则侧重于数据集成。环境上,ADG要求数据库版本一致,而GoldenGate可用于不同硬件平台,不同操作系统,不同数据库产品,不同数据库版本间的复制[1]。所以,ADG更适合你们这次的灾备项目。
王宝器:看起来这两个产品一个注重深度,一个注重广度。
苏小妹:是的,如果说ADG是一把锋利的宝剑,GoldenGate则更像瑞士军刀。ADG只做整库复制,GoldenGate可以选择部分表和部分行复制,还支持双向复制,以及异构复制。业务场景方面,数据分发,数据汇聚,数据仓库,读写分离,双活都可以用GoldenGate实现。实际上,这两个产品是可以配合使用的。
王宝器:说到数据集成,你们有ETL产品吗?
苏小妹:我们的ETL产品叫Oracle Data Integrator,简称ODI,和GoldenGate都属于数据集成产品,但侧重点不同。ODI支持丰富的数据源和复杂的数据转换[2],GoldenGate源端只能是数据库,主要用于实时数据集成。还有两者都支持大数据系统的集成,如Hive,Spark,Kafka等。
王宝器:苏经理,还有一个挠头的事,这几天公司在做网络***演练,数据库方面发现了好多问题。现在安全检查逐渐常态化,这方面Oracle有什么好的建议?
苏小妹:那您可以参考一下我们的最高安全架构,也叫MSA。MSA由数据库选件,EM数据库管理包和独立产品组成。你看啊,Advanced Security,Label Security,Database Vault属于数据库选件,Data Masking and Subsetting是数据库管理包,Database Firewall、Audit Vault和Key Vault属于独立产品,余下的Real Application Security和Virtual Private Database 就属于数据库企业版的功能了。
王宝器:这么多产品,也不知道哪些适合我们?
苏小妹:安全防护就像洋葱,剥了一层还有一层,所以对于重要的数据库系统,当然是多多益善了。不过根据我对你们企业的了解,我重点推荐Audit Vault和高级安全选件。Audit Vault是做数据库集中审计的,这个类似于视频监控,可以发现可疑的行为和事后追溯。另外,你们数据库中的重要数据都要求加密,我看你们之前都是通过应用代码实现的,工作量较大,算法也未必严谨。这里可以使用我们高级安全选件中的透明数据加密功能,简单配一下就好了,加密部分列或整个表空间都支持,算法也是经过严格测试和符合行业标准的。
王宝器:透明数据加密这个功能不错,不需要改应用,倒是省了我们不少事。
苏小妹:王总,说到安全问题,其实还有一件事情非常重要,那就是数据库升级。
王宝器:升级和安全有什么关系呢?再说了,我们的数据库大多是11g,升级到19c是不是跨度太大了,感觉隔了七八代似的。
苏小妹:其实也就隔了一代,我们是从18年开始用自然年来命名版本号的,19c的内部版本号是12.2.0.3,也是属于12系列的。Oracle数据库有两类发行版,即长期版和创新版,长期版提供最高级别的稳定性和最长的错误纠正支持时间,具有5年的标准支持和3年的扩展支持,创新版包括2年的标准支持,但没有扩展支持[3]。您看下面这张图,19c就是我们最新的长期版。
王宝器:看这个图,我们财务系统用的11g年底扩展支持好像到期了?
苏小妹:是的,11gR2的扩展维护期2020年底到期,扩展维护期一过,更新和补丁就不再提供了,这样出现新的安全问题就没有解药了;还有,与Oracle其它产品以及第三方产品的相互认证也不再做了,这也好理解,毕竟升级不是Oracle一家的事,操作系统和硬件平台都在升,我们也得保持和它们的兼容。
王宝器:说到兼容性,Oracle支持装在虚机上吗?
苏小妹:支持的[4]。不过虚机一般用于开发测试系统,生产系统的话需要仔细评估。主要是虚拟化多了一层,对性能有些影响,故障分析也会复杂一些。
王宝器:那我们这一次财务系统数据库准备换Linux操作系统,CentOS支持吗?
苏小妹:不支持。我们现在支持的包括红帽,SLES和Oracle Linux,具体可以到我们的MOS[5]网站查一下。
王宝器:好的,了解了。
苏小妹:对了,说到数据库升级,需要强调一下,这不是一件简单的事,特别对于大系统,一定要仔细规划,充分测试,并找有经验的实施人员来做。我们公司有咨询和高级服务部门,也有很多经验丰富的合作伙伴可以选择。
王宝器:好的产品加坏的实施等于坏的产品,服务的重要性我还是清楚的。那我么这次是升级到12、18c还是19c呢?
苏小妹:这取决于您的应用是否认证了这些版本,我了解过了,你们的财务软件对这几个版本都支持的,所以我建议这次升到19c。19c是Oracle目前最长期支持的版本,可以到2026年,升级后,数据库相当于从更年期又回到青春期,您觉得呢。
王宝器:我也觉得既然要升,不如一次到位。对了,我们的财务人员反映月结和年结很慢,偶尔还会死机,你们有什么好的建议。
苏小妹:您可以试一下Database In-Memory,这是12c推出的新选件。不需要改应用,只需多加些内存,再简单配置一下,统计分析的速度就可以大幅提升。如果需要的话,我们可以配合您测一下,很容易就知道有没有效果。之前我们也给很多用户测过,10倍甚至100倍的提升都是有的。其实这也是升级的另一大好处,您可以保持产品的先进性。12c后增加了很多新特性,这些特性可以让业务跑得更稳更快更安全,还可以简化管理和降低成本。
王宝器:降低成本怎么讲?
苏小妹:12c后新增的很多特性都可以帮助用户降低成本,这里面最重要的就是多租户选件。12c的这个c表示cloud,可以帮助用户实现数据库云或数据库整合,核心技术就是多租户。使用多租户后,整合密度和性能都提高了,更重要的是管理简化了,可以将多个数据库作为一个管理[6],你看升级、补丁、备份和灾备,以前都需要一个一个做,现在只要对这些数据库的底座做一次就可以了。还有,数据库可以象虚机一样克隆,移动,同步和刷新。所有这些都可以帮您降低管理成本。
王宝器:这个多租户功能我们没有用过,技术成熟吗,对我们运维和应用的改动大不大?
苏小妹:对于DBA肯定要学一些新东西,但是不多也不难,应用上则不需要做改动。另外,从21c开始,我们就不再支持非多租户架构了[7],不过您不用担心,这个技术2013年就推出了,现在已经相当成熟,很多用户使用效果都不错,您尽可以放心。
王宝器:说到数据库整合,上周五我听了你们网上一个公开课,主题是Exadata,这个和多租户有关系吗。
苏小妹:简单讲,做数据库整合,多租户加Exadata是最佳组合。Exadata是Oracle的明星产品,我就不多介绍了。您可以关注“甲骨文云技术”微信公众号,其中有两篇文章可以参考:“Exadata十年十问”和“Oracle Exadata X8M:终结DIY数据库系统”。另外,我们这个公开课每周五上午11点开始,这几周的主题正好是使用Exadata和多租户实现数据库整合,由我们公司最资深的SE梅头脑和卜高兴联袂主讲,您可一定不要错过。
王宝器:我英文不好,SE是什么,Stupid Engineer吗?
苏小妹:王总真会开玩笑。SE是Solution Engineer,就是解决方案工程师。用户都关心是否能解决实际的问题,所以光讲技术特性是不够的,还需要将用户的problem转化为solution。
王宝器:好的,您记得把会议链接发给我。对了,你前面介绍数据库选件时,有个TimesTen好像也是内存数据库,它和Database In-Memory有什么区别呢?
苏小妹:两者都是Oracle内存数据库家族中的一员,Database In-Memory主要用来加速分析,TimesTen主要用来加速交易。形式上,Database In-Memory是Oracle数据库的一部分,而TimesTen是独立软件。TimesTen有两种用途,一种是象Oracle一样当做数据库用,另一种是作为Oracle数据库的读写缓存,可用于缓存热点数据或IoT高速数据采集。TimesTen作为数据库,又支持传统和分布式两种安装方式,分布式对内存容量和性能的扩展性支持更好。TimesTen和Database In-Memory的详细介绍,我推荐你看下之前我们公众号的文章,“Oracle - 内存计算的王者”和“加速度:走进Oracle Database In-Memory”。
王宝器:说到热点数据缓存,我们现在有个电商系统,后端是Oracle,前端采用Redis来做用户资料和购物车的缓存,这些TimesTen也能实现吗?
苏小妹:在这个场景中,由于后端是Oracle数据库,使用TimesTen优势更大一些。Redis是NoSQL数据库,而TimesTen和Oracle都是关系型数据库,而且TimesTen支持标准SQL,并部分兼容Oracle语法。因此,如果使用TimesTen做缓存,缓存和后端数据库之间的数据刷新和同步只需要简单配置一下就可以了,不需要开发。所以在这个场景中,TimesTen不仅速度快,而且开发也快。
王宝器:嗯,能够简化开发确实对我们很有用。其实我还有一个问题想探讨一下,你看现在市面上数据库的形式多种多样,选择也非常丰富,有基于大数据的Hive,HBase,还有NoSQL数据库MongoDB,Redis,内存数据库HANA等,Oracle如何看待这些不同类型的技术呢?
苏小妹:其实有个大师级的人物Martin Fowler早在2011年就提出了Polyglot Persistence的概念[8]。他的观点是说:具一定规模的企业都会采用不同的数据存储技术来应对不同类型的数据,NoSQL的兴起确实动摇了关系型数据库的统治地位,但NoSQL不会成为新的主宰,关系型数据库虽然不再是必然的选择,但它仍将流行,并在大部分情况下采用。所以我们不会放弃Oracle作为关系型数据库的本质,我们不会成为Redis,MongoDB,我想他们也不会想成为Oracle。有竞争是好事,而且这些竞争也促进了Oracle技术的发展和完善。正如古希腊哲学家安提斯泰尼所说:Pay attention to your enemies, for they are the first to discover your mistakes. 正是在HANA的刺激下,Oracle才有了Database In-Memory技术,NoSQL的兴起也使得Oracle朝着融合数据库不断发展。
王宝器:苏经理说话还蛮有哲理的,一定是经常听那首关于哲理的歌吧。你刚才说的融合数据库,是个什么概念?
苏小妹:王总你看,以前电话, 短消息, 相机, 日历, 音乐,这些最初都需要不同的产品,而现在所有都是智能手机的特性。类似的,关系型, 内存,JSON, IoT, 机器学习,区块链, 分片等,最初都需要不同的产品,而现在都是Oracle融合数据库的特性。
王宝器:那融合对于用户的好处是什么呢?
苏小妹:最大的好处是简化。对于中小企业,通常一个Oracle就可以解决所有问题,而对于大型企业,数据库的种类也可以大幅减少,这样开发、集成和运维都简单很多,也降低了由于复杂性带来的风险。奥卡姆剃刀定律所说的“如无必要,勿增实体”,就是这个意思。
王宝器:这个我了解了。上次有个产商过来介绍分布式数据库,说Oracle的扩展性不好,你们支持分布式吗?
苏小妹:Oracle有Sharding功能,或者叫分片,可以支持分布式。但即使这样,我们的原则仍是能不分就不分。因为分布式会带来开发和运维的复杂性,还可能会影响到一致性和安全性。实际上在架构设计合理,代码编写正常,资源供给充足的前提下,非分布式的Oracle在绝大多数情况下都可以应付自如。利用集群、复制和分片,Oracle也可以提供很好的扩展性。
王宝器:另外,国产数据库这几年受到越来越多的关注,对你们的冲击大吗?
苏小妹:国产数据库这几年确实发展很快,也对我们造成了一些压力。但其实我们并没有刻意区分是国内还是国外的产品,所以对于国产数据库,我们的态度和对待HANA,MongoDB都一样,借用赫胥黎的一句话:There is only one corner of the universe you can be certain of improving, and that’s your own self.
王宝器:啥子意思,苏经理,又开始谈哲理了。
苏小妹:世界太大,做好自己。
王宝器:其实我对国产数据库也有一些自己的看法。聚沙成塔,集腋成裘,这个技术的发展它不是一朝一夕的事。你看你们Oracle做了40多年才变成今天的样子,国产数据库也一样,只有专注和坚持才会发展得更好。
苏小妹:骐骥一跃,不能十步,驽马十驾,功在不舍,是这个道理。
王宝器:还有,学我者生,似我者死。简单的跟随和模仿是不够的,你得有创新,有自己的特色才行,你看Redis,MongoDB,包括你们的MySQL,在最开始何曾想着成为谁替代谁,现在不都发展的不错吗。
苏小妹:是啊,如果有两个员工技能是一模一样的,那公司可能会考虑裁掉其中一个了。
王宝器:对了,很多企业都在考虑免费的开源数据库,你们作为商业数据库怎么看这件事。
苏小妹:开源确实带来更丰富的选择,选择开源还是商用主要还是看您的需求,不在于免费还是付费,何况开源也不等于免费,关键是要看功能丰富性,成熟度,长期成本,支持与运维以及安全可控多个方面。例如开源数据库的DBA是否容易找到,成本一定比Oracle DBA低?运维支持体系是否完善,出现问题是否能及时响应和最终解决?安全性如何,可管理性如何,是否需要额外的开发,这些都是企业级用户必须考虑的问题。用户都觉得商业软件比较贵,其实价格都是相对的,关键是看价值。就说Oracle数据库吧,很多功能用户其实并不了解,转而自己开发实现,如果能充分利用这些功能,用户就会觉得物有所值。
王宝器:确实,就好像Office的功能我们平时只用了20%还不到,很多Oracle的功能我们还需要深入挖掘,那下次请苏经理派人给我们好好讲讲。
苏小妹:好的。另外,我们也为用户提供了很多优惠措施。
王宝器:具体有哪些呢?
苏小妹:例如去年12月,我们已将Spatial and Graph和Advanced Analytics两个选件的功能全部包含在企业版中,不再收费[9];Oracle Database In-Memory在今年4月提供了16G内存以下的免费选项;19c后,CDB中如果不超过3个PDB也无需多租户选件。
王宝器:这对用户是好事啊。哎呀,时候不早了,我下午还有个会,要不先这样。也感谢苏经理的耐心讲解,今天确实收获不小。
苏小妹:应该的,也谢谢您的时间。对了,有一张宣传画,今天讲的基本都在里面了。另外还有一本数据库中文白皮书大全[10],方便你们投标和技术人员查阅。我陪您到一楼会务拿一下吧,顺便送下您。
王宝器:好的,那麻烦你了,走吧。
苏小妹:对了,王总年轻有为,是哪所大学毕业的呢?
王宝器:惭愧惭愧,我可不是什么海归。我是三闾大学中文系的,学的唐词专业。我看你们公司还是挺踏实的,在这么激烈的竞争环境下,一直坚持做好自己,真的很不容易。我刚好想到一句话,可以送给你们公司,也算是你我共勉吧。
苏小妹:好啊好啊,我拿个小本本记一下,您说吧。
王宝器:莫愁前路无知己。
苏小妹:哈哈,天下谁人不识君。多谢王总的鼓励,不管多难,我们都会努力争取做到最好。
王宝器:车来了,那我先走了。
苏小妹:好的,王总再见,下次一定来参加我们的云大会。
王宝器:好的,下次云大会再见。
致谢:本文得到了Luo Zhongwei, Joyce Li, Song Qingsheng, Liu Qi, Barbara Huang, Henry Yin, Ma Wenfeng, Cai Donglin等同事的帮助,包括审阅和反馈意见,美化建议,资源上载,以及慷慨的提供素材和资源链接等。在此一并感谢!
[1] https://www.oracle.com/middleware/technologies/goldengate.html
[2] Certification Matrices for ODI 10g, 11g and 12c (Platform, Java,and Database Compatibilities) (Doc ID 424527.1)
[3] Release Schedule of Current Database Releases (Doc ID 742060.1)
[4] Support Position for Oracle Products Running on VMWare VirtualizedEnvironments (Doc ID 249212.1)
[5] https://support.oracle.com/portal
[6] https://www.oracle.com/technetwork/cn/database/oracle-multitenant-2080563-zhs.pdf
[7] https://docs.oracle.com/en/database/oracle/oracle-database/21/upgrd/behavior-changes-deprecated-desupport-oracle-database.html#GUID-DC25BF7D-F3DE-4B86-A719-B672BF6708B0
[8] https://martinfowler.com/bliki/PolyglotPersistence.html
[9] https://blogs.oracle.com/database/machine-learning,-spatial-and-graph-no-license-required-v2
[10] https://objectstorage.ap-seoul-1.oraclecloud.com/n/ocichina001/b/wechat/o/CN_WP_Compilation.pdf
标签:商店,数据库,选件,小妹,Oracle,漫游,我们,宝器 来源: https://blog.51cto.com/u_15127541/2700666