Polardb MySQL 产品架构及特性

2024-04-03 08:44

本文主要是介绍Polardb MySQL 产品架构及特性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、产品概述;
1、产品族
在这里插入图片描述
参考:https://edu.aliyun.com/course/3121700/lesson/341900000?spm=a2cwt.28120015.3121700.6.166d71c1wwp2px
2、polardb mysql架构优势
在这里插入图片描述
1)大容量高弹性:最大支持存储100T,最高超1000核CPU,可扩展到16个计算节点,预期5分钟完成只读实例和升降配置,支持临时升级弹性伸缩应对业务高峰
2)高可靠高可用:基于分布式共享存储,数据3副本,多可用区部署,主节点故障后30s内切换到任意只读节点,秒级备份,可按时间点快速恢复数据,全球数据库,实现高效异地容灾,
3)高性能低延迟:分布式共享存储确保主从数据毫秒延迟,提高超高I/O吞吐能力,通过多个计算节点自动读写分离,高并发性能是自建开源数据库的5-6倍,内置原生并行查询parallel Query,充分利用多核CPU,10倍提升大表并行查询能力
4)安全可控:黑白名单设置访问权限,SSL加密确保数据传输链路安全,TDE对数据存储过程进行加密和解密,数据库、表、和列可设置动态脱敏查询,一键SQL洞察,对SQL进行健康诊断,设别高危SQL

3、支持版本:Mysql 5.6、5.7、8.x
4、部署架构
在这里插入图片描述
1、可抵御机房级故障2、默认双可用区部署3、主可用区故障时,可手工进行主备可用
区切换 4、每个可用区3副本,两个可用区共6副本

二、特性
连接访问
PolarDB集群的连接地址(又称为Endpoint)分为主地址、集群地址(又称为默认集群地址)和自定义地址三种类型。其中,默认集群地址和自定义地址都是通过数据库代理来实现的,即这两类地址的请求是经过代理节点,而主地址的请求不经过代理节点。在连接PolarDB集群时,您可以填写PolarDB集群的上述三种地址,推荐使用默认集群地址
在这里插入图片描述
在这里插入图片描述
参考:https://help.aliyun.com/zh/polardb/polardb-for-mysql/user-guide/connection-address?spm=a2c4g.11186623.0.0.7621eb655wRGbM

一致性
最终一致性:不保证实时读到最新的数据,但是最终数据是一致的。
会话一致性: 保证同一个会话内,一定能查询到最新的数据。
全局一致性:保障不同会话间,也一定能查询到最新的数据。

分布式共享存储
在这里插入图片描述
社区Mysql:1、通过逻辑日志进行主从库同步,主从节点延迟大, 2、 添加只读节点,社区mysql增加只读节点与数据量强相关,需要完整复制数据,耗时很长(小时级) 3、主从切换故障切换(分钟级),不能保障RPO = 0 4、涉及Mysql一般建议表500万-1000万记录,6T以内存储空间
Polardb mysql:1、数据文件和物理日志均实时写入共享存储,主从节点毫秒级低延迟2、添加只读节点,无需拷贝数据,5分钟快速提供服务3、30秒内主备故障切换(Failover),只读节点均可以从存储中获取最新的物理日志,确保RPO=0 4、polardb单表亿级别,100T存储空间 5、RO节点毫秒级延迟,基于redo的物理复制,redo日志传输同步实时进行,无需等待事务结束,RW节点向共享存储写redo日志,redo通过网路或共享存储发送给RO节点,RO节点拿到redo日志解析应用,通过redo信息更新buffer pool配置状态,还有一些cache,逻辑事务状态更新,传统的逻辑复制事务开始,一定会等到commit才会生成一个binlog,然后传到备库应用,如果事务比较大,备库延迟会比较大

参考:https://edu.aliyun.com/course/3121700/lesson/341900000?spm=a2cwt.28120015.3121700.6.166d71c1wwp2px

三、高级特性
1、安全性
访问安全:通过白名单和安全组控制
数据传输安全:SSL加密,SSL在传输层对网络连接进行加密提升通信的安全性和完整性
数据安全:透明数据加密TDE,对数据文件执行实时I/O加密和解密,数据写入磁盘之前进行加密,从磁盘读入内存时进行解密
数据脱敏:当应用程序发起数据查询请求时,系统会在数据库内部对脱敏数据进行变换后再返回给应用程序,开始查询前,仅需指定需要进行脱敏查询的数据库账号,以及需要脱敏的数据库、表即可
安全审计:sql审计记录业务执行的sql,方便硕源问题

参考:https://help.aliyun.com/zh/polardb/polardb-for-mysql/user-guide/data-security-and-encryption/?spm=a2c4g.11186623.0.0.1bb7264fnt7ujG

2、备份恢复
在这里插入图片描述
PolarDB支持数据备份和物理日志备份。数据备份即将某个时间点上集群的全量数据生成一个备份集(快照),即全量备份;物理日志备份即记录生成备份集后的增量数据,即增量备份。通过一个完整的数据备份以及后续一段时间的Redo日志备份,就可以将整个PolarDB集群或特定库表恢复到任意时间点。

一级备份采用ROW(Redirect-on-Write)快照的方式,直接保存在PolarDB分布式存储系统上。每次保存时,一级备份并没有真正复制数据,当数据块有修改时系统会将其中一个历史版本的数据块保留给快照,同时生成新的数据块被原数据引用(Redirect)。因此无论数据库容量多少,都可以做到秒级备份。

PolarDB集群备份和恢复功能均采用多线程并行处理,并通过其他技术创新,预计10分钟内(开启热备集群后恢复时间将加倍)即可完成从备份集(快照)恢复到一个新的集群。具体耗时与数据库的数据量大小等因素有关。

二级备份是指一级备份压缩后保存在其他离线存储介质上的备份数据。保存成本较低,但使用二级备份恢复数据的速度较慢。

开启二级备份后,若一级备份超出您设置的保留时间,将会被自动转存为二级备份,转存速度约为150 MB/秒。

二级备份支持同地域备份和跨地域备份

备份原理;

恢复:
1)闪回
闪回查询、实例回收站支持特定表或记录快速回退至某一历史时刻,可以快速恢复应对误操作
粒度:记录级回滚
时间范围:3天内
恢复耗时:秒级或分钟级

参考:
https://help.aliyun.com/zh/polardb/polardb-for-mysql/user-guide/flashback-queries?spm=a2c4g.11186623.0.0.7fa67f07kKaTyZ

https://help.aliyun.com/zh/polardb/polardb-for-mysql/user-guide/restore-a-released-cluster?spm=a2c4g.11186623.0.0.5a47539eaSXHZJ

2)库表恢复
粒度:单库 单表 完整实例
实现:快照+redo log
恢复耗时:和数据量相关

3)按时间点恢复

3、GDN(全球数据库)

4、FAST DDL

5、并行查询

6、列索引

7、多租户多写

8、性能诊断(DAS)

这篇关于Polardb MySQL 产品架构及特性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/872436

相关文章

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

浅谈mysql的not exists走不走索引

《浅谈mysql的notexists走不走索引》在MySQL中,​NOTEXISTS子句是否使用索引取决于子查询中关联字段是否建立了合适的索引,下面就来介绍一下mysql的notexists走不走索... 在mysql中,​NOT EXISTS子句是否使用索引取决于子查询中关联字段是否建立了合适的索引。以下

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分