线上业务系统的迁移思路【MySQL】

发布时间 2023-11-26 23:38:22作者: 品茗小筑

概论

在日常开发场景中,迁移数据库是非常常见的。但是线上业务系统进行迁移,并不是见一个简单的问题,必须考虑到迁移过程中线上系统的可用性、性能等。本文针对MySQL对迁移策略进行讨论。

实现方法

思路一:binlog

MySQL的binlog日志是一种二进制格式的日志,binlog记录所有的DDL和DML语句,以Event的形式记录,同时记录语句的执行时间。其主要的应用场景为:

  • 数据恢复:通过日志数据恢复因为数据库宕机等不可抗力产生的数据丢失。
  • 主从复制:多机备份,可以监听binlog日志,同步写库的更改。

这么一看,binlog简直完美符合数据迁移的场景。Mysql中的数据在大批量导出的时候会容易阻塞,导致数据库慢查询,然后我们的优化思路是在写数据到数据库的时候同时监听数据库binlog到其他库中。

好处:

  1. 不会因为数据导出的慢查询
  2. 监听binlog的方式可以使得代码解耦

思路二:双写

采用在写入数据库的时候再同时写入新的库,如果对性能要求比较高,可以将写入操作作为移步任务添加到一个线程安全队列。

参考文章

  1. https://www.cnblogs.com/rickiyang/p/13841811.html