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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 快速学习【视频】-PolarDB-云原生云关系型数据库的解析与实践(下)

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

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


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

 

(2) Redo 日志备份

Redo 日志是指记录生成备份集后的增量数据,称之为Redo日志。精确到某个时间点恢复数据,这两者都是缺一不可的。

同样我们是可以设置数据备份跟Redo日志备份的一个备份策略都是在备份设置的这个页面里面进行设置的。

我们能设置比如数据自动备份的频率、常规的还是增强的、数据文件保留的时长比如一级备份默认是七天,然后二级备份关闭状态时可以打开自己设置一些保留的时间。像日志备份保留的时间默认是七天等,这些都可以做一些设置。

可能有的同学会关心一些费用的问题。费用的一些问题,目前是在PolarDB 的备份和恢复的功能都可以免费进行使用。但是,备份文件是需要占用一定的存储空间,因此有一级跟二级备份的区别,还有日志备份,这几种手段。所以这三者之间它们的单价会有一些小小的差异。一般来讲在整个阿里云的生态里面关于存储的费用,单价学都是比较低的。

 

二、PolarDB 恢复

1、PolarDB 数据恢复概述

image.png数据恢复对应的场景就是数据可能会出现某种误操作或者一些系统故障导致数据出现问题。

比如我们误删表误删库,甚至夸张一点从删库到跑路。把集群给删掉或者可能由于程序的一些 bug ,然后对一些数据进行了错误的操作,比如一些机制上的问题、程序设计的一些问题、 bug 导致更新的结果都是错误的。

这时候我们需要对数据进行一些回滚、恢复。 PolarDB 是支持按照时间点或者按照备份集进行恢复。事实上就是说我们在不同的场景里面我们可以选择的备份恢复的方式,其实就是这几个元素的组合。比如我们可以通过集群整体恢复的方式恢复整个集群,这是一种数据恢复的方式。

从方法上看,我们通过集群恢复整个集群可以选择按时间点来恢复或者按照备份集进行恢复。如果按集群来恢复的话这个力度太粗了能不能基于库表的方式,指定库或者指定表的方式来进行恢复,这个其实也是支持的。

如果我们要恢复的时间点刚好是我们某个备份集的时间点那就可以直接基于库表,然后按备份集进行恢复。如果恢复的时间是在备份集发生的其他的时间,我们就可以选择按时间点恢复。

所以无非就是,库表恢复跟集群恢复还有时间点恢复跟备份集恢复,这两个条件两两交叉。这就是我们的 PolarDB 数据恢复的时候能选择的一些操作,其实就是这四种。

整体来讲,恢复数据的时候,集群是可以恢复七天内的任意时间点,并且是基于 Redo 日志。数据的恢复是基于全亮的快照备份加 Redo ,是全亮加增量。全亮是指定的,刚好是那个时间点或者是你指定的任何时间点,然后去找离它当前最近的备份集先做一个全量的恢复。指定时间点跟备份集之间的差值通过 Redo 日志进行回放。

整个数据恢复的一个整体机制就是全亮加增量的一个机制。在这个过程当中,尤其是 Redo 日志,它其实是一个写入跟更新很频繁的操作。因为它要进行回放,就是原来数据库怎么操作, Redo 重新去回放一次。所以这个对我们的数据库的IO是有一定的影响的,大家用的时候可以去评估考量一下。我们可以选择集群地全面恢复,也可以选择库表级别的恢复。

2、PolarDB 恢复操作

image.png(1)、全量恢复

全量回复是指把全量的历史数据恢复到一个新的机器集群并且验证数据以后再通过把恢复后的数据迁移到原集群的方式。就是我们会生成一个临时的克隆实力,然后在上面进行数据的校验或者做一些数据的修正。然后我们再通过 DPS 把数据迁移回原集群完成数据回溯。

(2)、库表恢复

库表恢复是指恢复指定的部分的库或者部分的表到原集群,比如游戏的业务里面,游戏有时候可能因为一些规则设计不合理,导致了一些可能出现被玩家刷装备、刷金币等情况,有可能会进行回档,回档有时可能说不是整个数据库都回,可能只需要恢复某些发现有漏洞利用漏洞玩家的数据。这时候我们就可以使用,库表级别的恢复的方式。所以其实恢复的操作就是两个条件跟两个条件交叉使用就可以了。

3、备份集恢复(全量/库表)

image.png上图页面最上面这一段就是备份与恢复的那个页面的列表。我们要怎么去恢复,首先一定是备份集一定要事先存在或者点击按时间点去恢复或者点击恢复到新的集群指是按备份集恢复。无论是哪个,最后都会跳到以上页面。

如果是按备份集,有个下拉框让我们来选择哪个备份集。如果是按时间点的话,那就会让我们去选择恢复的时间点。页面的下方会有一些参数让我们进行选择,比如我的地域、可用区 pc网络相关的一些信息。然后选择的创建出来的临时的克隆实例,它的节点的规格、节点的个数等。

进行备份集恢复的时候,有几个注意事项。首先,库表恢复里面的从备份集里面的恢复,只支持从一级备份的备份集来恢复,二级备份目前暂时不支持;库表恢复只会恢复指定的表。操作的时候要确认我们选择的表,因为只有我们选择的比较才会被恢复并且有个隐含的限制就是集群内的表要小于五万张超过五万张的时候,现在有一个上限就是不能使用的。那么库表恢复不支持恢复触发器,那么也不支持恢复外件,这个需要要注意一下。右边的截图是说这时候,相当于我们选中的库跟表才会被进行恢复,在底下下方会显示出来。按时间点进行恢复的话。页面其实是很像的。

4、时间点恢复(全量/库表)

image.png如果按时间点那底下就会让我们选择时间。下方的参数其实也是一样的,就是地域信息、可用区信息、信息网络的信息、节点的信息、结点的个数等等,这些都是一样的。同样的如果是全量的话那它直接就恢复了,如果是库表的话那还要选择恢复哪些库、哪些表,然后提交操作等待恢复完成就可以了。

后续的操作就是创建出了一个新的临时的克隆实力,我们需要登录到这个新的克隆的集群,要连接到这个新的集群。然后验证数据是不是正确的或者要不要做一些操作,确认没有问题以后,再通过DPS把数据导回到原集群里面,这样的话就完成了我们的整个数据的回溯动作。时间点恢复关于库表恢复的一些约束限制跟上述注意事项一样。

 

三、PolarDB 数据迁移

1、PolarDB 数据迁移方案概览

image.pngPolarDB 本身提供了多种的数据的迁移,其实包括后面的同步,提供了多种的迁移跟同步的方案可以满足我们一些比如上云、千云跟同步的一些需求,比如我们支持从RDS 迁移到 PolarDB 或者从PolarDB 迁移到 RDS ,其实两者是两个方向,就我到你你到我两个方向;也可以支持我们自建的数据库迁移到 PolarDB 或者是第三方的云数据库迁移到 PolarDB 。比如我是在一些其他的友商的云水库里面迁移到 PolarDB 里面来,甚至是 PolarDB 之间的数据迁移都可以支持并且可以在不影响业务的前提下平滑的实现迁移。

平滑的迁移的核心是利用阿里云的数据传输服务 DTS , DTS 的功能主要就是三个阶段,数据迁移部份的功能主要有三个阶段,第一个叫做结构迁移,就是我们把原数据库的一些库表里面的对象的结构定义,迁移到目标库上面,比如像表、视图、存储过程、触发器、函数等等像这些结构性的东西啊ddl语句,先迁移过去。然后,全量的迁移就是会把原数据库当前那个时间点的存量数据全部的迁移。在迁移的过程当中,其实原库是不进切的,也就是存的数据很多。那么这时候,原库可以不进切的,因为在迁全量数据的过程当,原库的一些变化的增量数据增量更新,会被DTS缓存下来,这时候会有增量迁移,当全量结束以后会有增量更新,通过增量更新就可以实现在某一个时间点,原库跟目标库两者之间能实现实时同步的效果。原库数据跟目标库之间的数据能实现实时的同步。这时候我们在做一个前端的业务去做一个数据库的割接的工作就可以了。这样就能够实现平滑的数据的迁移。

(1)数据迁移:一键升级

image.pngPolarDB 支持把 RDS MySQL 这个版本一键升级到 PolarDB MySQL 引擎。就是原来可能购买的是 RDS ,但现在可以通过 RDS的控制台上的一键升级的按钮就可以直接把原来的RDS升级为PolarDB  。升级后的 PolarDB 集群跟原来的 RDS 里的账号、数据库、 IP 白名单还有一些必要的参数都会被保留,甚至原来的数据库的连接地址都是一模一样的,所以这个升级对于我们的业务是无感知的。但你可能会有一段时间不能访问,就是说我们业务程序上是不需要做修改的,那么就可以很方便的升级到 PolarDB 里面,并且这个过程是不需要我们去控制DTS去触发一些任务。我们只需要在 RDS 工作台点一键升级,然后就可以完成整个经历的过程,所以这个过程里面数据是零丢失的。并且停机的时间是比较短的,迁移过程,仅闪断一次。就是真正的从 RDS 切换到 PolarDB 的时候,访问链路是变化的。所以这时候必然会有一次闪断,在闪断前还是比较容易解决的。我们的业务里面有自动重联的机制其实就可以了。

上一代 RDS 原生的关系数据库的这种方案可能在面对我们在云原生时代,可能 PolarDB 会更好的来去支持我们的业务,能够提供更好的性能。所以我们可以选择一键升级,整个过程背后其实还有一句话要讲的就是升级到 PolarDB 以后原来的 RDS 怎么办。其实升级过去以后,我们原来的RDS不再需要,比如跑了一段时间,发现我们的业务跑的已经很稳定了,这时候不再需要原来的 RDS 。我们可以去申请这个原有的 RDS 的退款,我们可以通过工单的方式去申请这个退款,这样可以平滑的整个迁移过去。

一键升级对RDS的版本有一些小小的要求,因为 RDS 有很多的分支、很多的版本。目前支持一键升级的都是高可用版的,单机基础版是不支持的,支持的是5.6、5.7的高可用版。另外有一个小的地方要注意,就是如果 RDS 的高安全模式已经开通的话,那么这时候,我们一键升级的时候,需要在 RDS 里面创建一个高权限账号,或者是先把这个代理状态关闭,切换为高性能模式,才能进行一键升级,有这么一个要求。

(2)数据迁移:一键克隆

image.png一键克隆和一键升级有点像,是把当前的 RDS MySQL 上面的数据一键克隆到新的 POLARDB MySQL 集群里面,这个操作会新建一个跟源 RDS 实例的数据一模一样的 POLARDB 集群,同时,它也会包含原来的 RDS 实例里面的账号、数据库、 ID 白名单和一些其他必要的参数。与一键升级不同的是,一键升级是支持增量数据同步到POLARDB 集群的,而一键克隆是增量数据是不同步的。

一键克隆的方案的亮点是这个过程是不需要成本的,这些数据也是零丢失的,所以两者的区别就是对增量数据的处理上有一些区别。所以,无论是升级还是克隆,两者要能够正常去发起的前提约束是一样的,跟一键升级的约束是一样的,同样也要求这个 RDS 必须是高可用版的5.6、5.7的。并且,它必须是属于没有打开数据库代理模式的,还有一点就是原库的元素的引擎,数据库的表引擎必须是 INNODB ,其实 RDS 里面默认的就是 INNODB ,所以一般问题不大。

(3)数据迁移:PolarDB 之间数据迁移

image.png同样通过 DTS 实现,就是从 DTS 把一个 PolarDB 集群的数据迁移到另外一个 PolarDB 集群里面,整个过程也是利用 DTS 数据迁移的三大阶段的能力结构迁移,全量迁移跟增量迁移。这三个阶段只要有机的组合就能够实现接近于临停机的动作。

通过 DTS 数据迁移的过程里面有一些必要的注意事项。上图列的注意事项,并不是说只有在 PolarDB 之间进行数据迁移的时候才是这样子的,我们使用DTS去进行数据迁移的时候,这些注意事项基本上都是成立的。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2月前
|
SQL 数据挖掘 测试技术
南大通用GBase8s数据库:LISTAGG函数的解析
南大通用GBase8s数据库:LISTAGG函数的解析
|
2月前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
62 3
|
3月前
|
存储 NoSQL 关系型数据库
数据库技术深度解析:从基础到进阶
【10月更文挑战第17天】数据库技术深度解析:从基础到进阶
126 0
|
3月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
650 0
|
2月前
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
124 57
|
25天前
|
存储 关系型数据库 MySQL
double ,FLOAT还是double(m,n)--深入解析MySQL数据库中双精度浮点数的使用
本文探讨了在MySQL中使用`float`和`double`时指定精度和刻度的影响。对于`float`,指定精度会影响存储大小:0-23位使用4字节单精度存储,24-53位使用8字节双精度存储。而对于`double`,指定精度和刻度对存储空间没有影响,但可以限制数值的输入范围,提高数据的规范性和业务意义。从性能角度看,`float`和`double`的区别不大,但在存储空间和数据输入方面,指定精度和刻度有助于优化和约束。
|
2月前
|
SQL 存储 Oracle
南大通用GBase 8s数据库游标变量解析:提升数据库操作效率
南大通用GBase 8s 数据库游标变量解析:提升数据库操作效率
|
2月前
|
存储 Cloud Native 块存储
EBS深度解析:云原生时代企业级块存储
企业上云的策略,从 Cloud-Hosting 转向 Serverless 架构。块存储作为企业应用上云的核心存储产品,将通过 Serverless 化来加速新的计算范式全面落地。在本话题中,我们将会介绍阿里云块存储企业级能力的创新,深入解析背后的技术细节,分享对未来趋势的判断。
157 2
|
2月前
|
Kubernetes Cloud Native 云计算
云原生技术深度解析:重塑企业IT架构的未来####
本文深入探讨了云原生技术的核心理念、关键技术组件及其对企业IT架构转型的深远影响。通过剖析Kubernetes、微服务、容器化等核心技术,本文揭示了云原生如何提升应用的灵活性、可扩展性和可维护性,助力企业在数字化转型中保持领先地位。 ####
|
2月前
|
运维 Kubernetes Cloud Native
Kubernetes云原生架构深度解析与实践指南####
本文深入探讨了Kubernetes作为领先的云原生应用编排平台,其设计理念、核心组件及高级特性。通过剖析Kubernetes的工作原理,结合具体案例分析,为读者呈现如何在实际项目中高效部署、管理和扩展容器化应用的策略与技巧。文章还涵盖了服务发现、负载均衡、配置管理、自动化伸缩等关键议题,旨在帮助开发者和运维人员掌握利用Kubernetes构建健壮、可伸缩的云原生生态系统的能力。 ####

推荐镜像

更多
下一篇
开通oss服务