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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 快速学习【视频】-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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
23天前
|
关系型数据库 MySQL Serverless
探索PolarDB MySQL版:Serverless数据库的灵活性与性能
本文介绍了个人开发者对阿里云PolarDB MySQL版,特别是其Serverless特性的详细评测体验。评测涵盖了产品初体验、性能观测、Serverless特性深度评测及成本效益分析等方面。尽管试用过程中遇到一些小问题,但总体而言,PolarDB MySQL版表现出色,提供了高性能、高可用性和灵活的资源管理,是个人开发者和企业用户的优秀选择。
|
22天前
|
关系型数据库 MySQL 分布式数据库
PolarDB MySQL数据库场景体验与测评
本文介绍如何在PolarDB上部署数据库,包括登录控制台、配置账号与数据库管理、执行SQL查询及调整Serverless配置等内容。通过创建测试表和数据操作演示了基本数据库管理功能,并展示了如何设置资源弹性扩缩、监控及备份数据。此外,还提供了关于节点切换、压测、加速复杂SQL查询、弹性并行查询及高可用性的详细场景体验说明,全方位展示了PolarDB的强大功能。
|
9天前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
13天前
|
关系型数据库 分布式数据库 数据库
来!跟通义灵码一起参加PolarDB 数据库创新设计赛,突破传统,探索人机协作
无论你是数据库新手,还是技术大咖,通义灵码邀请你参加2024 年全国大学生计算机系统能力大赛 PolarDB 数据库创新设计赛(天池杯),新参赛模式启动,挑战极限!
|
17天前
|
存储 关系型数据库 分布式数据库
揭秘PolarDB:中国云原生数据库的超级英雄,如何颠覆传统数据存储?
在数字化时代,数据成为企业的核心资产,而云原生数据库则是推动企业转型的关键。PolarDB凭借其先进的存储计算分离架构,在性能、可靠性和易用性方面脱颖而出,成为国内领先的选择。它支持多种数据库引擎,提供多副本存储机制,并采用按量付费模式,有效降低管理和成本压力,助力企业实现高效、可靠的数字化转型。
30 1
|
25天前
|
关系型数据库 分布式数据库 数据库
报名啦|PolarDB数据库创新设计赛(天池杯)等你来战
2024年全国大学生计算机系统能力大赛PolarDB数据库创新设计赛(天池杯)已启动报名,面向全国高校全日制本专科学生。大赛由多家机构联合主办,旨在培养数据库领域人才,促进产学研合作,设有丰厚奖金与奖项。报名截至10月7日,决赛将于12月13日举行。更多详情及报名请访问大赛官网。
|
25天前
|
关系型数据库 分布式数据库 数据库
报名啦|PolarDB数据库创新设计赛(天池杯)等你来战
2024年全国大学生计算机系统能力大赛PolarDB数据库创新设计赛(天池杯)已启动报名,面向全国高校全日制本专科学生。大赛由多家机构联合主办,旨在培养数据库领域人才,促进产学研合作,设有丰厚奖金与奖项。报名截至10月7日,决赛将于12月13日举行。更多详情及报名请访问大赛官网。
|
8天前
|
Cloud Native 云计算 Docker
云原生之旅:从容器化到微服务架构
【9月更文挑战第27天】本文将引领读者进入云原生的世界,探索如何通过容器化技术实现应用的快速部署与扩展,并深入理解微服务架构的设计哲学。我们将一起见证代码如何转化为可在云端无缝运行的服务,同时讨论云原生生态中的最佳实践和面临的挑战。
|
1天前
|
监控 Cloud Native 持续交付
云原生架构:企业数字化转型的新引擎##
在当今数字化浪潮中,云原生架构正成为推动企业创新和竞争力的关键因素。本文探讨了云原生的核心概念、技术优势以及在现代业务场景中的应用实践,揭示了其如何助力企业实现高效运营、灵活扩展与持续集成。通过对云原生技术的深入剖析,我们将看到它不仅是一种技术趋势,更是企业数字化转型的战略选择。 ##
|
6天前
|
Kubernetes Cloud Native 持续交付
探索云原生架构:打造弹性可扩展的应用
【9月更文挑战第29天】在云计算的浪潮中,云原生架构成为企业追求高效、灵活和可靠服务的关键。本文将深入解析云原生的概念,探讨如何利用容器化、微服务和持续集成/持续部署(CI/CD)等技术构建现代化应用。我们将通过一个简易的代码示例,展示如何在Kubernetes集群上部署一个基于Node.js的应用,从而揭示云原生技术的强大能力和潜在价值。
19 6

热门文章

最新文章

下一篇
无影云桌面