DTCC 2020 | 阿里云赵殿奎:PolarDB的Oracle平滑迁移之路

简介: Oracle兼容性是业务客户从Oracle生态迁移到PolarDB生态的第一步也是至关重要的一步,PolarDB通过不断沉淀支持大量实际业务的真实Oracle兼容性功能,确保客户业务可以真正做到平滑迁移。同时PolarDB带给Oracle生态客户的不仅仅是上的来的问题,PolarDB在成本、性能、可用性、扩展性等云能力方面也给用户带来更高的业务价值。在DTCC 2020大会分布式数据库实践专场上,阿里巴巴高级数据库专家赵殿奎为大家介绍阿里巴巴电PolarDB的Oracle平滑迁移之路。

演讲嘉宾简介:赵殿奎,阿里巴巴高级数据库专家,从事OLTP数据库和OLAP数据库产品的研发工作10余年,现为阿里云PolarDB数据库内核北京研发负责人。
HU8B8956.JPG

以下内容根据演讲视频以及PPT整理而成。

本次分享主要围绕以下四个方面:
一、PolarDB架构
二、PolarDB兼容性
三、PolarDB增强
四、PolarDB迁移

一、PolarDB架构

PolarDB架构组件 —— CM

PolarDB架构是基于共享存储的架构,下图是PolarDB整体架构视图,其中CM主要负责的工作包括整个Polar集群的管理,Top管理,高层管理、备份管理及审计管理。CM是一个管控链路的核心组件,这意味着CM组件本身对于PolarDB的整个数据的可用性没有任何影响,PolarDB的可用性完全独立于整个数据链路。由于PolarDB会面向大量的用户来使用,因此对整个架构的设计中需要把可用性放在第一位,因此每一个组件的设计也都要满足PolarDB高可用性要求。

PolarDB架构组件 —— Agent

下图中另一个比较重要的组件是Agent,Agent主要做什么?很多常见数据库会将部分功能都集成到数据库内核里面。但PolarDB是将很多功能放在Agent中,例如审计、数据采集、监控、备份数据发送等等。相当于将一部分辅助性功能独立出来,做成一个核心的组件,同时放在数据管控链路里面。

其余的还有Proxy,是读写路由的组件。PFSD是阿里云的分布式文件系统。

PolarDB既可以运行在裸机上面,就是传统的物理机,还可以跑在国产的芯片,国产的操作系统,以及原生的 k8s上。此外阿里云基于 k8s做了很多的增强,PolarDB同样可以运行。这几种形态上PolarDB都是支持的。
图片 1.png

二、PolarDB兼容性

下图列出了在阿里巴巴很多业务场景中,用户的用例中使用较多的功能上的兼容性,目前PolarDB的研发上也是在重点支持这些功能的兼容性。
2.png

PolarDB兼容性 —— 接口兼容

驱动接口中使用比较多的是OIC,JDBC以及ProC,基本上可以占据99%以上。Java的是JDBC,但是可能很少碰到ProC,尤其在公共云上的用户可能比较少见。但线下的传统的客户中,如金融类的客户会大量的使用ProC进行开发的业务程序。PolarDB基本上都可以兼容OCI里面的接口。ECPG里面包含Oracle的ProC代码的兼容。ECPG兼容最重要的并不是在于对ProC的支持,而在于C的代码的兼容。为什么?因为Oracle里面ProC所支持的各种C语言的标准是无法获取到的。大量的SQL92,SQL2008的标准,以及目前还在不停的更新的标准都在增加对C代码语法的支持。PolarDB投入了很多人力做这件事情。XA C接口与ECPG中的Proc接口是结合起来使用的。目前很多PolarDB线下的客户大量使用了基于XA C、ProC、Oracle Tuxedo结合的方式。下图罗列了XA C接口的一些功能,目前PolarDB基本上都可以支持。其中最难的是tpsuspend,目前已经解决了。
3.png

PolarDB兼容性 —— 语法兼容性

语法的兼容性中包括数据类型、系统函数、伪列、PL/SQL、系统图以及系统包是比较常用的。但用户最常用的是空串,每一个使用Oracle数据库的业务应用都会用到这个特点,但是这个特点往往是很多的数据库产品并没有支持到的,导致这些数据库产品往往可能会在业务的运行的过程中出现很多数据性的问题。到目前为止,Oracle里面的 PL/SQL,PolarDB大概已经接入了80%多。在Oracle整个的迁移的过程中,大量的业务对 PL/SQL的代码几乎是一行都不需要更改。这意味着是PolarDB对于 Oracle PL/SQ的兼容性已经非常精准,可以满足大多数的业务场景。系统函数、视图和系统包,PolarDB大概可以支持30多个,这基本上足够了,下图中还列出来比较常用的伪列。
4.png

PolarDB兼容性 —— 功能兼容性

功能兼容性中分区非常常用。主要的一些分区功能PolarDB都是支持的。对于大规模用户来说,较为常用的是多层次查询,大家可能以为层次查询支持起来比较简单,但后来发现这往往是用户非常关心的特性,因此对性能要求非常高。很多数据库产品层次查询的实践方法基本一致,通过WITH语句的迭代,递归来实现,但这种方法的性能往往比较差。因此PolarDB在层次查询功能的实现上从算子层面做了大量的工作。表函数也是用户使用的特别多的功能,类似于一个pipeline,一个表的输出作为另一个表的输入。用户在DBLINK功能上的使用特别多。公有云产品和线下打通之后,发现反而在安全性的保障上难度难道非常大。线上和线下,公有云和混合云之间能够做到数据相互访问,最大的一个困难就在于安全。资源管理,Oracle里面有一个Resource Manager,PolarDB也在逐步的完善这个功能,PolarDB现在能够做到CPU和内存的隔离,同时可以做到数据库级别、甚至到用户级别的资源的隔离和限制。DBLINK方面,现在可以支持与Oracle DBLINK, 与PG的DBLINK,与阿里云 PolarDB DBLINK,以及公云上的PolarDB和PolarDB之间的DBLINK,可以支持线上的PolarDB与线下的Oracle之间的DBLINK。
5.png

PolarDB兼容性 —— 生态兼容性

生态兼容性 —— AWR

2020年上半年阿里云花了很多人力在PolarDB生态兼容性上。目前公有云的性能监控已经可以做到秒级,为什么还需要做AWR?AWR其实相当于是两次状态之间的快照,用户可以查看中间的Workload是什么样子的。阿里云在走访了很多的客户之后发现用户在进行大量业务迁移的时候,很多的运维同学和DBA同学对AWR需求非常强烈。由于线下用户对业务以及整个的迁移运行过程中稳定性要求非常高,因此他们很少会开细粒度的监控。而且也不允许监控的数据能够对外展示。这时就需要利用AWR将两个时间差之间负载数据拿到,根据整体负载情况判断系统的健康情况。如果客户的生产系统之前使用的是Oracle,那么也会在Oracle上跑AWR上,与PolarDB上的AWR进行对比,分析数据库性能在迁移之前和之后的差异。AWR中可以看到内存、CPU、IO的负载情况,甚至还有IO的吞吐、磁盘占用、IOPS、网络等资源数据。数据收集上来之后进行分析,哪些负载较高,分析负载高的原因。基于负载情况分析SQL状态,是否有慢查询,连接状态中是否有空载。目前大多数数据库性能数据都可以通过AWR展示出来。之后,基于AWR数据,比如慢查询,会给用户提供优化的建议。目前这部分功能还在迭代,通过整个运行的过程中所发生的事件,展示到AWR,分析是否有HA切换,或者出现硬件故障,以及网络延迟。同时在AWR中展示硬件、主机的信息。
6.png

生态兼容 —— DataMax(ADG)

生态兼容DataMax类似于Oracle的ADG。这个功能已经在线下的大量的公共云上都发布完成。目前公有云的主备已经做得很好了,那PolarDB为什么还要做DataMax?而且是类似于Oracle的ADG?事实上PolarDB关注的Oracle的ADG中的Far Sync能力,它可以极大地降低对主库的读写负载。Far Sync可以首先将数据同步到 DataMax。因此可用性可以比原来的主备模式更高。DataMax这个节点变成了一个非常特殊的节点,DataMax节点只有日志没有数据,而且日志只负责转发。DataMax计算非常简单,只需要将日志进行解析,然后转发出去,因此可以做到更高的可用性,DataMax工作非常轻量,因此延迟较低,可以做到更高的RTO,同时又可以提高性能。DataMax可以同时挂很多Replication节点。可以发现,目前PolarDB很多工作一直在围绕几件事情,一个是提高兼容性,第二个是可用性,提高PolarDB整个系统的可用性,使得RPO接近零。
7.png

生态兼容 —— DTS(OGG)

DTS是数据同步工具,DTS支持数据数据全量迁移、数据增量同步、数据订阅SDK以及多种主流异构数据库,如MySQL,SQL Server、云上、云下、自建数据库。目前数据同步也支持双向的数据同步。用户生产系统同步的时候,并不是一次性同步过来的,而是一部分一次,一点一点同步。因此数据同步也是双向的,可以将一部分业务数据写到PolarDB,一部分业务写到Oracle。用户从Oracle数据同步到PolarDB,还有PolarDB的数据同步到Oracle上面,这类用户非常多。他们的数据同步可以通过DTS来完成。
9.png

生态兼容 —— DBS(RMAN)

DBS类似于Oracle RMAN,备份管理工具。DBS支持全量备份,增量备份,差异备份。基于DBS能力可以做到源端重删、本地缓存、存储驱动。DBS具备自己的指纹库,从而提升数据备份的安全性。备份的数据可以存到DBS支持的源端,包括NAS、磁带库,OSS。很多线下大b和大g的客户经常使用磁带库,这是在做大量的线下客户的支持的过程中发现的。
10.png

生态兼容 —— PolarPlus(SQLPlus)

PolarPlus与SQL Plus非常相似。感兴趣的同学可以参考PolarDB的官方文档。
11.png

生态兼容 —— 开发工具(DBNavigator)

开发工具主要是通过DBNavigator做的。目前开发工具用户使用的比较多,尤其是PG生态同学。当然还有很多其它的工具,但是DBNavigator好处在于集成了驱动之后,可以与DBMS_Debug的包连起来,支持 PL/SQL的Debug,使用起来非常方便。
12.png
上面总体上介绍了PolarDB在兼容性方面做的工作,包括接口、语法、功能以及生态方面。尤其在生态兼容方面PolarDB做了支持数据库健康状态监控的AWR工具、DataMax数据节点、DTS数据同步工具、DBS备份管理工具、DBNavigator开发工具等。那么在Oracle的兼容性之上,PolarDB还做了哪些增强?

三、PolarDB增强

1. PolarDB增强 —— 性能优化CSN

性能优化方面PolarDB做了CSN快照,对PG社区关注的比较多的话,会看到在2012年的时候,PG社区就提出要做CSN快照。什么是快照?PolarDB快照获取方式是比较特殊。与MySQL相似,叫做XID快照,既获取当前系统的活跃事务链表,加上XMIN、XMAX,构造成一个快照,判断哪些数据是可见的,哪些是不可见的。PolarDB CSN快照同理,CSN快照是在CSN上加了一个XMINXMAX。CSN快照可以提供更高的性能。在高并发情况下,活跃事务特别多,快照的动作非常慢,因为需要做内存拷贝。内存拷贝的动作有一个锁,这会造成整个业务系统并发的冲突问题。通过测试发现,在没有使用CSN快照之前,大概最多到40万TPMC,再往上增加规格时,获取事务的表的冲突非常严重。通过CSN快照,目前在32c之上,一直到128c,大概基本上可以做到线性。用户在公有云上在业务系统变化越来越大的情况下,可以通过升级用户业务的规格,为他们带来性能上的收益。

那么PG社区自从2012年提出来,到现在还没做出来,技术上难点在什么地方?其实在于CSN的设计非常复杂,它涉及到事务、存储、日志等。但阿里大概花费了一年的时间就做出来了,这是因为可以将CSN快照与差异快照结合起来,所有与生态相关、或影响生态的功能继续保留,那么最大的技术难点在于如何找到CSN快照与差异快照的映射关系。这是阿里做成CSN快照的主要原因。但之后再继续设计的时候还是会遇到很多的问题,如做成插件或者工具的话,插件或者工具的兼容问题如何解决,与生态的兼容性问题如何解决,备份恢复如何处理?
13.png

PolarDB增强 —— DMA高可用

DMA高可用,既基于Raft三节点做的高可用的提升。Raft三节点可以做到RPO等于0,Follower副本只读,支持容器化部署,兼容主备高可用,CM一体化架构,同城三节点达到同城可能性。
14.png

PolarDB增强 —— Ganos

Ganos是一款包含管理,空间几何数据、时空轨迹、专题栅格、遥感影像的时空大数据引擎系统。系统内置了高效的时空索引算法、空间拓扑几何算法、遥感影像处理算法等。广泛应用于空间、时空、遥感大数据存储。Ganos系统在很多的实际场景中被投入使用,如高德地图。

18.png

PolarDB增强 —— Performance Insight

大家在公有云上使用PolarDB的时候会发现性能指标非常完整,大量的性能指标通过图表的形式非常清晰的展示给用户,包括连接Connections、CPU使用率、内存使用率、IOPS负载等数据。目前这些性能数据在线上和线下,公有云和混合云上都是同步的。
19.png

四、PolarDB迁移

PolarDB迁移 —— ADAM

数据库和应用迁移(Advanced Database & Application Migration, 以下简称ADAM)。目前PolarDB的迁移过程中,用户几乎不需要修改代码,迁移的时间越来越短的主要的原因是ADAM。ADAM是阿里云结合阿里巴巴多年内部业务系统数据库和应用异构迁移的经验,自主研发的、迁移Oracle数据库和应用上云的企业级迁云产品和解决方案,能帮助企业最大限度降低Oracle数据库和应用迁移上云的风险、技术难度和实施周期。ADAM可以做到线上,线下的用户直接部署到自己的用户端,通过对用户端的代码进行扫描,采集用户数据,分析用户代码中Oracle的部分哪些是兼容的,哪些是不兼容的,分析如何改进。ADAM还可以自动的对不兼容的代码进行改写,包括SQL翻译、数据库改造、应用改造、PL/SQL改写成JAVA。ADAM在用户迁移到PolarDB的过程中,采集了大量的用户的特征,当然用户已经授权了,分析用户在迁移过程中哪些功能PolarDB不支持。通过近两年的不断的对Oracle功能的兼容性迭代,PolarDB基本已经支持调研的Top 100以内的功能。这使得大多数业务系统迁移到PolarDB越来越快,越来越方便。
20.png

PolarDB迁移周期

下图是用户业务系统从开始准备迁移,到最后迁移完成会经历的过程以及会使用到的PolarDB生态中的工具。最开始使用ADAM接入,在业务系统上运行,获取到兼容性指标、用户数据库中各项性能指标负载情况、评估技术可行性;然后在新的Polar上通过Benchmark做测试;满足用户性能要求之后,通过DTS数据全量和增量迁移,完成双向的数据同步;再通过DMS&Console完成数据库的管理,包括备份、审计等;使用Performance Insight监控用户的在PolarDB上性能指标;随着用户业务量的增加,平滑的支持业务需求。整个过程可以确保客户业务真正做到平滑迁移。
21.png

 

作者:stromal
原文链接

本文为阿里云原创内容,未经允许不得转载

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

边缘计算助力云游戏成为5G时代的杀手级应用

作者:王超引言随着技术、架构以及商业模式的快速发展和完善,边缘计算作为一种成熟的计算范型已经得到广泛应用。边缘计算是为应用开发者和服务提供商在网络的边缘侧提供云服务和IT环境服务,“边缘”指的是位于管理域的边缘,尽可能…

阿里如何做好双11技术保障?大队长霜波分享4点经验

简介: 为什么说双11是阿里每年技术保障稳定性最困难的一次?50多个BU一起加入双11,怎么组织和运营?为了保障双11的顺利进行,又有哪些备战方案以及创新技术?在由阿里云CIO学院主办的【2020中国企业数字创新峰…

47 张图带你走进浏览器的世界!

作者: 零一0101来源:前端印象大家好,我是零一,每个开发者(尤其是前端工程师)或多或少会跟浏览器打交道,那么你们有没有想过去深入了解浏览器呢?无论是因为好奇还是为了面试&#xff…

一文教你轻松搞定ANR异常捕获与分析方法

简介: 选择一款有超强捕获能力的专业产品,对于开发者定位和修复稳定性问题至关重要。友盟U-APM SDK集成了UC 内核团队强大的技术及友盟超强的错误捕获能力,通过数万次捕获实践中积累了丰富经验,在产品、性能和研发能力上都极大保障…

DTCC 2020 | 阿里云梁高中:DAS之基于Workload的全局自动优化实践

简介: 第十一届中国数据库技术大会(DTCC2020),在北京隆重召开。在12.23日性能优化与SQL审计专场上,邀请了阿里巴巴数据库技术团队高级技术专家梁高中为大家介绍DAS之基于Workload的全局自动优化实践。 SQL自动优化是阿…

更便捷:阿里云DCDN离线日志转存全新升级

简介: 1月6日,阿里云CDN年度产品升级发布会中,阿里云CDN产品专家邓建伟宣布DCDN离线日志转存全新升级,并对离线日志转存方案的价值、应用及使用进行了详细解读。 1月6日,阿里云CDN年度产品升级发布会中,阿里…

20 行代码:Serverless 架构下用 Python 轻松搞定图像分类和预测

简介: 本文将会通过一个有趣的 Python 库,快速将图像分类的功能搭建在云函数上,并且和 API 网关结合,对外提供 API 功能,实现一个 Serverless 架构的“图像分类 API”。 前言 图像分类是人工智能领域的一个热门话题。…

夯实数字化转型算能基石 构建洛阳银行核心云

作者 | 李清溪 洛阳银行信息技术部副总经理 当前,以移动互联网、云计算、大数据、区块链等技术为代表的新一轮科技革新正全面渗透到经济社会各行业各领域。在推动数字经济与实体经济融合发展的同时,也不断改变和重塑着银行业的发展模式和经营理念。 根…

DTCC 2020 | 阿里云程实:云原生时代的数据库管理

简介: 随着云原生技术的不断发展,数据库也逐渐进入了云原生时代。在云原生时代,如何高效、安全且稳定地管理云上与云下的数据库成为摆在企业面前的一大难题。在第十一届中国数据库技术大会(DTCC2020)上,阿里…

针对数据库连接池到DRDS连接探活的优化

简介: 针对数据库连接池到DRDS连接探活的优化 1. 问题背景 近期在给某专有云客户进⾏云产品应⽤性能优化分析时,发现了⼀个有趣的关于DRDS使⽤层⾯的问题,这⾥给⼤家分享⼀下。 使⽤过DRDS产品的同学都知道在DRDS中,未分库分表的…

用友BIP|YonBuilder+APICloud 双平台,“1+1>N”的低代码战略

作者 | 宋慧 出品 | CSDN云计算 头图 | 付费下载于视觉中国 作为企业IT信息化中最热的话题,低代码被广泛关注和讨论。国内低代码赛道的厂商众多,传统表格控件厂商、互联网巨头、创业公司,各具优势,在市场攻城拔寨。而国外&#x…

人生苦短,开发用云-如何优雅完成程序员的侠客梦

简介: Coding的魅力如此之强,引无数程序员竞折腰,在今年由CSDN举办的1024程序员节上,中国初代程序员大宗师求伯君说,当年看到有人在用WPS,可开心了,因为有很多人用。然后,也会去找看是谁破解的&…

DTCC 2020 | 阿里云王涛:阿里巴巴电商数据库上云实践

简介: 第十一届中国数据库技术大会(DTCC2020),在北京隆重召开。大会以“架构革新 高效可控”为主题,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨。在数据库智能运维专场上…

SRE技术保障平台-盯屏中心TAC: 混合云一站式告警运维平台

简介: SRE技术保障平台-盯屏中心TAC: 混合云一站式告警运维平台 1.目标定位 1.1背景 告警管控平台种类繁多告警出现后未及时发现处理最终导致故障产生专有云监控能力拉起依赖版本升级,操作复杂,迭代慢异常问题和故障的感知力不如…

安全攻击层出不穷,绿盟科技“智慧安全 3.0”安全防护再升级

随着网络空间和物理空间的边界不断融合,威胁攻击也层出不穷:5月9日,美国最大的燃油管道运营商、东部地区油气输送主要动脉 Colonial Pipeline 公司遭受黑客攻击和勒索,被迫暂停运营,直接导致了美国17个州和华盛顿特区进…

技术干货 | “选图预览并上传”的场景如何解?全网最全方案汇总来了

简介: 你真的知道如何“上传”一张照片吗? 选择本地相册图片或者拍照,然后预览并且上传是移动应用中一个典型的使用场景,比如常见的身份证信息上传等。 不少客户都反馈有类似的场景,并且在使用上都或多或少的遇到一些…

Serverless 在 SaaS 领域的最佳实践

简介: 随着互联网人口红利逐渐减弱,基于流量的增长已经放缓,互联网行业迫切需要找到一片足以承载自身持续增长的新蓝海,产业互联网正是这一宏大背景下的新趋势。我们看到互联网浪潮正在席卷传统行业,云计算、大数据、人…

5G进入爬坡期,这个关键因素,决定了它的成败……

作者: 小枣君来源: 鲜枣课堂前言2021年上半年,国内5G推进取得了不错的进展。根据工信部最新的数据统计,截止6月底,国内5G基站数量达到96.1万,即将突破百万大关。而国内5G终端连接数,也相比年初猛…

如何降低微服务测试成本?我的经验之谈

简介: 本文为大家介绍微服务治理测试:基于服务契约信息,降低云上微服务测试成本。如果您的团队具备较强的微服务治理测试能力,那么希望我们在微服务治理测试方面的实践和背后的思考,可以为您提供一些参考。 前言 随着…

C语言偏科,C

即使目前的汽车工业发展飞速,类似智联系统、自动驾驶等“黑科技”层出不穷。但不少消费者却仍将关注点放在车辆的基础性能上,譬如它们的安全系数。的确,对于一台行驶在路上的代步工具而言,再多花哨的功能也只能是锦上添花&#xf…