如何去平滑地迁移数据库中的数据

来源: 云巴巴 2022-11-21 11:16:09

 

    你可能会认为:数据迁移无非是将数据从一个数据库拷贝到另一个数据库,可以通过 MySQL 主从同步的方式做到准实时的数据拷贝;也可以通过 mysqldump 工具将源库的数据导出,再导入到新库,这有什么复杂的呢?

    其实,这两种方式只能支持单库到单库的迁移,无法支持单库到多库多表的场景。而且即便是单库到单库的迁移,迁移过程也需要满足以下几个目标,迁移应该是在线的迁移,也就是在迁移的同时还会有数据的写入,数据应该保证完整性,也就是说在迁移之后需要保证新的库和旧的库的数据是一致的;迁移的过程需要做到可以回滚,这样一旦迁移的过程中出现问题,可以立刻回滚到源库,不会对系统的可用性造成影响。

    如果你使用 Binlog 同步的方式,在同步完成后再修改代码,将主库修改为新的数据库,这样就不满足可回滚的要求,一旦迁移后发现问题,由于已经有增量的数据写入了新库而没有写入旧库,不可能再将数据库改成旧库。

    数据库的迁移,其实说起来也很简单,它可以分为以下几个步骤:将新的库配置为源库的从库,用来同步数据;如果需要将数据同步到多库多表,那么可以使用一些第三方工具获取 Binlog 的增量日志(比如开源工具 Canal),在获取增量日志之后就可以按照分库分表的逻辑写入到新的库表中了。同时,我们需要改造业务代码,在数据写入的时候,不仅要写入旧库,也要写入新库。当然,基于性能的考虑,我们可以异步地写入新库,只要保证旧库写入成功即可。但是,我们需要注意的是,需要将写入新库失败的数据记录在单独的日志中,这样方便后续对这些数据补写,保证新库和旧库的数据一致性。

    然后,我们就可以开始校验数据了。由于数据库中数据量很大,做全量的数据校验不太现实。你可以抽取部分数据,具体数据量依据总体数据量而定,只要保证这些数据是一致的就可以。

如果一切顺利,我们就可以将读流量切换到新库了。

    由于有双写的存在,所以在切换的过程中出现任何的问题,都可以将读写流量随时切换到旧库去,保障系统的性能。在观察了几天发现数据的迁移没有问题之后,就可以将数据库的双写改造成只写新库,数据的迁移也就完成了。

 

 

更多产品了解

欢迎扫码加入云巴巴企业数字化交流服务群

产品交流、问题咨询、专业测评

都在这里!

 

评论列表

为你推荐

阿里云数据库获全球“强劲表现者”

阿里云数据库获全球“强劲表现者”

其中大多数企业的IT系统有三个基本组件—— 数据库与操作系统,中间件。 它们不仅被称为系统软件的“三驾马车”,也是互联网应用和企业信息管理系统存储和管理数据的核心平台。 阿里云曾经成为数据库领域最领先的企业之一。

2020-02-27 17:35:54

从“新基建”看国产分布式数据库的大机遇

从“新基建”看国产分布式数据库的大机遇

“新兴基础设施建设”即“新基建”,指发力于科技端的基础设施建设,主要包括七大领域:5G基建、特高压、城际高速铁路和城际轨道交通、新能源汽车充电桩、大数据中心、人工智能和工业互联网等七个领域。

2020-04-16 17:36:49

分布式数据库简介与DDBS相关问题

分布式数据库简介与DDBS相关问题

  本文将针对“分布式数据库简介与DDBS相关问题”作简要叙述。     随着中国文化传统的数据库管理信息科学技术日趋成熟、计算机系统进行分析网络安全教育技术的飞速发展和应用研究范围的扩充,数据库应用已经成为一个普遍建立于计算机网络之上。

2020-04-17 19:57:38

引进源代码发展国产数据库,可行吗?

引进源代码发展国产数据库,可行吗?

今天为大家解答一个疑问:引进源代码发展国产数据库,可行吗? 国内引进的源代码数据库,这在上个世纪对有关人不敢想的数据库开发。 现,经济社会发展,富裕;而IBM也愿意迎合我国人民自身对企业本地化的需求,将搁置多年的Informix源代码可以取出“多吃一码”,

2020-04-17 17:59:05

10个关于数据库设计的最佳实践(上)

10个关于数据库设计的最佳实践(上)

上篇文章中,小编已经讲了为什么数据库的设计是非常重要的,本位就来和朋友们介绍几个个关于数据库设计的最佳实践。 将所有人的观点列入考量 为了设计一个良好的数据库,必须考虑到所有相关利益攸关方的意见。建立数据库之前,去收集有关他们所期望的数据库和数据库的操

2022-11-22 15:47:31

阿里云,持续领跑中国关系型数据库!

阿里云,持续领跑中国关系型数据库!

关系型数据库作为主流产品,占据了超过60%的市场份额

2022-02-23 11:08:12

严选云产品

考试星院校招生考试全流程解决方案 考试星帮助企业搭建稳定高效的全流程在线考试体系,满足招生考试、培训考试、竞赛活动、招聘考试等多种考试场景。
深维智信销售会话智能分析平台 深维智信销售会话智能分析平台,通过自动化销售会话汇总、转录、分析,全方位展示沟通关键数据,是数据驱动销售的AI-SaaS智能分析平台。真实、全面、实时有价值的数据,整合销售全周期持续数据流,客户转化率的持续提升。
数云全渠道消费者运营系统 数云全渠道消费者运营系统,帮助企业打通全渠道消费者数据,打破数据孤岛,积累一方数据资产,帮助企业搭建全渠道会员忠诚度体系,阶梯性成长持续提升会员转化和粘性。帮助企业实现全旅程精准智能营销,优化消费体验,提升客户价值。
火山引擎飞连 虚拟专用网络(VPN) 火山引擎飞连—虚拟专用网络(VPN)是一款来自于字节跳动多年内部自用的软件化产品。它帮助企业客户在公共互联网之上建立一条稳定安全的加密隧道,使得员工能够随时随地安全接入到公司内网。
芯盾时代 双因素认证2FA 芯盾时代双因素认证Two-factor Authentication(2FA)通过移动安全认证技术与标准认证插件,融合推送、扫码、动态口令、生物认证等技术,为客户提供多种移动安全免密认证方式。支持Radius、LDAP、Web SDK、Scheme、Plugin、API等标准集成方案,简化集成工作,无须对目标系统进行改造便可实现密码认证之外的第二因素认证,满足安全合规要求;支持用户管理、认证管理、应用管理、授权管理、审计管理等功能的可视化。
Tableau Server 使用Tableau Server实现受管控的大规模自助式分析。

甄选10000+数字化产品 为您免费使用

申请试用