开发者学习笔记【阿里云云数据库助理工程师(ACA)认证:Polar DB-O (兼容 Oracle 语法版本)和Polar DB PostgreSQL 版本概述(一)】
课程地址:https://edu.aliyun.com/course/3112080/lesson/19087
Polar DB-O (兼容 Oracle 语法版本)和Polar DB PostgreSQL 版本概述(一)
内容介绍
一、课程目标
二、Polar DB-O(兼容 Oracle 语法版本)产品概览与架构
三、Polar DB PostgreSQL版本产品的架构和概览
四、Polar DB-O (兼容 Oracle 语法版本)的核心功能
五、Polar DB PostgreSQL版本产品的核心功能
六、Polar DB-O (兼容 Oracle 语法版本)的 Oracle兼容性的概览
七、阿里云去 Oracle 的标准流程
一、课程目标
学习完本课程后,你将能够:
1、了解 Polar DB-O(兼容 Oracle 语法)和Polar DB PostgreSQL 版本的架构与特点
2、对 Polar DB-O(兼容 Oracle 语法)产品的 Oracle 兼容性有初步认识
3、熟悉使用 Polar DB-O(兼容Oracle语法)+ ADAM 执行 Oracle 迁移的流程
本次课程分成六个部分,首先从第一部分 Polar DB-O(兼容Oracle语法)的产品概览与架构开始。
二、Polar DB-O(兼容 Oracle 语法版本)产品概览与架构
Polar DB 是通过普通 PC 服务器,基于分布式架构构建,在提供与商用数据库对等能力的同时成本只有其10分之一的通用关系型数据库,由阿里巴巴自主研发。
Polar DB-O 中的o主要是高度兼容 Oracle语法的意思,Polar DB-O 具有高可用性、高可靠性、高安全性以及高应用性的特点。对此着重提到一下高安全性,polar DB-O 在支持 VPC,TDE 和 SSL 之外是一款同时支持三个地区的数据安全法规要求的数据库产品,分别是我国的信息安全等级保护,美国的萨班斯法案以及欧盟的通用数据保护条例。
Polar DB-O 的高应用性主要体现在通过对生态工具的集成实现数据化数据库的智能化运维以及数据库存储的按需收费以及数据库补丁的一键升级。这就是传统 DBA 的高频高风险的运维操作在 polar DB-O 的实例下变得智能化规范化。
1、公有云产品架构
最上面一层是访问 Polar DB 的运营服务器,下面是 Polar DB 的代理层,再往下是计算节点层,再往下是网络连通层,最后是数据存储层。整体来看 Polar DB-O 的公有云产品架构形成了一个存储、计算、分离的架构。当计算节点不会直接存储数据以后,计算节点本身的规格变更就不需要进行数据转储,从而在尽可能少的时间完成变更操作。同时计算节点之间不需要进行业务数据的转储之后只需要进行日志和原数据信息的同步,极大地降低了主节点和只读节点之间的数据延迟。而且在主节点发生故障之后,只读节点仅需要相对较少的时间就可以切换成主节点继续提供服务。
(1)代理层和计算节点层
代理层和计算节点层补充的是横向的读写分离的架构,读写分离是 POLARDB 集群默认免费提供的一个透明、高可用、自适应的负载均衡能力。通过集群地址,SQL 请求自动转发到POLARDB 集群的各个节点,提供聚合、高吞吐的并发 SQL 处理能力。
(2)高速互连层
对于当存储和计算节点通过网络连接的时候,整个 polar DB 的 IO 性能是否会成为瓶颈。其实对此不必担心,Polar DB 的计算节点和存储节点是通过25G的高速 RDMA 网络进行连通的,并且在内核团队对于 polar DB 读写进行极致优化的情况下,整个 polar DB 的 IO 性能非但不成为瓶颈而且成为 polar DB-O 的一个优势。
(3)共享分布式存储
对此要主动强调的是共享分布式存储不是通过普通的 raft 协议,普通 raft 协议无法满足两个问题:一个是事务的乱序提交,还有一个实质的空洞,所以创新性的使用了parallel raft协议来解决这两个问题。
2、混合云产品结构
最后来看 polar DB-O 兼容 Oracle 语法的混合云产品架构,混合云产品同智能代理层和计算节点层提供的能力包括读写分离,负载均衡,存储计算分离和公有云是一致的,只是把公有云的 RDMA 网络变成关系交换机,把分布式一致性存储变成泛存储,在共享存储的时候也是使用自身的高性能存储 RAID 10全冗余陈列,在弹性增加只读节点的时候存储也是不需要扩容,能最大程度的节省存储成本。
之所以选择这样一个价格,是因为可以寻求一个更通用的部署方式,最大程度的复用传统数据库厂商的硬件。
三、Polar DB PostgreSQL版本产品的架构和概览
Polar DB PostgreSQL版本是 Polar DB 架构下支持的另一款数据库引擎,它百分之百的兼容PostgreSQL 数据库,同样是基于分布式架构和普通PC服务器构建,在具备高可用、高可靠线性扩展的同时提供低成本、高性能等核心技术优势,需要着重说明的是Polar DB PostgreSQL版本在经过阿里云数据库团队的优化后可达两倍于社区版 PostgreSQL 版本的性能。同时它的单实例可以达到100 tb存储容量,它的计算节点就可以在5-10分钟内完成缩扩容动作,其余 Polar DB PostgreSQL 的高可用性、高可靠性、安全性和可利用性和Polar DB-O 兼容 Oracle 语法版本保持一致。
四、Polar DB-O (兼容 Oracle 语法版本)的核心功能
1、读写分离特性
读写分离大概有两个问题需要解决,一个是读写分离的策略,还有是读写分离的一致性。相对于传统的按比例把流量分到各个节点的读写分离特性,Polar DB-O 的代理层实现了一个智能路由。
所谓智能路由,就是代理层实时监控只读节点和相对主节点的 LSN 差值,对此会把最新的访问请求路由到离主节点 LSN 最近的只读节点,这就解决了传统的按比例路由可能造成的各个节点之间访问不均的情况,也就是在 Polar DB 当中永远是负载最轻的节点接触到最新的请求。这就解决了读写分离的策略问题。
对于读写分离的一致性问题,Polar DB-O 提供了绘画级别的一致性,也就是同一绘画的读节点在写节点之后的读操作一定会被路由到 LSN 和主库相等的只读节点上,这就实现了 Polar DB的 Session 级别的独立执行,并且通过 prepare 语句的扩展查询实现的负载均衡以及节点的健康检查。
同时读写分离地址的代理层还可以通过区分不同只读节点和主节点的关系,来把整个只读节点分成不同的应用组,这就是 Polar DB 的自动读写分离功能。
2、高故障切换
Polar DB 是基于普通 PC 服务器构建,如何处理普通 PC 服务器相对高的根据率就是精准的及时的高可用故障切换。Polar DB 的架构是分层的,所以是通过一个立体的故障探测方式来让 Polar DB 做到既不过敏也不迟钝。
首先是对 Polar DB 的计算节点进行监控,默认是间隔三秒,连续五次对计算节点更新失败,则认为节点故障,这个是可以通过用户自行需要调整的。同时再辅以周边的硬件,比如操作系统,容器,电源,交换机的故障,建议进行附加的判断。同时代理层会对应用来进行监控,并避免高压力下导致探测失败的误期。
高于高可用故障切换的另外一个问题就是一致性,Polar DB-O 提供了每一个事物踢脚的时候都会触发过盘操作,所以无论如何喜欢的Polar DB-O 的 RTO 永远是等于0。
Polar DB 的计算节点中分为主节点和只读节点,当只读节点进行切换的时候是通过代理层路由好来解决的,这个时候只损失容量,是不损失可能性的。当主节点需要切换的时候,RTO 最大30秒,也就是在30秒内都能完成一次,就是 Polar DB-O 的高可用故障切换。