如何实现自建数据库向云数据库的无损迁移方案?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1103个文字,预计阅读时间需要5分钟。
前言:从自建数据库到云数据库的无损迁移方案的设计与实施,是基于以下背景:
在服务流量较少时,多个模块共用服务、共用数据库。随着QPS的提升,发现数据库因热点流量出现读写瓶颈。
前言
从自建数据库到云数据库的无损迁移方案的设计和实行,是基于以下背景:
- 在服务流量比较少时,多个模块共服务,共数据库。qps起来后,发现数据库因为热点流量,出现了读写瓶颈。
- 在迁移时,数据库选型为自建还是云数据库。因为运维能力在dba层面比较薄弱,暂时不考虑继续维护数据库生态,而使用云厂商的云数据库组件维护,而旧数据源是使用了自建数据库。并且,云数据库不开放定制化双写设置,内部的迁移计划粒度,也无法细化到某个表,并且做不到业务无损。
- 迁移过程,业务方期望用户无感,流量无损,不接受停机。
PS: 方案数据库选型无关,但本次方案的实行背景,是postgres。所以本次也贴上了过程中用到的命令。
方案设计
无损迁移的过程,核心思路,是如何保证a源和b源,达到相对可靠的双写状态,再基于这个状态,去把读取流量切到b。
操作细节
- 使用数据库底层命令,做到存量数据迁移。
- 使用mq做到,增量数据同步。
- 存量导入节点到mq上报,中间存在同步窗口期,丢数据。这个问题,通过提前上报mq增量数据,再同步存量数据,对修改操作,做到业务幂等,确保一定被执行1次。
本文共计1103个文字,预计阅读时间需要5分钟。
前言:从自建数据库到云数据库的无损迁移方案的设计与实施,是基于以下背景:
在服务流量较少时,多个模块共用服务、共用数据库。随着QPS的提升,发现数据库因热点流量出现读写瓶颈。
前言
从自建数据库到云数据库的无损迁移方案的设计和实行,是基于以下背景:
- 在服务流量比较少时,多个模块共服务,共数据库。qps起来后,发现数据库因为热点流量,出现了读写瓶颈。
- 在迁移时,数据库选型为自建还是云数据库。因为运维能力在dba层面比较薄弱,暂时不考虑继续维护数据库生态,而使用云厂商的云数据库组件维护,而旧数据源是使用了自建数据库。并且,云数据库不开放定制化双写设置,内部的迁移计划粒度,也无法细化到某个表,并且做不到业务无损。
- 迁移过程,业务方期望用户无感,流量无损,不接受停机。
PS: 方案数据库选型无关,但本次方案的实行背景,是postgres。所以本次也贴上了过程中用到的命令。
方案设计
无损迁移的过程,核心思路,是如何保证a源和b源,达到相对可靠的双写状态,再基于这个状态,去把读取流量切到b。
操作细节
- 使用数据库底层命令,做到存量数据迁移。
- 使用mq做到,增量数据同步。
- 存量导入节点到mq上报,中间存在同步窗口期,丢数据。这个问题,通过提前上报mq增量数据,再同步存量数据,对修改操作,做到业务幂等,确保一定被执行1次。

