开发者学堂课程【企业运维训练营之数据库原理与实践课程 :云数据库备份与恢复(二)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1201/detail/18306
云数据库备份与恢复
五、备份恢复实战
接下来主要进行云上的物理备份如何恢复到自建环境中的实际操作。
1.这个实践在云上提供了一篇文章,如图:
如果需要可以自行查看,然后根据这篇文章自行进行实践即可。
2.备份恢复实战
需要自行确定前提条件,这里不对其进行讲解。
(1)首先直接从备份下载开始,这里使用8.0版本的实例,
①如图:
②登录数据库之后的页面如上,点击备份页面,如图:
数据备份的下面有物理备份,也就是物理备份恢复到自建环境,可以看到,这里备份的数据库是_recycle_bin_、aaa、sys ,这里的 aaa 是应用库,这里需要确认 aaa 是否存在。
③如图,点击实例备份下载:
可以看到,它提供了内网下载和外网下载两种方式,这里由于是不同 VPC 所以选择外网下载,外网下载其实就是一个链接,可以直接下载。
④如图:
在 Linux 里不需要转链接,可以直接通过 wget 去下载,需要注意的是,这里需要看备份文件的格式,比如这里下载的格式是 him 23305675_data_202211212155312_xb ,一个时间的值,这里注意,由于后面的后缀涉及到后续解压,所以一定要写对,比如说在图中写一个 test 1_xb.qp,
⑤然后请看下图:
把它下载到这里。
⑥如图,
查看之前安装的数据库的情况,可以看到这里已经安装了一个库而且正在运行中。
⑦如图:
先将代码中的 status 改成 stop ,让这个运行的库停止,然后再开始演示。
⑧如图:
因为这个库已经存在,所以这里修改一下 cnf 文件,比如把这里的 data 1都改成 data 2022。
⑨如图:
修改完成之后再把后面的也修改为2022.
⑩如图:
先创建这里的目录。
(2)
①如图:
根据文档一步步操作,这里已经安装要求完成了下载和安装(8.0版本)
注意:如果没有提前安装下载需要按照文档流程一步步进行安装和下载。
②如图:
下载之后就可以开始进行解压,这里需要特别注意之前提及的后缀,一定要写对(这里写的是_xb.qb 也就是按照 qpress 方式解压)
③如图:
这里把 data 文件也就是解压的目录再进行修改。
④如图:
这里没有创建,所以需要去创建/ home / mysql / tmp 2022的目录然后进行解压,可以看到,解压之后有很多文件:undo 、aaa、sys 和 ibdatal。
这里看到 logfile ,xtrabavkup 会监听 redo log ,监听一些资料数据然后将其写入 logfile 这个文件;
⑤如图:
这里还有 checkpoints 也就是刚刚提及的 LSN ,比如这里 from_lsn 开始是0,还有to_lsn 和 last_lsn ,也就是说后面增量备份就是根据 to_lsn = 87804570。
⑥如图:
这里也有 checkpoints 。
(3)解压之后就可以开始做恢复,这里因为是8.0版本所以需要先做 preparae
①如图:
其实就是将一些未提交的命令提交到事务点恢复。
②如图:
以上表明解压完成,然后再去做恢复。
③如图:
由于之前修改了 data 目录,所以这里也要把 var / lib / mysql 和 data 修改为/ home/ mysql /data 2022和 tmp 2022。
④如图:
以上就是已经恢复了的和原装一致的数据文件,最后只需要把库积起来即可。
(4)①如图:
根据文档步骤,现在可以开始启动,由于之前修改了参数,所以在启动时只需要启动 mysqld 即可
注意:因为这里是通过服务的方式去运行 mysql ,是使用 mysql 启动进程的,所以需要先修改目录权限。
②如图:
修改权限之后重新启动。
③如图:
由于之前修改了一个参数 skip·grant·tables =1,所以现在这个库不需要密码就可以登录。
④如图:
可以看到,这里已经有 aaa 这个库也就是已经恢复出来了,但是如果要使用需要自行修改为自己的密码,比如这里的:mysql>select · from mysql user:
⑤如图:
这里的应用账号有 jyz 、test 1等,设置自己的密码即可使用(当然也可以不修改,直接使用这里原来的密码)
自此,演示已经完毕。
(5)常见问题
以上备份恢复没有遇到问题,但是现实中可能会有一些问题发生,可以考虑问题是否是引擎等错误导致的。
如图:
届时可以参考文档内容中常见问题的解答。
六、小结
1.数据库备份恢复
如图:
今天重点讲解了 Mysql 的备份恢复,第一个是概念,概念有定义、应用场景、一些备份类型还有 RTO 和 RPO。第二个是备份恢复的原理,主要是事务加日志,这里还讲解了逻辑、物理和快照备份的原理以及如何恢复到任意时间点和三种备份方式的对比。最后讲解了云上备份恢复能力及场景,主要有库表恢复、恢复全量/克隆实例、沙箱实例,还讲解了 DMS 数据追踪以及其他数据恢复技术也就是回收站和闪回。
2.回顾前面知识点
(1)RDS 基础概念介绍
如图:
①最开始讲解的是云数据库的特点:稳定可靠、弹性伸缩、开箱即用(是云上最核心的特点)、自动化运维(提供了很多自动化运维的一些方案和工具比如 das、api 和 dbs 备份)、有容灾/监控/备份恢复/迁移等方案(这些都是提供了线程的解决方案)
②然后是云数据库的架构类型:基础版本(没有高可用保障)、高可用版本(提供了高可用节点)、集群版(三节点企业版比如代理去做的一些读写分离集群)。
③云数据库支持的引擎:mysql、sqlserver、pg 和 mariadb 。
④RDS 的规格类型:通用型(有一定隔离但不是独享的,所以可能导致实例会受到其他实例的影响,比如阻力抖动会影响实例)、独享型(如果是核心实例建议使用独享型)、共享型。
⑤网络类型:专有网络(是目前最主流的一种类型,区分于经典网络,有更高的安全性和隔离性,很多广泛的功能比如迁移操作都是使用专有网络)和经典网络(做很多操作时会很麻烦,使用经典网络的可以考虑转换成专有网络)
⑥存储类型:ssd 本地盘(老架构才有的本地盘)、ssd 云盘/ essd 云盘(是以后架构的主流)
⑦安全管理:账号密码/白名单(对比 ess 、防火墙等,RDS 实例是通过白名单来访问 IP 的,)/ ssl 加密(有两个功能:加密连接网络、有验证证书可以验证数据库)/TDE 加密(底层文件比如本地上的数据文件,它的存储是数据加密的,对数据层面的使用没有影响,也就是说文件加密再把文件拷贝出来之后,文件是加密的,不能直接使用,只能恢复到本身实例通过配置算法进行解密)/sql 洞察(提供一个将所有的 sql 操作在内部记录下来以方便排查风险)、云监控告警、RAM 控制(实例级别的控制权限如何分配去对应指针号以及很多 API 的控制权限是非常细化的,有一套语法去自定义这些授权)。
⑧日志管理:洞察日志(也就是上述 sql 洞察)/运行日志/慢日志。
(2)AliSQL 和读写分离
如图:
①首先介绍了 AliSQL 的核心特色功能:分为功能层面(比如闪回和线程池等)、性能方面(比如在缓存上面的优化:fast query cache )、稳定性层面(比如 faster ddl 还有基于语句规则的并发控制 CCL )。
注意:若对以上概念模糊可自行学习。
②然后是读写分离的介绍:重点讲解了只读实例(这里还有只读和高可用实例的对比,只读实例是作自应用的,而高可用实例是作主节点高可用的)、代理(有两种转发规则:可以只进到主和重的 hint 、主要针对事务的强一致性。这里还讲解了一些进阶的功能:最基本的读写分离功能、在事务开始之前将读的请求发射到只读节点上的事务拆分、分配读比重还可以控制多个只读节点的权重控制台、延迟阈值:超过阈值可以不把请求发射在只读节点上)
③最后是实例控制台管理的演示:包括一些功能,具体请自行去了解。
(3)云数据库管理 DMS:
如图:
①首先讲解了企业级数据库管理痛点的介绍:比如企业最大的特点就是数据、人流和管理很多,在保证安全管理的条件下如何进行管理是一个大痛点。
②为了解决痛点,这里提供了 dms 的八个解决方案:首先讲解了授权管理(因为有很多库,每个库可能都是一个授权系统,所以 dms 统一将所有的权限收回,自行做控制,只需要给一个有很高权限的 dms 账号即可,更细致的需要 dms 试品实现)。然后是敏感数据管理(因为敏感数据丢失影响会更大,所以这个是安全的要求,不管有是列或表的权限,都是不允许外人或者内部查看敏感数据的;敏感数据的权限细致到列权限,可以对敏感列作申请,申请通过之后才可查看。这里还提供了敏感字段的加密算法比如替换等)。然后还讲解了安全规则 DSL (主要适用于定制化也就是自定义的规则权限比如一些审批流程或者查询数据是否符和需要、扫描是否使用索引也就是数据运行了多少,如果不满足需要会自动拒绝执行)。然后讲解了操作审计(很多公司有审计类的要求,需要把审计精确到人)。sql 审核方案(这里有很多自定义安全规则,有内制的也有自己自定义的,比如一个表 sql 是否有主键或者一个实验字段是否有 comment ,很多条件和规则都可以自行实现,这个实现是通过上述安全规则做的。如果不满足三种安全规则可能会警告和拒绝,可以自行决定使用的方式和配置,若不满足规则可直接拒绝或者提示其优化后再提交)。无锁表结构变更(ddl 是很大的痛点,所以 dms 做了很多优化,比起市面上的 Oddl ,dms 支持的 ddl 种类更多而且无锁表结构变更的方式不一样,前者通过触发器实现,后者通过回放 bin log 实现,虽然时间长但是影响更小)/无锁数据变更(如果在执行大批量数据时,条件是没有索引的,通过人工不可能把大批量数据拆分成小批量,但是无锁数据变更可以自动化的寻找唯一键的字段,然后做小批量拆分,让影响更小)。DMS 数据追踪与恢复(通过回放 bin log 生成回滚 sql 做数据恢复)。
③DMS 有三种管控模式:上面的方式都基于安全协同,这里不作讲解。
(4)RDS 常见问题排除及弹性伸缩:
如图:
①第一讲解了基础问题排查,这里有很多场景比如连接问题,如何排查无法与库连接比如是否是因为网络的问题、主从延迟问题如何排查、大事务导致的 sql 阻塞如何排查。
②第二讲解了 DAS 的使用场景:即如何使用 das 去排查问题。
③第三演示了如何通过自动化的去实现 CPU 的弹性扩容和回缩。
(5) DAS 介绍和上云方案介绍
如图:
①第一讲解了 DAS 的诊断和优化。
②第二重点讲解了 DTS 工具:如果有上云需求,DTS 是首选的工具,因为它速度快;支持的数据库种类很多;容灾和容错性很高,哪怕中间出错了只要重启即可恢复;并且它很灵活,可以控制迁移和上云速度;支持很多场景比如支持云下上云、实例自监、跨阿里云的实例同步或者迁移。
(6)云数据库备份与恢复:相关内容上述有提及。
以上就是数据库训练营2022的全部课程。