数据库迁移上云前需要进行充分地评估和验证。
根据待迁移数据的现状和未来业务规模,分类进行评估和准备,详细信息如表1所示。
表1 迁移前评估和准备
评估项 |
说明 |
迁移数据量与DDM、RDS的实例规格 |
- 关于源数据库数据拆分,建议采用先垂直拆分,后水平拆分的方式。
- 对于源MySQL实例数据库表占用存储空间,可执行如下SQL语句评估。
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB')as data from information_schema.TABLES;
- 建议对数据行数超过1000万行(或者预计超过1000万行)的表进行分片,设计为拆分表。
- 单RDS实例存储不超过500GB。
|
源数据库每张表对应逻辑库和逻辑表信息 |
- 以表为单位,细化每张源表映射对应逻辑表信息,如记录数、逻辑表类型、所属逻辑库、所属DDM实例和关联RDS实例等。
- 如果已经有RDS(MySQL)且DDM逻辑库选择非拆分库,则只需要在创建逻辑库时关联该RDS(MySQL)实例即可,不涉及表结构和表数据的迁移。
|
兼容性 |
- 检查源数据库和目标实例的MySQL版本号一致。
- 目标实例的实例规格和存储空间等原则上不低于源数据库。
- 检查源数据库和目标实例的表结构和字符集等一致。
- “拆分算法”为“hash”的逻辑表单次迁移记录数不超过1000万条;“拆分算法”为“range”的逻辑表单次迁移记录数不超过500万条。
- 对于数量过大的表可以采用分批导出导入,通过mysqldump指定参数where条件来限定每批的记录数。
- 导入DDM只支持导入的SQL文本文件含有标准的DML插入语句。
- 评估应用程序SQL语句在DDM中的兼容性。
|
迁移前需要收集相关信息,帮助您更好的完成迁移,详细信息如表2所示。
表2 迁移前信息收集
迁移源/目标 |
信息项 |
源RDS实例 |
RDS实例连接地址 |
RDS实例侦听端口 |
数据库用户 |
数据库名称 |
数据库表名 |
目标DDM实例 |
DDM实例连接地址 |
DDM实例侦听端口 |
DDM实例用户名 |
DDM关联RDS实例上创建的数据库名称 |
新建RDS实例连接地址 |
新建RDS实例侦听端口 |
RDS实例用户名 |
数据库名称 |
弹性云服务器 |
弹性IP地址 |
系统登录用户/密码 |