【视频】-PolarDB-云原生云关系型数据库的解析与实践(下)|学习笔记(三)

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 快速学习【视频】-PolarDB-云原生云关系型数据库的解析与实践(下)

开发者学堂课程【关系型数据库 ACP 认证课程【视频】-PolarDB-云原生云关系型数据库的解析与实践(下)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/927/detail/14621


【视频】-PolarDB-云原生云关系型数据库的解析与实践(下)

 

首先,创建原集群和目标集群,或者原库和目标库,创建原集群或者目标集群,另外还有一个小的约束条件,就是我们创建目标集群的时候,在选择存储空间时,一般,我们要不小于原集群的存储空间,这样才能确保我们迁移的成功。更好的情况是推荐我们目标集群的选择的存储空间要比原集群的存储空间要略大一些,因为它可能会有一些中间数据,临时数据,这样能够确保我们迁移的成功率。

第二,增量数据进行迁移的时候,需要原集群开启 Binlog ,这就要求我们原集群里面的 Binlog 日志进行保留,一般来讲, DTS 它会要求本地 Binlog 日志的保留的时间,应该要大于20小时以上的,默认应该是七天。不改的话,默认是七天,有改的话,那最好是给它改回去。因为,如果没有 Binlog ,增量的迁移肯定就会出现一些丢失的情况,所以可能会出现一些极端情况下,会有一些像数据不一致的,或者丢失的情况会出现。

迁移失败的任务, DTS 会自动去触发, GPS 自己本身具有一些高可用的能力,并且,它也会有一些失败自动重试调度的一个能力。

业务切换到目标集群的时候,需要先停止或释放迁移任务,避免原端的数据覆盖目标集群的数据。

用于数据迁移的最后账号需要有补写权限。

(4)数据迁移:RDS 迁移至 PolarDB

image.png只是场景不同,整个套路基本是一样的。通过 DTS 把 RDS 的数据迁移到 PolarDB ,同样也是利用了全量、增量、结构,这三个争议的过程。从账号的权限上来看,还是一样的,就是对于这个原始力,是需要读写,目标实例,其实我也是需要有一定的读写的一些权限,我们后面会有一些表格列出需要的权限。

上图列了几个阶段,其实这些整体的套路基本上是这样的,就是这么一个过程。首先我们在 DTS 上创建一个迁移的任务。

然后,我们在这些任务里面的第一步,配置资源实力和目标实例的一些信息,原库的信息,数据库的信息,原库的信息需要选,实力类型: PolarDB、RDS 等,接入的实力的地区:阿里云上,然后是实例 ID,其实选择地域以后,它自己会帮你侦测出来,你就选择你的原库或者目标库就可以了,最后的账号跟密码应该提前设置好。然后通过测试链接点一下,测试通过以后就可以通过授权白名单到下一步,因为访问数据库都是需要有白名单的,所以里面的原实例的信息,目标集群的信息,因为从 RDS 到 PolarDB ,所以原实例就是原 RDS 的实例,目标集群就是目标的 PolarDB 的集群。如果是 PolarDB 到 RDS ,就反过来原集群的信息、目标实例的信息是一样的,这过程就是配置源的信息测试有没有,通过配置目标的信息测试有没有通过,然后授权白名单进入下一步。

下一步,我们要选择迁移的类型跟对象。迁移类型包括全量、增量跟结构这三种迁移的类型。迁移的对象包括整个库或者若干个库,若干个表,就是你的库表列都可以作为迁移的对象,这个力度都可以这么去选择。

再下一步就是预检查,并启动。迁移任务在正式被启动的时候,之前会先进行一些预检查,会有一些预检查项,只有所有的预检查项目全部通过以后才会正式的启动迁移的任务。

如果检查失败,它就会告诉你失败的一些详情,我们就要根据这个失败的提示去进行一些修复的动作。

然后,预检查全部通过,进度显示百分百以后,就会到下一步,确认DTS 的购买信息,然后我们可以选择小中大,不同的性能的迁移规格。因为不同的规格的迁移的性能的速率是有一些不一样的,费用也不一样。我们可以根据业务场景来进行选择,之后,购买以后点击启动,这个迁移的任务才真正启动。然后等待数据的迁移到同步的完成就可以了。

(5)数据迁移:本地 MySQL 迁移至 PolarDB

image.png过程基本上我们在前面的讲解,大家可以看到套路都是一致的,就是我可以利用 DTS 来实现本地不停服的情况下,利用 DTS 三个阶段的有机组合,就能够实现数据迁移到目标 PolarDB 的集群上。

迁移的顺序,正常来讲就是结构先迁,再迁全量的数据,然后再迁增量的数据,之后,实现同步的效果。

关于权限的要求,基本上与上图差不多。对于原实力来讲,结构迁移,只需要有查询权限就可以。同样的全量迁移,也是只需要有查询权限就可以了。有增量迁移的话就需要有一些书法权限和一些复制权限。对于目标端来说,肯定都是需要有读写权限。从权限上,基本都是这样的。

(6)数据迁移:PolarDB 迁移至 RDS

image.png从 PolarDB MySQL 版本迁移到 RDS MySQL 版本,过程也是一样,包括结构迁移、全量迁移、增量迁移。为了保证迁移数据的一致性,在开始迁移之前,我们建议停止写入数据到 PolarDB 的集群。另外,目标实例的存储空间,应大于 PolarDB 集群的已使用空间。

你说我的业务不能停,那我能不能实现接近于不停机的迁移呢?其实理论上也是可以实现的。只是说对于DTS三个阶段的控制,我们自己就要特别的小心

(7)数据迁移:ECS 自建 MySQL 迁移至 PolarDB

image.pngECS 自建 MySQL 迁移至 PolarDB ,库存其实都是类似的。

关于 PolarDB 的数据迁移,其实万变不离其中,我们就是好好的、灵活的去利用我们 DTS 的功能,就能够实现上面所列举的这五类的场景。无论是从 RDS 迁到 PolarDB ,或者是从 PolarDB 迁到 RDS ,或者是自建库迁到PolarDB,或者是其他的云数据库迁到PolarDB,或者是 PolarDB 之间进行互相迁移都是可以的。

 

四、PolarDB 数据同步

PolarDB 的数据的同步。

image.pngPolarDB 结合 DTS 的数据库同步功能,我们也同样的提供了多种数据的同步的方案。可以实现,比如从 RDS 同步到 PolarDB 或者是从PolarDB 同步到 RDS ,或者是 PolarDB 之间进行数据同步,或者PolarDB 同步到比如其他的一些数据仓库或者 ADB 。 ADB 也是通过协议的,所以可以直接同步过去。所以,不同的上云,迁云同步的业务需求。其实PolarDB 结合我们的阿里云设计程序和DTS都是比较方便的实现。

1、PolarDB 通过 Binlog 实现实时同步

image.png第一个是 PolarDB ,它主要是通过 Binlog 实现实时同步的。因为,它是完全兼容这个开源的 MySQL 的数据协议的。默认情况下,它是使用了物理日志来代替 Binlog 。但是,因为整个MySQL的生态很多时候是用 Binlog 代替做数据的同步或者传输。所以,为了跟这个生态相融合, PolarDB 也提供了开启 Binlog 的功能,方便我们去连接到 ES、ADB 这种分析型数据库等等。我们也可以搭建 PolarDB 到 RDS、RDS 到 PolarDB 或者是 PolarDB 之间的数据的实时同步。

在这块里面,有几点要注意一下,

开启 Binlog 以后, Binlog 空间也是属于我们 PolarDB 集群存储空间的一部分,所以它也会占用一部分的存储。

Binlog 默认保留的时间是两周,超出两周以后 Binlog 的文件会被自动删除。

开启 Binlog 以后会导致写的性能下降,读的性能是不受影响的。这个地方隐含是个什么意思呢?就是我们开启 Binlog 也好,甚至是比如我们通过 DTS 迁移也好。我们发现它其实都是会占用我们的源库,或者比如 ITTS 的话,可能会占用目标库的一定的读写资源,所以它就有可能会导致,我们的源库或者目标库的数据库的负载是会有一些上升的。

有一个隐含的条件就是我们在进行 Binlog 的同步,或者数据迁移的时候,我们就要考虑到数据库是不是会由于性能被影响,导致我们出现一些问题。尤其是我们一些规格比较低,或者规格不低,但是业务量非常的大的情况下,比如源库有大量的慢车口,或者是没有见索引,或者存在死锁等等,导致源库的计算量很大,负载很高。这时候,我们再去开启 Binlog 或者这时候再用 DTS 迁移同步的时候,那么毫无疑问,那是会给我们的数据库的压力进一步去提升的,甚至压力提升到一定的程度上,会导致我们的数据库可能就挂了。

这里面有个隐含的条件就是我们在做同步或者迁移的时候,需要去考虑去评估,我们的源库的性能,目标库的性能。

一个比较简单的准则,我们尽量都在业务的平峰期、低谷期的时候进行数据的迁移或者同步的操作。会更好一点。

2、数据同步:RDS 与 PolarDB 之间数据同步

image.png从 RDS 到 PolarDB 之间的进行数据同步,同样呢也是通过 RDS 实现的。

数据同步其实就是增量数据的同步。那么利用 DTS 数据同步的能力,就可以很容易去实现实时的同步。

RDS 跟 PolarDB之间的数据同步大致可以从同步架构上分为两大类型。

一个是单向的同步。就是由原端到目标端进行单向的同步或者是双向的同步,就是两个实例之间去进行双向同步,你同步我,我同步你。

在单向同步的这个架构里面,有这么几种情况,一个是一对一的单向,A 到 B。

一个是比如一对多的单向,也是一种,或者级连的单向同步啊。级连的单向同步就是 A 同步到 B , B 再同步到 C ,所以在这里面,我们如果要实现这个效果,我们发现,我们至少要买三个实例,就是要有一个原实例跟两个同步实例。一对多的话就是实例 A 同步到多个B C D 。这种情况下一对多,就要购买多个同步实例,三个 B C D 。应该是三个实例。

还有多对一,多对一也是可以的,比如 B 到 A , C 到 A 或者 D 到A ,这是多对一的单向同步。双向同步,就是目前只支持两个 MySQL 数据库之间的双向同步暂时还不支持多 MySQL 数据库之间的两两双向同步。

这是关于 RDS 跟 PolarDB 之间进行数据同步的一些讨论,事实上PolarDB 之间的数据同步的讨论,其实架构也是跟这个基本是一致的,或者是 RDS 跟 RDS 之间数据同步的架构其实基本上也是一致的。

 

五、回顾与总结

image.png首先,介绍了 PolarDB 的产品简介。产品简介里面主要有三个小节,一个是产品的综述, PolarDB 是一个阿里云自研的新一代的云数据库,它本身是计算跟存储是分离的。深度百分百的兼容MySQL的协议。然后 PolarDB 的一些产品的序列,给大家介绍了集群版、单节点、历史库、多组架构等等。然后,又讲了 PolarDB 的一些应用场景,比如,在一些业务的高并发的场景、一些大容量的场景,或者是一些AP跟TP相结合的一些新形态。

在功能概览这块就是先列了一下,基本管理里面的一些要点。那这块我们是在基本管理去展开的。在第二个小节里面介绍了 PolarDB 的一些架构跟核心技术,架构上有几个特点,易写多读、读写分离,然后 PolarDBFS 共享的分布式存储,计算与存储分离等等。

核心技术比如 PolarDB 的物理复制的一些技术、切换的一些技术和存储的一些技术。昨天很大的一部分的篇幅是在PolarDB 基本管理这块儿,我们分别从 PolarDB 的实例管理、账号管理、连接数据库的方式,比如我们设置白名单,然后通过一些 DMS ,或者通过程序,通过一些手段,去连接到 PolarDB 上面来。 PolarDB 的一些参数,我们可以进行设置。 PolarDB 也提供了一些监控与诊断的一些页面,我们可以看到一些实时性能,锁分析、空间分析等等。

关于 PolarDB 的一些安全,因为大部分阿里的产品大讨论安全都是事前可以做什么,事中有什么安全机制,事后有什么安全机制。 PolarDB 的核控心的管理。 PolarDB 的访问与存储,讲了 PolarDB 的访问方式,可读可写的方式或者只读的方式。地址有集群地址和主地址。 PolarDB 也有数据库代理,数据库代理也支持读写分离,负载均衡、连接池等等能力。存储类型主要讨论了数据保存的费用问题,计算包、资源包。最后讲了数据备份与恢复、迁移与同步。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
12月前
|
关系型数据库 分布式数据库 PolarDB
PolarDB 开源基础教程系列 7.2 应用实践之 跨境电商场景
本文介绍了如何在跨境电商场景中快速判断商标或品牌侵权,避免因侵权带来的法律纠纷。通过创建品牌表并使用PostgreSQL的pg_trgm插件和GIN索引,实现了高性能的字符串相似匹配功能。与传统方法相比,PolarDB|PostgreSQL的方法不仅提升了上万倍的查询速度,还解决了传统方法难以处理的相似问题检索。具体实现步骤包括创建品牌表、插入随机品牌名、配置pg_trgm插件及索引,并设置相似度阈值进行高效查询。此外,文章还探讨了字符串相似度计算的原理及应用场景,提供了进一步优化和扩展的方向。
341 11
|
12月前
|
SQL 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 7.5 应用实践之 TPCH性能优化
PolarDB在复杂查询、大数据量计算与分析场景的测试和优化实践.
382 7
|
12月前
|
搜索推荐 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 7.3 应用实践之 精准营销场景
本文介绍了基于用户画像的精准营销技术,重点探讨了如何通过标签组合快速圈选目标人群。实验分为三部分: 1. **传统方法**:使用字符串存储标签并进行模糊查询,但性能较差,每次请求都需要扫描全表。 2. **实验1**:引入`pg_trgm`插件和GIN索引,显著提升了单个模糊查询条件的性能。 3. **实验2**:改用数组类型存储标签,并结合GIN索引加速包含查询,性能进一步提升。 4. **实验3**:利用`smlar`插件实现近似度过滤,支持按标签重合数量或比例筛选。
232 3
|
SQL 数据挖掘 测试技术
南大通用GBase8s数据库:LISTAGG函数的解析
南大通用GBase8s数据库:LISTAGG函数的解析
|
人工智能 搜索推荐 API
Cobalt:开源的流媒体下载工具,支持解析和下载全平台的视频、音频和图片,支持多种视频质量和格式,自动提取视频字幕
cobalt 是一款开源的流媒体下载工具,支持全平台视频、音频和图片下载,提供纯净、简洁无广告的体验
2148 9
Cobalt:开源的流媒体下载工具,支持解析和下载全平台的视频、音频和图片,支持多种视频质量和格式,自动提取视频字幕
|
12月前
|
人工智能 关系型数据库 分布式数据库
PolarDB 开源基础教程系列 7.4 应用实践之 AI大模型外脑
PolarDB向量数据库插件通过实现通义大模型AI的外脑,解决了通用大模型无法触达私有知识库和产生幻觉的问题。该插件允许用户将新发现的知识和未训练的私有知识分段并转换为向量,存储在向量数据库中,并创建索引以加速相似搜索。当用户提问时,系统将问题向量化并与数据库中的向量进行匹配,找到最相似的内容发送给大模型,从而提高回答的准确性和相关性。此外,PolarDB支持多种编程语言接口,如Python,使数据库具备内置AI能力,极大提升了数据处理和分析的效率。
561 4
|
11月前
|
缓存 监控 搜索推荐
【实战解析】smallredbook.item_get_video API:小红书视频数据获取与电商应用指南
本文介绍小红书官方API——`smallredbook.item_get_video`的功能与使用方法。该接口可获取笔记视频详情,包括无水印直链、封面图、时长、文本描述、标签及互动数据等,并支持电商场景分析。调用需提供`key`、`secret`和`num_iid`参数,返回字段涵盖视频链接、标题、标签及用户信息等。同时,文章提供了电商实战技巧,如竞品监控与个性化推荐,并列出合规注意事项及替代方案对比。最后解答了常见问题,如笔记ID获取与视频链接时效性等。
|
数据采集 XML API
深入解析BeautifulSoup:从sohu.com视频页面提取关键信息的实战技巧
深入解析BeautifulSoup:从sohu.com视频页面提取关键信息的实战技巧
|
存储 SQL 缓存
PolarDB-X 在 ClickBench 数据集的优化实践
本文介绍了 PolarDB-X 在 ClickBench 数据集上的优化实践,PolarDB-X 通过增加优化器规则、优化执行器层面的 DISTINCT 和自适应两阶段 AGG、MPP 压缩等手段,显著提升了在 ClickBench 上的性能表现,达到了业内领先水平。
|
SQL 关系型数据库 分布式数据库
基于PolarDB的图分析:银行金融领域图分析实践
本文介绍了如何使用阿里云PolarDB PostgreSQL版及其图数据库引擎(兼容Apache AGE,A Graph Extension)进行图数据分析,特别针对金融交易欺诈检测场景。PolarDB PostgreSQL版支持图数据的高效处理和查询,包括Cypher查询语言的使用。文章详细描述了从数据准备、图结构创建到具体查询示例的过程,展示了如何通过图查询发现欺诈交易的关联关系,计算交易间的Jaccard相似度,从而进行欺诈预警。
基于PolarDB的图分析:银行金融领域图分析实践

热门文章

最新文章

推荐镜像

更多
  • DNS