开发者学习笔记【阿里云云数据库助理工程师(ACA)认证:数据库选型最佳实践(二)】
课程地址:https://edu.aliyun.com/course/3112080/lesson/19077
数据库选型最佳实践(二)
三、上云姿势的选择:备份,原生复制,还是DTS?
1.上云姿势的选择
(1)备份上云
①Dump 数据,逻辑备份再恢复
②XtraBackup 物理备份上传到阿里云上再恢复
③DBS 备份上云,是阿里云提供的备份工具,可以传到 IDC 做数据的备份。
(2)原生复制上云
①搭建主从复制
②异步复制、半同步复制
③Change master,实现数据库从 IDC 到阿里云。
(3)云原生工具上云
①DTS 工具,实现不停机上云
②全量复制+增量复制;全量复制完成全部历史数据的上云,增量复制可以实现追增量的复制,短时间的停机就可以实现业务的上云。
2.DTS 数据库传输服务:数据库上云的利器
DTS 支持多种数据库的选择,可以采用 DTS 作为数据传输服务的工具。它支持非常丰富的数据源,多种商业的数据库、开源数据库,还具备事务日志解析的能力。它是支持跨引擎、跨平台、跨版本的数据传输。也可以记录断点续传能力以及节点同城容灾,最大限度保障了同步效率以及可用性。
3.DTS 技术架构
源库支持 MySQL 、SQL Server 等,目标库同样支持数据库的选择。阿里云的 DTS 云服务提供了用户控制台、OpenAPI、调度服务。
调度服务会配置源端库和目标库的 IP 地址和密码进入预检查的环节,通过预检查之后开始做全量抽查的 ETL 抽取。将抽取到的数据通过 Writer 进行回放,完成全量数据库的抽取之后开始进行增量数据库的抽取,抽取完成之后存入 DStore 之中。
最后通过 Writer 写入目标数据库。以及可以做数据源的订阅,例如在源库上对于 MySQL 做数据的操作,DTS 可以产生订阅,以消息的方式写入 kafka、流计算等。然而把源库数据产生的变更写入 hadoop或其它自定义业务,从而完成数据异构的转换。
4.数据库零停机上云迁移
第一个阶段是结构的迁移,结构迁移是做表结构的迁移。完成表结构迁移后会进入到全量数据迁移的过程,在做全量数据迁移的同时,会记录增量数据的拉取,一旦完成全量数据之后,开始做增量数据在目标库上的回放。一旦两者追平之后,源库和目标库是保持了数据的一致。这时需要业务从源库切换到目标库,从而完成了数据从源库到目标库的迁移过程。通过 DTS 可以实现数据库零停机的云上迁移。
5.迁移、同步阶段完成情况视图
在视图中可以清楚的看到预检查、增量数据服务的百分比和全量迁移完成情况百分比,以及结构迁移和增量迁移完成情况百分比等相关信息在控制台中查看。
四、业务不同的发展阶段,数据库和 DBA 如何选择?
1.业务各个发展阶段的数据库如何选型?
当有一个新业务时,在这个业务初创期可以采用开源数据库,比如 MySQL,因为它在社区中拥有好的用户基础。当业务上线时,可以采用读写分离,因为读写分离在阿里的 RDS 数据库提供了读写分离,可以在不该业务的前提之下实现数据库的读写分离。通过读写分离即不更改业务,又增强了业务数据库横向扩展的能力。当业务成长起来之后可以无缝迁移到 POLARDB 上,定位原生数据库,POLARDB 比 MySQL 更加强大的数据库选择。在强大的同时提供了跟 MySQL 100%的兼容性,也就是说把业务从 MySQL 迁移到 POLARDB 不需要做任何业务层面的修改,从而实现数据处理能力的增强。当业务发展起来之后,需要做微服务的改造。在做业务微服务改造的同时,需要对数据库进行垂直拆分。垂直拆分指的是原本是用一套数据库承载多个数据库模块,多个业务模块。现在要基于微服务,对模块进行划分,把不同的模块数据拆分到不同的数据库中来做承载。微服务可以解决业务和数据库横向扩展的问题,但是也会带来一定的隐患。把数据拆散到多个数据库实例中进行承载之后,还要把数据聚合到一个全量聚合仓库中去。比如可以采用 POLARDB 作为全量聚合仓库,有跨垂直拆分库的联合查询的需求时经常在全量聚合仓库中完成操作。最后当业务逐渐壮大起来之后,需要做数据库的水平拆分,水平拆分的过程之中为了保证水平拆分的性能,需要对业务进行重构。当业务可以引领一方潮流时,经常需要灾备多活。比如淘宝,经历了从单机房扩展到多机房,进而做到多机房承载不同的流量来做多活。采用单元化改造的模式,从而承载淘宝这样的大体量业务架构。
2.上云、DBA 如何做职业的规划与选择?
把 DBA 分为三大类,运维 DBA、应用 DBA 和业务 DBA。对于运维 DBA 来说,它们的功能是对数据库安装和配置、备份和容灾、HA 高可用、升级和扩容。这些工作是在 IDC 自建或者是阿里云 ECS 自建数据库的 DBA 经常要做的工作,这是 DBA 的初级阶段。因为它所做的工作都属于重复性的劳动。上云后并不意味着 DBA 就无所事事,DBA 经常会转型成为应用的 DBA。应用 DBA 经常做的事情是技术选型、容量规划、性能优化和运维自动化。
应用 DBA 相对于自建的运维 DBA 而言,意味着职业生涯的提高和重新选择。进一步可以进阶为业务 DBA。业务 DBA 需要做的是结合特定业务场景的数据库设计和数据生命周期的数据管理,从而帮助业务通过数据创造价值。业务 DBA 是 DBA 的高级形态。只有上云之后才能够转型成为应用 DBA,从而进阶为业务 DBA。