迁移数据上云的利器 AWS Database Migration Service 吕琳,AWS 解决方案架构师
日程 数据库迁移上云前的思考 AWS Schema Conversion Tool (SCT) 与 AWS Database Migration Service 服务介绍 使用 AWS Database Migration Service 迁移数据库主要流程
数据库迁移上云前的思考 我们在迁移数据库上云前是否充分了解 AWS 和自身的需求? 我们的需求是什么? 需要什么类型的数据库? 数据库体量, 是否需要全部迁移? 我们有多长的停机窗口? 需要什么样的切换和回退计划? 我们是否适用 AWS 托管数据库服务? 我们是否充分了解 AWS 网络? 有多少大表, 有没有需要特殊处理的对象? 我们数据库的字符集是什么?
迁移工具的选择 1. 数据库是同构还是异构 : 同构数据库优先考虑数据库原生数据迁移工具 异构数据库考虑使用 AWS Schema Conversion Tool (SCT) and AWS Database Migration Service 迁移数据 2. 数据库是否需要 7*24 小时 online, 是否需要数据持续复制 : 无需持续复制或停机窗口足够长可选择仅支持完整批量加载的迁移工具 否则迁移工具必须支持持续变更捕获复制 3. 数据库数据量大小 : 小数据量可选择的工具范围更广 大数据量往往意味着更高的难度
日程 数据库迁移上云前的思考 AWS Schema Conversion Tool (SCT) 与 AWS Database Migration Service 服务介绍 使用 AWS Database Migration Service 迁移数据库主要流程
数据库迁移过程
AWS Schema Conversion Tool (SCT) 帮助转换 schema Sequences User-defined types Synonyms Packages Stored procedures Functions Triggers Schemas Tables Indexes Views Sort and distribution keys
可以将数据迁入或迁出 Amazon EC2 上建立的 数据库或 Amazon RDS AWS Database Migration Service 支持不停机数据库迁移 支持同构或异构数据库迁移 支持进行跨 Region 跨账号的数据库数据迁移 只需为所使用的 AWS DMS 资源付费
AWS Database Migration Service 数据迁移的源和目标 源 Oracle Microsoft SQL Server MySQL/MariaDB PostgreSQL Db2 LUW Amazon Aurora MongoDB SAP ASE Amazon S3 目标 Oracle Microsoft SQL Server MySQL/MariaDB PostgreSQL Amazon Redshift Amazon Aurora Amazon DynamoDB SAP ASE Amazon S3
保持应用程序在迁移过程中继续运行 AWS Database Migration Service 客户端 VPN AWS Internet 应用程序用户
逐个表进行加载 源 目标 复制实例
变更数据捕获 (Change Date Capture) 并应用 更新 事务 t1 t2 复制实例 t1 t2 批量加载后应用更改 源 目标
我还可以做些什么? 源 源 目标 复制实例 源
全部迁移或部分迁移 源 目标 复制实例
AWS Database Migration Service 客户
日程 数据库迁移上云前的思考 AWS Schema Conversion Tool (SCT) 与 AWS Database Migration Service 服务介绍 使用 AWS Database Migration Service 迁移数据库主要流程
前期准备 1. 生成目标数据库 2. 在源和目标数据库上生成专门用于迁移的数据库用户并授权 3. 参考文档, 在源数据库上做相应设置, 譬如开启归档, 补充日志等 4. 生成复制实例, 设置网络环境, 保证复制实例可以访问到源和目标数据库 5. 生成两个数据库的 endpoint, 测试复制实例可以连接 endpoint 6. 如果字符集有不兼容问题, 考虑在迁移前对源数据库数据进行处理 7. SCT 会帮助我们转换 schema, 但 DBA 手工干预依然重要
生成并开始 Amazon DMS Task 1. 创建 full load and CDC DMS 任务 2. 如果数据量巨大, 考虑拆分任务 3. 必要时考虑在目标数据库删除 PK/UK/index 来加速 full load 任务 4. Full Load 任务期间在目标数据库需要禁用外键检查并 disable 所有 trigger 以避免数据同步异常 5. Full load 任务结束后生成约束和 index 但确保 triggers 继续处于 disable 状态 6. 通过 CDC 任务完成持续变更捕获复制, 在源和目标数据库之间同步数据, 等待切换窗口
切换过程 1. 数据库端验证所有数据库对象均已生成 2. 应用端测试, 验证功能流程可以在新数据库上顺利完成 3. 考虑回退选项, 是否需要保留从新数据库切换回老数据库的可能 4. 数据验证, 验证新旧两个数据库中关键数据一致 5. 在业务低谷期, 将源数据库置为只读, 等待 CDC 任务的复制延迟变为 0 6. 在目标数据库处理 Sequences 并 enable triggers 7. 切换数据库, 将应用程序指向目标数据库 8. 数据库切换后的后续检验, 监控
DEMO
资源链接 以下资源有助于您了解和使用 AWS Schema Conversion Tool 和 AWS Database Migration Service, 强烈建议您在使用前阅读 : AWS Schema Conversion Tool https://docs.aws.amazon.com/zh_cn/schemaconversiontool/latest/userguid e/chap_installing.html AWS Database Migration Service https://docs.aws.amazon.com/zh_cn/dms/latest/userguide/chap_source.ht ml AWS 官方博客 https://aws.amazon.com/cn/blogs/china/all/
感谢参加 AWS INNOVATE 2018 在线技术大会 我们希望您在这里找到感兴趣的内容! 也请帮助我们完成投票打分和反馈问卷 欲获取关于 AWS 的更多信息和技术内容, 可以通过以下方式找到我们 : 微信公众号 :AWSChina 新浪微博 :https://www.weibo.com/amazonaws/ 领英 :https://www.linkedin.com/company/aws-china/ 知乎 :https://www.zhihu.com/org/aws-54/activities/ 视频中心 :http://aws.amazon.bokecc.com/ 更多线上活动 :https://aws.amazon.com/cn/about-aws/events/webinar/