热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

数据库无缝迁移方案设计

本篇来聊一聊数据库无缝迁移的方案,为什么要聊数据库无缝迁移方案呢?因为在企业的发展过程中,随着数据

本篇来聊一聊数据库无缝迁移的方案,为什么要聊数据库无缝迁移方案呢?因为在企业的发展过程中,随着数据量的增长,我们肯定会遇到需要迁移数据的场景。比如,单机型数据库到NoSQL,然后在到NewSQL,当我们的系统已经上线了,我们不可能停机来迁移数据,所以数据库无缝迁移方案值得好好说一说。

数据类型

我们存储在数据库中的数据大致可以分为两类:

  • 时效性数据
  • 永久性数据

什么是时效性数据?例如,饿了么的优惠券,滴滴出行的免费骑车券。对应的永久性数据就是一些日常数据,例如,订单信息,用户信息等等。


时效性数据迁移

时效性数据的迁移方案比较简单,直接双写就可以了。我们以滴滴出行的7天免费骑车券为例:

假设我们的数据要从MySQL迁移到MongoDB,那么我们直接双写MySQL和MongoDB即可,写多久呢?时效性多久我们就写多久。双写完成后,原数据库中的数据就已经过期了,我们直接干掉,然后读写新数据库就行了。示意图如下:

时效性数据的迁移相对比较简单。接下来我们看看永久性数据的迁移,毕竟这一块数据是大头。


永久性数据迁移

永久性数据的迁移稍微复杂点,我们需要引进一个中间存储(消息队列)。示意图如下:

首先我们把从库摘下来,然后将从库中的数据导入到MongoDB,同时数据双写到MySQL和消息队列。从库中的数据导入完成后,停止写入到MySQL,然后把消息队列中数据写入到MongoDB。示意图如下:

当将消息队列中的数据同步完成后就可以直接读写MongoDB了。


好的,那么关于数据库数据无缝迁移方案就讨论到这里。



推荐阅读
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 数据库基本介绍
    1、数据库基本知识概念:数据库:database(DB),是一种存储数据的仓库数据库是根据数据结构组织、存储和 ... [详细]
  • 在Ubuntu中安装MongoDB
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 架构师必读:日均500万数据,如何进行数据存储选型?
    点击上方关注我,选择“置顶或者星标”作者:麦田里的老农来源:https:zhuanlan.zhihu.comp37964096小编公司有一 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • 一、前言在数据库中,慢查询日志通常是用来进行优化数据库,MySQL中存在慢查询,Mongodb中也是如此。在Mongo中的慢查询属于Mon ... [详细]
  • hackingTeam是如何被黑的
    hackingTeam是如何被黑的 ... [详细]
  • 数据库进入全新时代,腾讯云发布五大数据库提前布局
    8月28日,腾讯云数据库在京正式启动战略升级,宣布未来将聚焦云原生、自治、超融合三大战略方向,以用户为中心,联接未来。并在现场面向全球用户同步发布五大战略级新品,包括数据库智能管家 ... [详细]
  • MySQL:互联网公司常用 分库分表
    本文目录一、数据库瓶颈IO瓶颈CPU瓶颈二、分库分表水平分库水平分表垂直分库垂直分表三、分库分表工具四、分库分表步骤五、分库分表问题非partit ... [详细]
  • 《Python3 网络爬虫开发实战》:高效实用的 MongoDB 文档存储
    NoSQL,全称NotOnlySQL,意为不仅仅是SQL,泛指非关系型数据库。NoSQL是基于键值对的,而且不需要经过SQL ... [详细]
  • 目录一、MySQL数据库1.简介2.用管理员身份登录3.密码相关操作4.SQL与NoSQL5.数据库重要概念二、MySQL基本语句1.基于库的增删改查2.基于表的增删改查3.基于记 ... [详细]
  • 目录摘要SQL的现在NoSQL,NotOnlySQL要分布式,也要SQL总结引用摘要毫不夸张的说,关系数据库是企业软件系统的核心,企业形形色色信息行为的背后,都有关系数据库的支撑。 ... [详细]
  • Qt提供了QtSql模块来提供平台独立的基于SQL的数据库操作。这里我们所说的“平台独立”,既包括操作系统平台,有包括各个数据库平台。另外, ... [详细]
author-avatar
v木易杨_920
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有