大纲
1. 什么是DMS
- AWS Database Migration Service (AWS DMS) 是一项云服务,可轻松迁移关系数据库、数据仓库、NoSQL 数据库及其他类型的数据存储。您可以使用AWS DMS将数据迁移到AWS Cloud或者在云和本地设置的组合之间。
2. DMS的作用
- AWS Database Migration Service (AWS DMS) 是一种 Web 服务,可用于将数据从源数据存储迁移到目标数据存储。这两个数据存储称为终端节点。您可在使用相同数据库引擎的源和目标终端节点之间迁移。您也可在使用不同数据库引擎的源和目标终端节点之间迁移。(这里不支持关系型数据库和非关系型数据库直接的迁移)。
3. DMS在迁移的时候都做些什么
- DMS会创建出表结构
- DMS会创建出主键和唯一索引
- DMS不会创建二级索引
- DMS不会创建非主键约束
- DMS不会创建默认值
4. 在使用DMS的时候我们需要做些什么
- 在使用DMS的时候DMS会将数据原封不动的迁移到目标数据库上,DMS在创建出数据表结构以后,我们需要修复数据库的耳机索引,非主键约束和一些数据库字段中的默认值。
- 我们还可以创建数据库迁移任务,来实现对数据库的持续迁移,这样我们在项目迁移中保证了线上数据库的一致性,迁移完成后方便做数据库层面的切割。
5. 迁移任务
- 客户需要讲本地的mysql数据库里面的数据迁移到Aws的Mysql数据库上
5.1 迁移原因
- 降低在数据库方面的费用
- 提高容灾
- 良好的团队协助
6. 如何操作
6.1 创建两个数据库终端节点
6.2 创建迁移任务
这样我们的迁移任务就创建好了,这时候我们只需要关注迁移任务是否出错和修复数据库结构、索引和约束即可。
7. 迁移中遇到的问题
问题:迁移完成后部分查询出错和查询变慢
解决:那是因为DMS迁移不会讲数据库中的外键、二级索引和字段默认值,后续我们修复了数据库上的外键、二级索引和字段默认值后,服务得到了恢复,查询速度也恢复了正常。
8. 总结
- 这次迁移我们的到了一个结论就是我们在平时开发项目的时候尽量少用外键约束,这样会增加数据库迁移的复杂度和数据修复的复杂度,我们要做到解耦和降低数据层面的复杂度。
- 迁移完成后要对数据库的数据和数据库结构进行check,这样可以降低迁移带来的各种系统灾难。