王宝器漫游 O 记数据商店
作者 | JiekeXu
来源 |公众号 甲骨文云技术
王宝器是蜀你最棒集团新上任的 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 就是我们最新的长期版。
苏小妹:是的,11gR2 的扩展维护期 2020 年底到期,扩展维护期一过,更新和补丁就不再提供了,这样出现新的安全问题就没有解药了;还有,与 Oracle 其它产品以及第三方产品的相互认证也不再做了,这也好理解,毕竟升级不是 Oracle 一家的事,操作系统和硬件平台都在升,我们也得保持和它们的兼容。
王宝器:说到兼容性,Oracle 支持装在虚机上吗?
苏小妹:支持的[4]。不过虚机一般用于开发测试系统,生产系统的话需要仔细评估。主要是虚拟化多了一层,对性能有些影响,故障分析也会复杂一些。
王宝器:那我们这一次财务系统数据库准备换 Linux 操作系统,CentOS 支持吗?
苏小妹:不支持。我们现在支持的包括红帽,SLES 和 Oracle Linux,具体可以到我们的MOS[5]网站查一下。
王宝器:好的,了解了。
苏小妹:对了,说到数据库升级,需要强调一下,这不是一件简单的事,特别对于大系统,一定要仔细规划,充分测试,并找有经验的实施人员来做。我们公司有咨询和高级服务部门,也有很多经验丰富的合作伙伴可以选择。
王宝器:好的产品加坏的实施等于坏的产品,服务的重要性我还是清楚的。那么我这次是升级到 12、18c 还是 19c 呢?
苏小妹:这取决于您的应用是否认证了这些版本,我了解过了,你们的财务软件对这几个版本都支持的,所以我建议这次升到 19c。19c 是 Oracle 目前最长期支持的版本,可以到 2027年,升级后,数据库相当于从更年期又回到青春期,您觉得呢。
王宝器:我也觉得既然要升,不如一次到位。对了,我们的财务人员反映月结和年结很慢,偶尔还会死机,你们有什么好的建议。
苏小妹:您可以试一下 Database In-Memory,这是 12c 推出的新选件。不需要改应用,只需多加些内存,再简单配置一下,统计分析的速度就可以大幅提升。如果需要的话,我们可以配合您测一下,很容易就知道有没有效果。之前我们也给很多用户测过,10 倍甚至 100 倍的提升都是有的。其实这也是升级的另一大好处,您可以保持产品的先进性。12c 后增加了很多新特性,这些特性可以让业务跑得更稳更快更安全,还可以简化管理和降低成本。
王宝器:降低成本怎么讲?
苏小妹:12c 后新增的很多特性都可以帮助用户降低成本,这里面最重要的就是多租户选件。12c 的这个 c 表示 cloud,可以帮助用户实现数据库云或数据库整合,核心技术就是多租户。使用多租户后,整合密度和性能都提高了,更重要的是管理简化了,可以将多个数据库作为一个管理[6],你看升级、补丁、备份和灾备,以前都需要一个一个做,现在只要对这些数据库的底座做一次就可以了。还有,数据库可以象虚机一样克隆,移动,同步和刷新。所有这些都可以帮您降低管理成本。
王宝器:这个多租户功能我们没有用过,技术成熟吗,对我们运维和应用的改动大不大?
苏小妹:对于 DBA 肯定要学一些新东西,但是不多也不难,应用上则不需要做改动。另外,从 21c 开始,我们就不再支持非多租户架构了[7],不过您不用担心,这个技术 2013 年就推出了,现在已经相当成熟,很多用户使用效果都不错,您尽可以放心。
王宝器:说到数据库整合,上周五我听了你们网上一个公开课,主题是 Exadata,这个和多租户有关系吗。
苏小妹:简单讲,做数据库整合,多租户加 Exadata 是最佳组合。Exadata 是 Oracle 的明星产品,我就不多介绍了。
王宝器:我英文不好,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,内存数据库 HAN A等,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
全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~
❤️ 欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!
————————————————————————————
公众号:JiekeXu DBA之路
CSDN :https://blog.csdn.net/JiekeXu
墨天轮:https://www.modb.pro/u/4347
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————————