您好,欢迎访问数据库运维|优化|安装|迁移|服务官网!
13261661949
按图再谈数据库迁移之路-故障处理-数据库运维|优化|安装|迁移|服务_uDBok.com
联系我们

按图再谈数据库迁移之路-故障处理-数据库运维|优化|安装|迁移|服务_uDBok.com

地址:北京市昌平区高新经济开发区
手机:13261661949

咨询热线13261661949

按图再谈数据库迁移之路

发布时间:2021-03-16 01:41:45人气:2775

数据库搬迁,是个陈词滥调的问题,之前也曾写过一篇文章。近期,针对这一课题,自己有了些新的思考,下面将详细展开谈谈。在这之前,我先谈谈数据库搬迁的现实需求。这也算是目前职业开展的一个小总结。
1. 背景:搬迁之源,多变之秋
 人生基本上便是两件事,选题和解题。最好的人生是在每个要害点上,既选对题,又解好题。人生最大的苦楚在于解对了题,但选错了题,并且还不知道自己选错了题。正如人生最大的惋惜便是,不是你不可,而是你本可以。
? 数据规划大幅添加
近些年来,信息数据呈快速增长态势。如下图所示,全球数据量总和,估计将从 2018 年的 33ZB 增至 2025年的 175ZB。国内数据体量在未来 7年将完结复合增速 30%以上的快速增长,并在 2025年成为与欧洲、中东、非洲、亚太和美国等地区相比体量最大的区域。数据的爆发式增长,导致对数据存储容量、数据核算需求有个更好的要求,这也催生企业在根底设施层面不断改造,进而不断推动数据库向前进一步开展。
数据库迁移来看,也验证了这一趋势。全体商场呈现稳定的开展趋势,最近的数据表明,国内的数据库商场已经达到200亿规划。
数据库迁移
? 开源计划,大行其道
开源数据库,其源代码具备全球同享、免费等特色,开发者可在其源码中修正或运用。在近一、二十年来,越来越多的企业将开源计划作为构建底层支撑的可选答案。特别是随着互联网的鼓起,很多互联网企业挑选运用了开源数据库产品,也加快这些产品的成熟与开展。这其间MySQL、PostgreSQL、MongoDB 和 Redis 是当时开源数据库最为重要的参与者。
? 数据上云,大势所趋
从2017至 2018年,整个数据库商场增长了 18.4%,其间云数据库增长贡献 68%。以AWS、Microsoft、Alibaba为代表的云厂商,取得了快速开展,极大地重塑了全球供应商格局。国内互联网科技巨头,纷繁布局数据库产业,借力云核算完结数据库等根底软件领域的迭代与超越。如下图的数据库规划排名,云数据库厂商均取得不俗的增长,最新数据则更是如此。甚至有组织预测,今明两年从数据库布置形状上看,云布置数据库会超越传统布置方法。
? 国产化趋势显着
正如下图所示,国内数据库商场仍然为欧美垄断,但国产化趋势已非常显着。以国产自研或开源定制道路的厂商层出不求,从最新的调查成果来看,已经有130+的国产数据库厂商初选。
从一叶扁舟到百舸争流,传统国产数据库历经长时间艰难探究,已逐渐崭露头角。国外大厂长时间垄断国内数据库商场。Oracle、IBM 和 Microsoft 等老牌厂商凭借先发优势在商场份额中占有了有利位置。国产数据库起步较晚,但潜力巨大。正如下图可见,国产数据库占比正不断添加。
? 总结:多种改变,驱动搬迁
综上所述,从数据规划体量的增大,到开源商业的改变,再到云化趋势显着、国产化趋势加重;而这些改变都带来同一个诉求,那便是数据库搬迁。展开来说,是如何完结异构数据库搬迁?完结体系架构完全不同的数据库之间的搬迁(例如从单机到分布式)?完结从线下到云上的搬迁?完结在线的、不终端业务的搬迁?等等。许多上述问题,对搬迁提出了非常高的要求。本文下面测验从搬迁的多个阶段来论述,需求哪些才能才能完结这一进程。
2. 数据库搬迁之路
 人生基本上便是两件事,选题和解题。最好的人生是在每个要害点上,既选对题,又解好题。人生最大的苦楚在于解对了题,但选错了题,并且还不知道自己选错了题。正如人生最大的惋惜便是,不是你不可,而是你本可以。
在实践的搬迁中,是一个比较杂乱的进程,可依据阶段做个拆解。
1).搬迁评价阶段
此阶段是完结搬迁前的评价,为后续搬迁改造、搬迁进程做好铺垫工作
? 数据库画像
数据库画像成果,可为后续选型评价、架构规划供给依据。
系统级
搜集系统级信息,包含但不限于硬件(CPU、MEM、NET、DISK)、操作系统(内核、参数、安全策略等)、功用(系统顶峰期24小时负载)等
实例级
搜集实例级信息,包含但不限于架构(单机/集群、版本等)、参数(数据库参数等)、数据规划(表、索引等空间运用)、运转态信息(如QPS、TPS、会话、业务等)
方针级
搜集方针级信息,包含但不限于结构信息(表、分区、分片、索引、视图、序列等)、统计信息、拜访特征(读写比、频率等)、预警类(如大表、杂乱结构、DBLink等)
句子级
搜集句子级信息,包含但不限于SQL文本(全量)、执行特征(次数、响应时间等)、执行计划。
运用级
搜集杂乱运用信息,包含但不限于核算文本(如存储进程、触发器、函数等)、 执行特征(次数、响应时间等)
? 运用画像
运用画像成果,为后边运用改造做好铺垫。
运用拓扑
搜集运用架构、运用与DB关系、运用拜访特征等。
? 危险评价
针对上面搜集的数据库、运用画像信息,针对重点危险点做出评价。
数据库架构
源库运用集群、分库分表等架构,做出提示。
数据库结构
源库运用杂乱结构(如分区表)、不支撑结构(LOB、可更新视图等),做出提示。
数据库句子
源库运用杂乱SQL(如多表相关)、特殊语法或方言等给出提示。
数据库运用逻辑
源库很多运用存储进程、触发器、函数等。
运用架构
运用运用何种拜访方法(如java、c、go等),对于某些旧有的方法予以提示。
功用维度
源库存在显着的功用拜访顶峰,显着的热点方针。
规划维度
源端数据库整体或单体方针规划较大的状况。
? 选型主张
依据上面搜集信息及危险评价内容,给出选型的主张。这儿存在几个难点,一个是多方针数据库的根底才能抽象,一个是两者的适配评价。功用上包含两部分:
方针端建模
方针端在架构、结构、运用、功用指标等方面的根底抽象。
评价适配主张
依据源端和方针端状况,结合危险及功用要求给出适配选型主张。
2).搬迁改造阶段
? 方针改造
这一阶段首要是通过结构映射及不兼容提示,来削减改造工作量。
映射标准
适配多方针端给出结构映射标准。
结构改造
根据给定输入,输出改造后结构。或许存在非一一对应的状况,可依据源与方针的差异,异构改造。
不兼容提示
对于不兼容的状况,给出文字提示,人工介入。
? 句子改造
这一阶段首要通过句子改写,削减改造工作量;同时供给增强功用,满意句子改造后的测验等需求。
SQL改造
根据给定输入,给出改造后的语法。
不兼容提示
对于不兼容的状况,给出文字提示,人工介入。
增强-执行计划比照
可比照两边执行计划,方便研发优化句子写法。
增强-功用比照
可比照两边执行功率,方便研发优化。此处需确保同等测验环境。
增强-SQL自主优化
供给优化改写才能,而非根据简单规矩。此处需注意,语义等价性问题。
? 运用改造
此处运用是指数据内置的核算才能(如存储进程等)。这一阶段首要是通过逻辑改写,削减人工工作量。在完结上,一般主张运用外部程序逻辑(如java)进行处理,而不是改造为方针端内部核算运用。原因是尽量削减数据库耦合。此处,存在较多难点,且需求人工查看改造后的语义是否正确。
运用改造
根据给定输入,给出改造后的完结(引荐java)。
不兼容提示
对于不兼容的状况,给出文字提示,人工介入。
运用校验
比照两侧的完结,验证处理逻辑是否共同。
3).搬迁数据阶段
? 全量/增量数据搬迁
完结异构数据库间的数据搬迁工作。首要难点是功率、准确性。
全量搬迁
增量数据搬迁
根据指定时间戳后的增量搬迁才能
增强-分拆、合并才能
支撑一拆多,多合一搬迁才能。
增强-搬迁核算才能
支撑在搬迁实时核算才能(如lookup)。
增强-通用异构适配才能
一致搬迁才能,不依赖某种库。
增强-供给可装备UI
供给可装备同步界面,简化操作。
增强-数据转化才能
供给字符集、时区等转化才能。
? 数据比照
见后边说明
4).在线运转阶段
? 数据同步
在线运转时,需供给数据库端的异构同步才能,满意业务随时回迁的需求。
实时同步
供给异构数据库间数据实时同步才能,难点在于大吞吐、实时性。
增强-细粒度同步
支撑库、用户、表同步才能。
增强-同步核算才能
支撑在同步的实时核算才能(如lookup) ,难点在于功率。
? 数据比照
数据比照,是用户比照双线运转的基本要求,需求满意实时比照并统筹功率。
异构比照
供给异构数据源之间全量、增量数据比照才能。
增强-细粒度比照
支撑库、用户、表、记录等级比照才能。
增强-数据补差
供给差异数据的双向补齐才能。
? 数据路由
数据路由,为业务供给一致数据库拜访进口,并根据此供给双路控制才能,可做到按流量、按读写、按拜访类别(生产、测验)等做数据拜访路由。
? 根底运维
此部分的才能比较多,本质便是同时供给异构数据库在线同步运维才能。例如包含一致变更、一致导入导出、一致授权、一致审计等。尽量从运维侧视点来看,后边是一套逻辑库。
 

推荐资讯

13261661949