开发者学堂课程【关系型数据库ACP认证课程:快速学习 PolarDB-云原生关系型数据库的解析与实践(下)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/927/detail/14621
PolarDB-云原生云关系型数据库的解析与实践(下)
内容简介:
一、前言
二、PolarDB 备份
三、PolarDB 恢复
四、PolarDB 数据迁移
五、PolarDB 数据同步
六、回顾与总结
一、前言
PolarDB 的备份与恢复,数据现在已经成为了很多企业的核心资产。随着我们向移动互联网、物联网、IT 业务的发展,企业的各种数据越来越呈现出向规模化,爆炸式的这种增长并且我们的业务也越来越复杂,要求实时的在线的快速进行相应的业务也越来越多,所以对于我们使用数据库,管理数据库的人来讲怎么来去保护我们企业核心数据的安全有效会越来越富有挑战性。因为我们处于互联网,面向互联网提供服务,所以有时候难免会遇到一些不太好的一些问题,比如数据被自己误删、我们的系统存在一些漏洞或者像前两年特别流行,肆虐地向勒索病毒这一类的东西,又或者硬件自己会有一些故障,比如火灾、地震等等这种人力不可抗拒的这种自然因素都可能导致数据的丢失,因此对于一个数据库系统来讲良好的备份和恢复的机制是非常的重要的。
二、PolarDB 备份
1、PolarDB备份概述
PolarDB 本身是为了应对这种业务变化快,数据量激增的高并发场景而设计的数据库。 PolarDB 支持数据备份跟 Redo 的日志备份,大概有两大类,后面会详细讲解。自身也采用了物理备份,每天默认为自动进行备份一次,也可以手动发起备份。
所谓的数据备份或者物理备份就是指我们在某一个时间点上通过手动或者自动的机制,让我们 PolarDB 的集群进行全亮的采集再形成一个快照,或者我们叫一个备份集,这是一个物理备份或者称之为快照备份。
Redo 日志主要是用于一些增量数据的收集就是我们生成的备份集还是指定在默认的操作的时间点,但是时间点与时间点之间、备份集与备份集之间可能会有一些增量的数据,这是通过 Redo 日志进行备份跟收集的。
在 PolarDB 的设计里面我们通过完整的、全亮的物理日志、数据备份,以及增量的 Redo 日志收集,这两个部分的数据会通过异步的压缩传输,然后在 OSS 里进行归档。意味着我们完整的数据都会在 OSS 里进行压缩并归档。
那么我们通过一个完整的数据备份全量数据备份跟指定的那个时间点之间的一段时间内的 Redo 的增量的日志备份就可以让 PolarDB 可以恢复到指定的时间点。
自动备份跟手动备份都不会影响 PolarDB 集群的运行。备份的文件默认是保留七天。
手动备份最多可以保持三个,自动备份每天默认一个。备份的文件是不能删除的。
2、手动备份与自动备份
从操作的机制上来讲 PolarDB 分成了手动备份和自动备份自动。
从字面上手动备份就是我们自己通过按钮触发的,自动备份就是我们在后台去设置一些自动触发的机制,比如定时触发某种机制。
(1)自动备份
在 PolarDB 的设置里自动备份是默认开启的,它会按照我们设置的备份策略进行自动的备份数据,达到定时备份的效果,保证数据安全性。在默认的情况下, PolarDB 会按照每天备份一次的频率进行自动的备份。
我们也可以根据我们业务的实际的需要控制台设置,在备份设置这个地方设置我们自动备份的频率和备份文件保留的时长等,我们可以设置一些参数。
(2)手动备份
手动备份是我们主动去触发的备份。但我们可以根据业务需求随时随地进行。
手动备份主要就是在 PolarDB 的控制台找到你的目标集群就是你的目标的 PolarDB 。进去之后,左侧这里截图隐掉了1个导航栏,在配置管理里面有一个叫做备份与恢复的一个页面,进去之后找到备份列表,在一个单独的页签处点击创建备份。此时会弹出一个对话框,创建备份的一个对话框。点击确定以后会触发一个手动备份的任务。
在列表里面会多一行记录,上面参数是备份集的id、备份开始的时间、结束的时间、状态,这里有一个叫做一致性快照的时间点是指数据进行备份的精确的时间点。因为我们提交备份的任务在后台是一个队列进行操作的,那精确的数据是在哪个时间点发生备份以一次性快照时间为准。
(3)备份方法
备份的方法主要是快照备份或者物理备份。快照备份的备份类型是全亮的。 Redo 备份是一种背诵方法,其实就是我们的所谓的增量日志的备份,对应的备份的类型就是增量的备份。它的大小是根据实际占用的数据的空间计算。
存储位置称为一级备份或者二级备份,这是 PolarDB 里的一个特有的概念。那么一级备份事实上就是直接把我们的数据备份保存在 PolarDB 的自身的 PolarDBfs 就是 PolarDB 自带的分布式的存储系统上。效果特别好,因为它直接在我们的实力的空间里面,所以效果特别好。并且它本身的一级的备份采用的是一个叫做写实复制的一个机制,所以当真正发生备份的时候,它其实是把有修改的系统的那个块保留了下来,同时在生成一个新的块,被原数据的整个断断续续引用。所以这个时候你要是触发一级备份的话,其实可以做到秒级的,就会非常的快。
二级备份是只能一级备份被压缩以后通过压缩上传到 OSS 里面或者可以通过 DTS 把离线的保存在其他的介质上。相比于一级备份,二级备份必然就存在空间更大、成本更低。相对应的就是数据的备份速度恢复速度相对慢一些。
3、常规备份与增强备份
(1)常规备份
常规备份是指设置备份的时候可以选择备份周期。我们在一天的时间点内可以去选择,一天24个时段里面的任意一个时段,选择以后一天就能进行一次的常规的自动备份。但是必须勾选否则不发生常规备份。
RDS 默认配送方式 PolarDB 里面称为常规备份。
(2)增强备份
PolarDB 有一个新的机制叫做增强备份,增强备份是根据自动备份的频率区分的。
常规备份是一天只能自动执行一次,在每隔一个小时的时间段里面可以选择自动触发一次。从实践经验上来讲出于数据安全的考虑,推荐大家的常规的自动触发的备份的频率至少一周两次三次或者有的人可能习惯一天触发一次。根据数据量的大小和备份的空间决定,备份空间有一些成本的考虑在里面。
增强备份是指 PolarDB 有设计出一种新形态的一个备份,它是能够缩短备份的周期也就是一天自动触发的备份不只是一次了,你可以选择多次,通过增强备份就可以缩短备份的周期。然后,由原来的一天一次变成一天多次。从而增加备份密度,恢复数据的时候可以更精确。在增强备份的这个机制下,我们在一天之内可以自动触发多次的备份。那么,有三个选项让我们来选择,可以开启每隔两个小时备份一次、三个小时或者四个小时进行一次增强的备份。因此我们可以知道,在增强备份这种机制下,比如两个小时创建一次,意味着一天最多可以创建12次的自动备份。所以在增强备份这个机制下就会出现一天有多个自动备份这样的一个情况。
在 PolarDB 的增强机制、备份机制里面,对于一天所触发的多个自动备份,最后到底保留下哪一个,它有一个机制就是备份完成的时间在24小时以内的,会全部被保留,也就是说像这上面这个图案,我们在3月1号的八点设置了一个四个小时创建一个备份,也就意味着系统会在四个小时里面来创建一个备份并且以四个小时为一个备份的频率持续地进行创建,到3月2号的时候打满24小时就会有六个备份出现。那么这个备份在24小时里面他都会存在就是四个或者在这一天里面这6个都会存在。
但是过了零点,就是过了下一个自然天以后,那么系统就会保留这个每一天零点之后完成的第一个备份,比如这个3月2号我们在3月2号那一天24小时里面最后创建的六个备份。那么在3月3号以后,过去的24小时里面,这六个备份会删除掉后面的这五个还会留下零点之后创建了第一个备份,这是当前现代的一个机制。
4、数据备份与Redo备份
(1)数据备份
数据备份是物理备份,就是某个时间点上 PolarDB 集群的全量数据所生成的一个快罩或者在 PolarDB 里面叫做备份集。
(2) Redo 日志备份
Redo 日志是指记录生成备份集后的增量数据,称之为Redo日志。精确到某个时间点恢复数据,这两者都是缺一不可的。
同样我们是可以设置数据备份跟Redo日志备份的一个备份策略都是在备份设置的这个页面里面进行设置的。
我们能设置比如数据自动备份的频率、常规的还是增强的、数据文件保留的时长比如一级备份默认是七天,然后二级备份关闭状态时可以打开自己设置一些保留的时间。像日志备份保留的时间默认是七天等,这些都可以做一些设置。
可能有的同学会关心一些费用的问题。费用的一些问题,目前是在PolarDB 的备份和恢复的功能都可以免费进行使用。但是,备份文件是需要占用一定的存储空间,因此有一级跟二级备份的区别,还有日志备份,这几种手段。所以这三者之间它们的单价会有一些小小的差异。一般来讲在整个阿里云的生态里面关于存储的费用,单价学都是比较低的。