文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何实现MySQL数据库的无缝迁移

2024-04-02 19:55

关注

这篇文章主要介绍如何实现MySQL数据库的无缝迁移,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

MySQL数据库的无缝迁移问题?
问:在平时的开始过程中,由于经常“需求理解,架构设计,需求变更”等多种原因,导致系统运行一段时间后,数据库的表结构需要变更,如何实现尽量短的停机,实现无缝的迁移?
我开玩笑说,最好的解决办法就是不迁移。不迁移肯定最好,这要依赖于非常好的设计,在前期架构设计的时候能够考虑到需求可能的变更,数据库设计也可以根据业务来进行一定程度的抽象。这可能有点太理想,不过迁移数据,始终是个不可避免的问题。下面说下一般的迁移方案。
定点停机迁移
就像那位朋友说的,在一个月黑风高的夜晚,停掉应用,用事先写好的迁移程序,把MySQL 数据库数据迁移到新结构的MySQL数据库中。完成后,切换应用。最大的缺点就是随着数据量的增加停机时间会变得非常长。
MySQL binlog方案
MySQL 的迁移可以考虑MySQL的主从复制replication的特性,解析binlog日志出来,然后根据新的业务特点设计的数据库结构,把数据写入到新的 数据库,运行迁移过程不需要停机。在数据迁移基本上完成的时候,停掉前段应用,等待迁移全部完成,切换应用到新库。停机时间非常短,只需要几乎1-2分钟 或者更少。
触发器方案
备份老的MySQL数据表结构到新的MySQL数据库,在新库创建新的表结构,更改老的数据库表,创建 触发器,让数据写入的时候同时写入到的新的MySQL表。dump老的MySQL的数据,导入到新的MySQL,这是新的MySQL表结构的表应该已经有 相应的数据了。然后开启主从复制,让其达到跟主库数据一致。切换应用,迁移到的方案。停机时间非常短,只需要几乎1-2分钟或者更少。
MySQL udf方案
MySQL 的udf允许你开发自己的函数集成到MySQL中,这样你可以很方便的在数据写入的时候同时写到的其他地方。缺点是开发成本大,需要对MySQL udf有了解。也可以用现成的memcached_functions_MySQL和lib_MySQLudf_json来实现,你就不需要编写udf函 数了,只需要实现一个memcached的服务端来接受数据,然后解析json到新的数据库就OK了。memcached协议非常简单,自己实现起来也很 容易。这种方案的迁移时间也会非常短。
中间件方案
这种方案必须要你的应用连接数据使用了类似中间层的方案,你只需要在中间层增加同时往新库写数据就OK了。这种方案的依赖比较大,相信小一点的公司可能都没有条件。

以上是“如何实现MySQL数据库的无缝迁移”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯