iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql迁移方案有哪些
  • 827
分享到

mysql迁移方案有哪些

2023-06-20 19:06:16 827人浏览 八月长安
摘要

mysql迁移方案有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。方案一:老数据备份由于log本身不是最关键的数据,但是也要求实时性高(用于实时查询问题),所以一开始的

mysql迁移方案有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。


方案一:老数据备份

由于log本身不是最关键的数据,但是也要求实时性高(用于实时查询问题),所以一开始的想法是核心的基础存储还是保持不变,较老的数据迁移出去,毕竟突然去查询一年前的操作记录的概率很小,如果突然要查,可以走离线。设计的话,我们只需要一个定时脚本,每天在凌晨4点左右(业务低峰期)抽数据。抽出的数据可以上报到一些离线存储(一般公司都有基于Hive的数仓之类的),这样就可以保持线上的video_log的数据不会一直增长。

mysql迁移方案有哪些

方案二:分表

分表也是一种解决方案,相对方案一的好处就是,所有的数据都支持实时查,缺点是代码要改造了。

  • 首先确认sharding key,因为video_log是和video绑定的,所以自然而然选择video_id作为我们的sharding key

  • 按什么分表确定了,接下来确认下分多少张表。先定个小目标,支撑3年。每张表最大数据量为1个亿(由于我们的查询简单),按照上面的统计,我们3年大概:3*1.8=5.4亿,那么大概需要5.4/1≈6张表。

mysql迁移方案有哪些

接下来就是改造代码了,得解决新老数据读写的问题。

  • 新数据的插入直接插入新表

  • 由于log表只有insert,所以不存在update、delete这些操作,不需要考虑这些场景。

  • 分表后,一个video的log存在两张表(老表和新表),所以临时两张表都查,然后做个合并

  • 同步老数据到新表中

  • 下线读取老表的代码

mysql迁移方案有哪些

方案三:迁移至tidb

方案二的缺点比较明显,3年后咋办,继续拆表?感觉始终有个历史债在那。于是我们的目光定位到了tidb,tidb是分布式数据库,接入了tidb,我们就无需关心分表了,这些tidb都帮我们做了,它会自己做节点的扩容。由于是分布式的,所以tidb的主键是无序的,这点很重要。
整个流程大概分为以下4个步骤:

  1. 先双写(记录下刚开始双写时的Mysql的id,在此id前的肯定都是老数据)

  2. 同步老数据(通过第一步记录的id来区分)

  3. 切读(老数据同步完了)

  4. 下双写

mysql迁移方案有哪些

重点说下同步老数据遇到的坑

迁移至tidb,看似很简单,其实在job脚本这里隐藏着几个坑。

  • 要考虑万一job中途断了,重新启动咋办,撇开重头跑数据的时间成本,已经同步的数据重新跑会重复,还要考虑重复数据的问题。解决重复数据的问题,可以对老表新加一个字段标识是否已同步,每次同步完,更新下字段。缺点:线上数据大,加个字段不太安全,可能造成线上阻塞。

  • 既然加个字段不好,那就用现有的主键id做约束,把主键id也同步过去,这样就算脚本重启,从头开始跑的,也因为相同的主健已经插入过,那么就会报错跳过。看似很完美,然而tidb是分布式的,主键id不是连续的,那么可能出现这样一种情况。正常的业务数据插入tidb,tidb分配的主键id和mysql同步的主键id重复,那么不管是谁,最后插入的那一条肯定是失败的。

mysql迁移方案有哪些

最终同步脚本方案

综合考虑数据的重复性,job重启效率性,和整个同步的效率性,我大概做出以下方案:

  1. 任务分批提升效率:首先根据处理能力和预期完成时间,先对老数据进行分批,大概分了10批,10个job去跑不同批次的数据,互不干扰,且每次批量更新100条。

  2. 记录状态,重启自动恢复到断点:每次同步数据后记录下当前同步的位置(redis记录下当前的id),就算重启也可以从Redis里拿到之前的更新位置,接着更新。

  3. 避免主键冲突:同步除了主键之外的所有字段(不同步主键)

最终通过方案三的四个切换步骤+高效率的同步脚本平稳的完成了数据的迁移

关于mysql迁移方案有哪些问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: mysql迁移方案有哪些

本文链接: https://www.lsjlt.com/news/299601.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql迁移方案有哪些
    mysql迁移方案有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。方案一:老数据备份由于log本身不是最关键的数据,但是也要求实时性高(用于实时查询问题),所以一开始的...
    99+
    2023-06-20
  • java代码迁移的方案有哪些
    迁移Java代码有以下几种常见的方案: 重写代码:将原有的代码逐行重写,适合在迁移过程中进行重构和优化。 逐步重构:根据代码...
    99+
    2023-10-22
    java
  • 数据库中迁移服务器方案有哪些
    这篇文章将为大家详细讲解有关数据库中迁移服务器方案有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 本次迁移数据库使用了两种方案方案一:...
    99+
    2022-10-19
  • 云服务器数据迁移解决方案有哪些
    数据库迁移:将服务器上的数据库数据迁移到另一个云服务器上,确保数据的一致性和安全性。 数据库集群迁移:将服务器上的多个数据库进行集群迁移,以便能够同时迁移多个数据库。 数据迁移工具:使用数据迁移工具,可以方便地将服务器上的数据库数据迁移到...
    99+
    2023-10-27
    解决方案 服务器 数据
  • MySQL迁移升级解决方案
    任务背景 ...
    99+
    2022-10-18
  • mysql数据库迁移工具有哪些
    1. mysqldump:MySQL自带的备份工具,可以将数据库导出为SQL文件,再将SQL文件导入到目标数据库中。2. mysql...
    99+
    2023-06-03
    mysql数据库迁移 mysql数据库
  • 不同场景下 MySQL 的迁移方案
    一、为什么要迁移 MySQL 迁移是 DBA 日常维护中的一个工作。迁移,究其本义,无非是把实际存在的物体挪走,保证该物体的完整性以及延续性。就像柔软的沙滩上,两个天真无邪的小孩,把一堆沙子挪向其他地方,铸...
    99+
    2022-05-21
    mysql
  • 使用ogg(goldengate)方案将Oracle迁移到MySQL
    下面讲讲关于使用ogg(goldengate)方案将Oracle迁移到MySQL,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完使用ogg(goldengate)方案将Oracl...
    99+
    2022-10-18
  • MySQL容灾方案有哪些
    这篇文章主要介绍了MySQL容灾方案有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL容灾方案有哪些文章都会有所收获,下面我们一起来看看吧。MySQL容灾方案容灾方案目前有以下三种容灾方案可供参考:...
    99+
    2023-07-05
  • sqlite3迁移mysql可能遇到的问题有哪些
    小编给大家分享一下sqlite3迁移mysql可能遇到的问题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!问题列表1、sq...
    99+
    2022-10-18
  • 云服务器数据迁移方法有哪些
    1. 介绍 随着云计算技术的发展,越来越多的企业选择将自己的业务迁移到云服务器上。但是,在迁移过程中,数据迁移是一个非常重要的环节。本文将介绍云服务器数据迁移的方法。 2. 云服务器数据迁移方法 2.1. 传统数据迁移方法 传统的数据迁移...
    99+
    2023-10-27
    服务器 方法 数据
  • Oracle数据文件迁移的方法有哪些
    这篇文章主要讲解了“Oracle数据文件迁移的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle数据文件迁移的方法有哪些”吧!(一) 方法...
    99+
    2022-10-19
  • 云服务器迁移方案文档在哪
    云服务器迁移方案文档可以从公开渠道(如Stack Overflow、GitHub)或云计算社区或服务提供商(如AWS、Azure或CloudFoundry)处获取。这些文档通常包括迁移所需的详细信息,例如数据备份、转移过程、服务水平协议、安...
    99+
    2023-10-27
    文档 服务器 方案
  • 云服务器迁移方案
    云服务器迁移是指将服务器从一台物理服务器迁移到另一台物理服务器上,从而实现数据迁移的过程。 在进行服务器迁移之前,需要确保需要对系统、应用程序等进行重新安装和配置,这通常需要使用云服务提供商提供的迁移工具来实现。在迁移过程中,需要将数据备...
    99+
    2023-10-26
    服务器 方案
  • mysql迁移时经常会出现的有哪些错误
    本文主要给大家介绍mysql迁移时经常会出现的有哪些错误,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下mysql迁移时经常会出现的有哪些错误吧。错误...
    99+
    2022-10-18
  • oracle迁移到mysql分库分表方案之——ogg(goldengate)
    之前文章主要介绍了oracle 迁移到mysql,主要是原表原结构迁移,但是实际运维中会发现,到mysql以后需要分库和分表的拆分操作,这个时候,用ogg来做,也是很强大好用的。主要结合ogg的2个参数 参...
    99+
    2022-10-18
  • 不停机双写迁移方案
    这个是我们常用的一种迁移方案,比较靠谱一些,不用停机,不用看北京凌晨4点的风景 简单来说,就是在线上系统里面,之前所有写库的地方,增删改操作,都除了对老库增删改,都加上对新库的增删改,这就是所谓双写,同时写俩库,老库和新库。 然后系统部署...
    99+
    2017-03-14
    不停机双写迁移方案
  • mysql性能调优方案有哪些
    MySQL性能调优方案有以下几种:1. 索引优化:通过合理创建和使用索引来提高查询性能。可以使用EXPLAIN语句来分析查询语句的执...
    99+
    2023-10-23
    mysql
  • MySQL安全配置方案有哪些
    这篇文章给大家分享的是有关MySQL安全配置方案有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MySQL安全配置方案  新建一个账户,给予账户在所使用数据库的所有权限即可。...
    99+
    2022-10-19
  • Oracle迁移到MySQL性能下降的注意点有哪些
    Oracle迁移到MySQL性能下降的注意点有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 最近有较多的客户系统由原来...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作