利用离线方案实现从 MongoDB 到 Amazon DocumentDB 的迁移

2022-04-08 00:00:00 索引 集群 迁移 实例 离线

Amazon DocumentDB(兼容MongoDB)是一项快速、可扩展且可用性高的全托管文档数据库服务,能够全面支持MongoDB工作负载。

Amazon DocumentDB文档中介绍三种从MongoDB向Amazon DocumentDB迁移的主要方法,分别为:离线、在线与混合。

离线迁移方法在其中拥有快的速度与低的操作门槛,但同时也会带来长的停机时间。离线迁移适合匹配概念验证、开发与测试类工作负载,以及那些对停机时间不太敏感的生产级工作负载。作为DocumentDB迁移三篇系列文章中的篇,我们将在本文中尝试使用离线方法将数据从Amazon EC2上的MongoDB副本集迁移至Amazon DocumentDB集群。

离线迁移概述

下图所示,为从MongoDB到Amazon DocumentDB的整个离线迁移流程。



整个迁移方案包含五个基本步骤:

  1. 停止应用程序向源MongoDB部署的写入操作。
  2. 使用mongodump工具将索引与数据转储至EC2实例。
  3. (可选)使用Amazon DocumentDB索引工具将索引还原至Amazon DocumentDB集群。
  4. 使用mongorestore工具将数据还原至Amazon DocumentDB集群。
  5. 变更应用程序中的连接字符串,将其指向新的Amazon DocumentDB集群。

迁移前的准备工作

要执行离线迁移,我们需要以下三个组件:

  1. 一套部署完成的源MongoDB
  2. 一个用于数据导出与导入的EC2实例
  3. 一个目标Amazon DocumentDB集群

在迁移至Amazon DocumentDB集群之前,我们首先要叫停应用程序对源MongoDB部署的写入操作。只有这样,我们才能保证在迁移至Amazon DocumentDB集群期间,源内的数据不再发生变化。源MongoDB部署为部署在Amazon EC2上的副本集。为了尽可能降低工作负载迁移对这一副本集的影响,这里我们从辅助实例处导出数据。

如果您的MongoDB源使用的MongoDB版本低于3.6,则应首先升级源部署及应用驱动程序。只有将版本升级至MongoDB 3.6或更高,才能实现面向Amazon DocumentDB的正常迁移。

您可以在mongo shell当中输入以下代码以确定源部署的当前版本:

rs0:PRIMARY> db.version()
3.6.9

相关文章