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

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 快速学习PolarDB-云原生关系型数据库的解析与实践(下)

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

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


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

内容简介

一、前言

、PolarDB 备份

、PolarDB 恢复

、PolarDB 数据迁移

、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和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
11天前
|
存储 JSON API
深入解析RESTful API设计原则与实践
【9月更文挑战第21天】在数字化时代,后端开发不仅仅是编写代码那么简单。它关乎于如何高效地连接不同的系统和服务。RESTful API作为一套广泛采用的设计准则,提供了一种优雅的解决方案来简化网络服务的开发。本文将带你深入了解RESTful API的核心设计原则,并通过实际代码示例展示如何将这些原则应用于日常的后端开发工作中。
|
15天前
|
PHP 开发者
PHP 7新特性深度解析与实践应用
【9月更文挑战第17天】本文将深入探讨PHP 7的新特性及其对开发者的实际影响,同时通过实例演示如何有效利用这些特性优化代码和提高性能。我们将从类型声明的增强开始,逐步深入到其他关键改进点,最后通过一个综合案例展示如何将这些新特性应用于日常开发中。
|
15天前
|
消息中间件 Java Apache
RocketMQ消息回溯实践与解析
在分布式系统和高并发应用的开发中,消息队列扮演着至关重要的角色,而RocketMQ作为阿里巴巴开源的一款高性能消息中间件,以其高吞吐量、高可用性和灵活的配置能力,在业界得到了广泛应用。本文将围绕RocketMQ的消息回溯功能进行实践与解析,分享工作学习中的技术干货。
47 3
|
12天前
|
Linux iOS开发 Docker
Docker:容器化技术的领航者 —— 从基础到实践的全面解析
在云计算与微服务架构日益盛行的今天,Docker作为容器化技术的佼佼者,正引领着一场软件开发与部署的革命。它不仅极大地提升了应用部署的灵活性与效率,还为持续集成/持续部署(CI/CD)提供了强有力的支撑。
192 69
|
12天前
|
传感器 C# Android开发
深度解析Uno Platform中的事件处理机制与交互设计艺术:从理论到实践的全方位指南,助您构建响应迅速、交互流畅的跨平台应用
Uno Platform 是一款开源框架,支持使用 C# 和 XAML 开发跨平台原生 UI 应用,兼容 Windows、iOS、Android 及 WebAssembly。本文将介绍 Uno Platform 中高效的事件处理方法,并通过示例代码展示交互设计的核心原则与实践技巧,帮助提升应用的用户体验。事件处理让应用能响应用户输入,如点击、触摸及传感器数据变化。通过 XAML 或 C# 添加事件处理器,可确保及时反馈用户操作。示例代码展示了一个按钮点击事件处理过程。此外,还可运用动画和过渡效果进一步增强应用交互性。
121 57
|
11天前
|
编解码 开发工具 UED
QT Widgets模块源码解析与实践
【9月更文挑战第20天】Qt Widgets 模块是 Qt 开发中至关重要的部分,提供了丰富的 GUI 组件,如按钮、文本框等,并支持布局管理、事件处理和窗口管理。这些组件基于信号与槽机制,实现灵活交互。通过对源码的解析及实践应用,可深入了解其类结构、布局管理和事件处理机制,掌握创建复杂 UI 界面的方法,提升开发效率和用户体验。
56 12
|
6天前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
10天前
|
设计模式 数据库连接 PHP
PHP中的设计模式:单例模式的深入解析与实践
在PHP开发中,设计模式是提高代码可维护性、扩展性和复用性的关键技术之一。本文将深入探讨单例模式——一种确保类只有一个实例,并提供该实例的全局访问点的设计模式。我们将从单例模式的基本概念入手,剖析其在PHP中的应用方式,并通过实际案例展示如何在不同场景下有效利用单例模式来优化应用架构。
|
13天前
|
PHP
PHP 7新特性解析与实践
【9月更文挑战第19天】在这篇文章中,我们将深入探讨PHP 7的新特性,以及如何在实际开发中应用这些新特性。我们将通过代码示例,详细解析PHP 7的性能提升,新的操作符,空合并操作符,标量类型声明等新特性,并分享一些实践经验和技巧。无论你是PHP新手还是老手,这篇文章都将帮助你更好地理解和掌握PHP 7的新特性。
|
15天前
|
设计模式 人工智能 算法
PHP中的设计模式:策略模式的深入解析与实践软件测试中的人工智能革命:提升效率与准确性的新篇章
在PHP开发中,理解并运用设计模式是提升代码质量和可维护性的重要途径。本文聚焦于策略模式(Strategy Pattern),一种行为型设计模式,它允许在运行时选择算法或业务规则。通过本文,我们将深入探讨策略模式的定义、结构、使用场景以及如何在PHP项目中有效地实现和利用策略模式。不同于性能优化等技术性摘要,本文着重于提供对策略模式全面而实用的理解,助力开发者编写出更加灵活和可扩展的应用程序。 本文深入探讨了人工智能在软件测试领域的应用,揭示了其如何显著提高测试过程的效率和准确性。通过实际案例分析,展示了AI技术在自动化测试、缺陷检测及结果分析中的关键作用,并讨论了实施AI测试策略时面临的挑
17 3

热门文章

最新文章

下一篇
无影云桌面