阿里云数据库迁移手记

如果没必要,不要去迁移。如果非要迁移,列出服务迁移清单,最后建议两个人完成这个工作,一个操作,一个确认操作。提前通知所有相关开发人员,不要在数据迁移过程中执行数据库变更操作。

为了便于管理,我这里的 10 多个系统(姑且认为十个)共用一个阿里云 RDS 实例。访问量基本最核心的一个占了 95% 以上的访问量。数据库基本上也只这样的比例。我们就把这些系统按照类别分为两类:核心系统和非核心系统。

数据库迁移规划,为当前的非核心系统单独购置一台阿里云 RDS 实例。虽然是非核心业务,但是也不能停机迁移数据库。不停机迁移也很坑的,这个后面会谈到。

数据同步

阿里云的数据同步包括三步:

  1. 库表结构迁移
  2. 全量迁移
  3. 增量迁移

其实还有一步,双向同步,也是坑。如果能停服迁移数据库,就停服迁移数据库。

内部系统迁移尝试

首先迁移内部的 OA 和 CRM 系统,这个比较简单,由于访问量不多,当数据同步完成以后,重复部署服务,生成数据库连接到新数据库即可。

外部非核心大系统

这个系统相对来说是非核心系统中比较核心的,数据库比较到,数据在百 GB 规模。上周末已经启动了同步,但是今天上午不小心删除了同步任务,有 2 个小时的数据不同步,不得已,需要再次创建数据同步任务。新库没有清理数据,好几次全量迁移失败。

外部非核心中系统

还是出问题了。迁移比较顺利,中午迁移完毕以后,下午客户还是报问题了,有两张订单重号(由于业务原因,不能加唯一性限制,但是也可以修,不过最近不再这个系统,能用就不修)。解决方式也比较粗暴,让客户作废这两个订单,再重新开单。

其他非核心种系统

比较简单,比如最小的一个服务只有 不到 条数据记录。

常见问题

数据迁移后,如何保证数据的一致性?
如果服务允许一定时间的服务不可用,建议把旧的数据服务停掉,然后把新的数据服务停掉,然后再启动新服务。如果不允许服务不可用,可以开始数据双向同步,不过问题更多,如果需要双向同步,还是申请停服升级吧。

旧数据库什么时间删除?
建议多保留几天,比如 3 天或者 1 周。

阿里云数据同步服务有一些 bug,不知道我是怎么触发了,只好下个工单,解决方法也比较土,切换到旧版数据同步服务。不太喜欢阿里云的数据管理服务。功能太多,可能自己不是专职 DBA,对它不感冒。

收益

个人没太多收益,做好了是应该的,做不好各个部分都会抱怨。但是从核心系统的稳定性来说,这次数据迁移还是值得的。基本上做到了无感迁移。

后记

由于有一个数据库与核心系统依赖太深,进行跨物理数据库 join 报错了,只好先迁移回来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朋朋dev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值