AWS数据库迁移服务(DMS)提供不同数据库平台之间的异构迁移。源数据库在迁移期间保持完全可操作,从而将依赖该数据库的应用程序的停机时间降至最低。目前,DMS可以使用AWS DocumentDB作为数据库源或目标;然而,DMS仅支持MongoDB作为数据复制的源端点。
以下是使用DMS将数据从DocumentDB复制到Atlas的步骤。请注意,AWS可能不支持扭曲配置。
以下是架构图:

注意事项
1.安全组:为了简单起见,所有DocumentDB集群、EC2和DMS复制实例共享相同的安全组。所需的入站规则如下:

出站规则是默认规则:

2.根据Amazon Premium Support:“默认情况下,为Amazon DocumentDB群集启用TLS配置。要禁用TLS配置,请创建一个新的自定义Amazon Documentum DB群集参数组。将TLS参数设置为disabled,然后修改群集以使用新的群集参数组。有关更多信息,请参阅管理Amazon文档DB群集参数集。”
3.由于AWS DMS服务无法解析SRV记录,您需要提供Atlas主节点的FQDN作为目标端点配置的服务器名称。但是,如果重新选择了Atlas中副本集的主要成员,则复制任务将失败。您需要停止任务,使用新的主主机名重新配置目标端点,然后再次继续执行任务。无法在任务运行时修改目标端点设置。
或者,您可以创建单个分片集群,并将其中一个Mongo进程的主机名和端口号用于目标端点配置。
4.DMS支持在单个任务中迁移多个数据库。如AWS数据库迁移服务用户指南所述:
-
“在AWS DMS的AWS管理控制台中,在“创建端点”页面的“端点配置”下,将数据库名称留空。”
-
“对于要从此Amazon DocumentDB源端点迁移的每个数据库,请使用控制台中的引导输入或直接使用JSON在任务的表映射中将每个数据库的名称指定为架构的名称。”例如:
{
"rules": [
{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
"schema-name": "Customers",
"table-name": "%"
},
"object-locator": {
"schema-name": "Orders",
"table-name": "%"
},
"object-locator": {
"schema-name": "Inventory",
"table-name": "%"
},
"rule-action": "include"
}
]
}
步骤
1.创建文档数据库群集
-
1.创建DocumentDB群集:
-
a.选择DocumentDB服务。
-
b.单击左侧面板中的群集。
-
c.单击创建按钮。
-
d.配置以下设置:
-
2.配置:
-
a.集群标识符:<DocumentDB集群的名称>
-
b.发动机版本:4.0.0
-
c.实例类:db.t3.medium(可免费试用)
-
d.实例数:1
3.身份验证:
-
a.主用户名:<主用户名称>
-
b.主密码/确认主密码:<主用户密码>
4.启用“显示高级设置”
5.网络设置:
-
a.虚拟私有云:
-
b.子网组:
-
c.VPC安全组:<使用注释A>中指定的组
6.群集选项:
-
a.端口:27017
-
b.集群参数组:default.docdb4.0。其他设置可以采用默认值。
7.单击Create cluster按钮。如果要在DocumentDB群集上禁用TLS,请参阅注释B。
2.创建EC2实例以加载示例数据
DocumentDB可以由部署在同一Amazon VPC中的Amazon EC2实例或其他AWS服务直接访问。但是,如果要从集群的VPC外部访问资源,则只能使用SSH隧道来访问Amazon DocumentDB资源。
EC2实例是使用与DocumentDB集群相同的网络设置(VPC、子网组和安全组)创建的。EC2实例就绪后,安装mongoshell并将一些示例数据加载到DocumentDB集群中。您可以参考《入门指南》中的步骤4至6。
运行以下命令以在源数据库上启用更改流。
db.adminCommand({modifyChangeStreams: 1,
database: "<source database name>",
collection: "",
enable: true});
3.创建复制子网组
1.选择数据迁移服务服务。
2.单击左侧面板中的子网组。
3.单击创建子网组按钮。
4.提供要在其上创建复制实例的VPC和子网。
5.单击创建子网组按钮。
4.创建DMS复制实例
1.在同一服务上,单击左侧面板中的复制实例。
2.单击创建复制实例按钮。
3.配置以下设置。
-
a.复制实例配置:
-
名称:<复制实例名称>
-
描述性亚马逊资源名称(ARN):留空
-
说明:<实例说明>
-
实例类:dms.t3.small
-
发动机版本:3.4.6
-
分配的存储量(GiB):50
-
VPC:<使用默认值或任何特定VPC>
-
多AZ:单AZ
-
公开访问:勾选方框(将此IP地址添加到Atlas上的白名单中)
-
-
b、 高级安全和网络配置:
-
复制子网组:<步骤3创建的子网组>
-
VPC安全组:<使用注释A>中指定的组
-
您可以使用其他设置的默认值。
4.单击“创建”按钮。
5.导入DocumentDB证书(可选)
如果DocumentDB集群启用了TLS,请执行AWS文档中的步骤,以便DMS可以使用TLS连接到Amazon DocumentDB。
6.创建DocumentDB源端点
1.在同一服务上,单击左侧面板中的端点。
2.单击Create endpoint按钮。
3.配置以下设置:
-
a.终结点类型:源终结点
-
b.终结点配置:
-
端点标识符:<端点名称>
-
描述性Amazon资源名称(ARN):留空
-
源引擎:Amazon DocumentDB
-
访问端点数据库:手动提供访问信息
-
服务器名称:<DocumentDB集群的服务器名称>
-
e、 g.mdb-ddb-db.cluster-c50ma7ye6nnl.ap-southeast-2.docdb.amazonaws.com
-
端口:27017
-
Secure Socket Layer(SSL)模式:验证已满(如果tls已禁用,则无)
-
用户名:<主用户名称>
-
密码:<主用户密码>
-
身份验证来源:admin
-
数据库名称:<复制的数据库名称>
-
元数据模式:文档
-
_id作为单独的列:将其保留为未选中状态
-
4.展开测试端点连接(选项):
-
1.VPC:<选择创建复制实例的VPC>
-
2.复制实例:<选择步骤4中创建的实例>
5.单击运行测试按钮。
6.如果测试失败,您可能需要对该问题进行故障排除。
7.单击创建端点按钮。
7.导入Atlas Certificate
1.下载Atlas root CA certificate 证书并将其保存在本地驱动器上。
2.在同一服务上,单击左侧面板中的证书。
3.单击“导入证书”按钮。
4.配置以下设置:
-
证书配置:
-
证书标识符:ISRG-Root-X1
-
导入证书文件:<选择步骤a中保存的文件>
-
5.单击导入证书按钮。
8.更新IP访问列表
使用DMS复制实例的公共IP地址更新Atlas项目的IP访问列表。
9.创建Altas目标端点
1.在同一服务上,单击左侧面板中的端点。
2.单击Create endpoint按钮。
3.配置以下设置:
-
a.终结点类型:目标终结点
-
b.终结点配置:
-
端点标识符:<端点名称>
-
描述性Amazon资源名称(ARN):留空。
-
目标引擎:Amazon DocumentDB
-
访问端点数据库:手动提供访问信息。
-
服务器名称:<Atlas复制集的主服务器名称>;e、 例如,cluster1-shard-00-02.2psdk.mongodb.net。如果重新选择了主要成员,则复制任务将失败(请参阅注释C)。
-
端口:27017
-
Secure Socket Layer(SSL)模式:验证已满
-
CA证书:ISRG-Root-X1
-
用户名:<主用户名称>
-
密码:<主用户密码>
-
数据库名称:<目标数据库名称>
-
4.展开测试端点连接(选项)。
-
a.VPC:<使用创建复制的VPC>
-
b.复制实例:<选择步骤4中创建的实例>
5.单击运行测试按钮。如果测试失败,您可能需要对该问题进行故障排除。
6.单击创建端点按钮。
10.创建完全加载+CDC复制任务
1.在同一服务上,单击左侧面板中的数据库迁移任务。
2.单击创建任务按钮。
3.配置以下设置。
-
a.任务配置:
-
任务标识符:<复制任务的名称>
-
描述性Amazon资源名称(ARN):留空
-
复制实例:<select the one created on step 4>
-
源数据库端点:<select the endpoint created on step 6>
-
目标数据库端点:<select the endpoint created on step 9>
-
迁移类型:迁移现有数据并复制正在进行的更改
-
-
b.任务设置:
-
编辑模式:向导
-
目标表准备模式:在目标上放置表
-
满载完成后停止任务:不要停止
-
在复制中包括LOB列:有限LOB模式
-
最大LOB大小(KB):32
-
启用验证:将其保留为未检查状态
-
启用CloudWatch日志:将其保留为未检查状态
-
-
c.表映射:
-
编辑模式:向导
-
单击“添加新选择规则”
-
模式:输入模式
-
源名称:<从源复制的数据库名称>
-
表名称:<从源复制的集合名称>
-
操作:包括
-
您可以从官方文档中获得有关DMS选择规则的更多信息。
-
-
d.预迁移评估:
- 启用迁移前评估运行:将其保留为未选中状态。
-
e.迁移任务启动配置:
- 启动迁移任务:创建时自动
4.单击创建任务按钮。
11.监控迁移任务
任务启动后,可以使用Table Statistics选项卡监视单个集合上的Full Load和CDC复制的进度。

原文标题:Data Migration from AWS DocumentDB to Atlas on AWS
原文作者:Travis Van
原文链接:https://dzone.com/articles/data-migration-from-aws-documentdb-to-atlas




