云数据库备份与恢复(一)| 学习笔记

简介: 快速学习云数据库备份与恢复

开发者学堂课程【企业运维训练营之数据库原理与实践课程 :云数据库备份与恢复(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1201/detail/18306


云数据库备份与恢复

 

内容介绍:

一、前言

二、数据库备份恢复介绍

三、数据库备份恢复原理

四、云上备份恢复能力与场景

五、备份恢复实战

六、小结

 

一、前言

之前的五次课程学习了很多东西,包括了解数据库的概念和架构、使用 DMS 技术管理并使用数据库,本周也重点学习了如何使用 DS 等工具去解决一些数据库的性能问题。但是作为一个 DBA 来说,除了使用数据库和保障数据库的稳定运行,还需要去应对一些非预期的情况,比如说数据丢失等情况,接下来将学习云数据库的备份与恢复。

 

二、数据库备份恢复介绍

接下来主要讲解一些概念性的知识点

image.png

1. 备份恢复是什么?

首先给备份恢复下一个定义:

(1)备份是通过特定的方法将数据库的必要文件或数据以特定的格式转储到其他存储媒介中。

注意:以上有几个关键词需要重点关注:文件、特定的格式和存储媒介。文件和数据主要是针对备份的内容而定,可以是物理文件,逻辑数据,还可以是源数据比如存储过程等;特定的格式主要指存储的形式比如一些 SQL 文件和 CHR 文件等形式;存储媒介主要针对备份目的而定,备份需要保证数据的余码,需要转储到其他的存储媒介中,存储媒介有很多种比如文件系统、存储、 NAS 还有一些可以转储到可待机的媒介。

(2)恢复是指将备份文件中特定的数据通过工具或者命令等方式恢复到指定的数据库中。

注意:以上关键词是特定的数据和指定的数据库。,特定的数据主要指备份结果集可以全量恢复也可以选择恢复其中部分数据,比如说指定库表、指定时间(这里指恢复到某一时间的数据比如说恢复到昨天中午十二点);指定的数据库指需要区分物理备份和逻辑备份,逻辑备份是数据的备份,所以它可以恢复到其他种类或其他版本的数据库中,物理备份只能恢复到同版本的数据库中。

2.为什么需要备份恢复?

之所以要进行数据备份恢复的管理,是因为:

(1)数据是企业的核心资产,丢失数据的代价是巨大、难以估计的。

(2)数据是虚拟资产,易丢失。

这里列举一些容易丢失数据的场所:

①人为操作失误造成某些数据被误删除

人为操作失误也是很常见的情况,比如说因为人工失误丢失数据也是需要把数据找回的,还有一些比如商户跑路等情况也是需要避免的,虽然可以做人文关怀去避免这些事情,但是如果发生了数据丢失情况还是需要通过备份找回数据。

②软件 BUG 造成部分数据或全部数据丢失

软件 BUG 需要看软件的一些逻辑,其他的一些 BUG 也会导致数据的丢失。

③硬件故障造成数据库部分数据或全部数据丢失

硬件 BUG 会导致主机的直接当机,有一些数据可能完全无法恢复,如果存储时没有做 Rid 处理会导致数据的全部丢失,还有比如主机直接无法使用也是完全启用不了的,重复用会导致数据的延迟,也可能导致 Binlog 无法使用,数据丢失。

④安全漏洞被入侵数据恶意破坏

安全漏洞出现的次数比较多,比如最近典型的勒索病毒就是利用漏洞清数据库,把数据拷贝之后做一些故意破坏比如恶意删除或者是加密等等行为,如果没有做数据备份就只能用金钱赎回数据。

(3)其他应用场景

除了应对非预期数据丢失的情况,备份还有以下应用场景:

比如说排查一些问题,或者说需要快速搭建一个生产环境,类生产环境,备份恢复可以很快完成,再比如说业务上的数据分析,如果在生产过程中做,危险性是比较大的,所以为了方便需要快速克隆一个生产库(这里用银行业务进行讲解:银行业务大部分是 T+1,很多部门需要在第二天做数据分析,为了效率可以基于存储做一个快件系统,在存储中直接恢复很多个克隆库,直接交给各个部门使用,也可以保留几份做其他事情。)

①特殊应用场景下基于时间点的数据恢复

②开发测试环境数据库搭建

③相同数据库的新环境搭建

④数据库或者数据迁移

(4)数据库备份恢复其相关概念

基于不同的维度有不同的说法:

image.png

①根据备份是否需要数据库离线

热备(Hot Backup):对正在运行的数据库操作没有任何的影响,数据库的读写操作可以正常执行,即在数据备份时可能影响一些性能但是不影响数据库的读写。

冷备(Cold Backup):也叫离线备份。在数据库停止的情况下进行备份,数据库的读写操作不能执行,即备份时数据库必须停止。除了在特定场所冷备现在很少被使用。

·温备(Warm Backup):只能在数据库不进行写入的前提下进行备份,但允许读操作。即热备和冷备的折中,在备份时允许读不允许写入。

不同的工具可能有不同的状态,比如一个完整的备份过程中可能涉及一部分热备,也可能涉及一部分温备

②按照备份后文件的内容分为

逻辑备份:数据库对象级备份,备份内容是表、索引、存储过程等数据库对象。

备份数据库里面的逻辑对象,是对象级别的备份,比如说备份表、索引、存储过程等数据

物理备份:数据库文件级备份,备份内容是操作系统上数据库文件。

按照字面意思理解就是直接备份物理文件

快照备份:基于快照技术获取指定数据集合的一个完全可用拷贝。

是基于存储的快照技术,存储或文件系统都有可能,也就是基于特定的技术去进行备份。

以上三种备份方式是不能直接使用的,比如说在逻辑备份中不能直接把数据拷贝到其他文件中,以及由于快照备份是基于存储和文件系统,所以需要依赖于文件系统去转码或者转储才能在其他文件中使用。这些内容均会在后面重点介绍。

③按照备份数据的内容分为全量、增量和差异备份。

全量备份:对全量数据进行备份。

增量备份:基于上次备份,做一次增量数据的备份。

差异备份:基于上次全量备份,做一次到现在的差异数据的备份。

注意:全量备份花费时间长,对数据库的影响时间也特别长,因此不可能一直做全量备份。如果要恢复到过去某个时间,不能允许有一些时间没有被覆盖,因此增量备份发挥了作用。全量备份和增量备份的叠加使用是现在绝大多数的使用方法。全量备份花费的时间长但是恢复出的全量数据肯定是最多的,但是如果增量数据太多,增量备份数据就会很慢,所以两者的搭配频率需要自己设计。

④评价备份恢复系统完善的标准

以下两个关键词需要特别关注,因为它们是评价备份恢复系统完善的标准。

恢复时间点目标RTO(Recovery Time Objective):

指恢复数据的花费时间。

数据恢复点目标RPO(Recovery Point Objective)

指恢复的数据到达的时间点。也就是过去某个时间点丢失数据的多少。

⑤搭建一个数据备份恢复系统需要最小的 RTO 和 RPO ,如图:

image.png

以上可以说明,这里需要以最快的时间恢复到最新的数据,像灾备这种需要特殊考虑的, RTO 和 RPO 是一个评价指标。

相关文章
|
2月前
|
存储 关系型数据库 MySQL
mysql数据库备份与恢复
MySQL数据库的备份与恢复是确保数据安全性和业务连续性的关键操作。
64 4
|
23天前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
96 6
|
3月前
|
SQL 关系型数据库 MySQL
如何快速在表级别做同构或者异构数据库之间的数据迁移/备份
【8月更文挑战第17天】本文介绍在同构与异构数据库间快速迁移/备份表级数据的方法。同构迁移可利用数据库自带工具(如MySQL的`mysqldump`)或管理软件(如phpMyAdmin);异构迁移则推荐使用ETL工具(如Pentaho Data Integration)或数据库复制工具(如SymmetricDS),亦可通过编程方式实现。实施前需测试以确保数据完整准确,并注意处理兼容性问题。
111 4
|
23天前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
58 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
10天前
|
存储 定位技术 数据库
介绍一下数据库的备份和恢复策略
【10月更文挑战第21】介绍一下数据库的备份和恢复策略
|
2月前
|
关系型数据库 MySQL 数据库
Navicat备份数据库
涵盖`Navicat`数据库备份、数据安全及备份策略等主题。文库采用精美主题,提升阅读体验。
32 1
Navicat备份数据库
|
2月前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
2月前
|
SQL 数据库 数据安全/隐私保护
如何手动备份数据库?
如何手动备份数据库?
94 1
|
3月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
53 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
3月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
102 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)

热门文章

最新文章