943
阿里云
从本地Oracle迁移到RDS for MySQL__数据迁移_用户指南_数据传输-阿里云
使用数据传输DTS可以将本地的Oracle的数据迁移至RDS MySQL实例。DTS可以实现结构定义及全量数据的迁移,为保证迁移数据一致性,建议迁移过程中,本地的Oracle停止写入。
本小节简单介绍使用DTS进行Oracle->RDS For MySQL数据迁移的任务配置流程。
迁移步骤
对于Oracle->RDS For MySQL的迁移,目前还不支持不停服迁移。只能支持结构定义及全量数据的迁移。结构迁移及全量数据迁移的限制如下。
结构迁移
DTS会将迁移对象的结构定义迁移到目标实例。目前DTS支持结构迁移的对象有:表。其他对象如视图、同义词、触发器、存储过程、存储函数、包、自定义类型等暂不支持。全量迁移
DTS会将源数据库迁移对象在的数据全部迁移到目标实例。如果迁移过程中,本地Oracle库有数据写入的话,那么这些增量数据不一定能够被迁移到MySQL中。所以,为保证迁移数据一致性,在迁移过程中,Oracle实例需停止写入。
迁移权限要求
当使用DTS进行Oracle迁移时,在不同迁移类型情况下,源跟目标数据库的迁移帐号权限要求如下:
迁移类型 | 结构迁移 | 全量迁移 |
---|---|---|
本地Oracle实例 | schema的owner | schema的owner |
目的RDS MySQL实例 | 待迁入db的读写权限 | 待迁入db的读写权限 |
迁移流程
数据传输服务在进行Oracle->RDS For MySQL的数据迁移时,为了解决对象间的依赖,提高迁移成功率。结构对象及数据的迁移顺序如下:
- 结构对象迁移:表的迁移
- 全量数据迁移
- 结构对象迁移:外键迁移
当全量数据迁移完成后,任务列表中的迁移进度为: 结构迁移100%,全量迁移100%,但迁移状态为“迁移中”。此时迁移任务正在进行步骤(3)外键的迁移,请勿手动结束任务,否则会造成迁移数据不一致。
数据类型映射关系
由于Oracle跟MySQL的数据类型并不是一一对应的,所以DTS在进行结构迁移时,会根据两种数据库类型的数据类型定义,进行类型映射,下面是数据类型映射关系。
Oracle数据类型 | MySQL数据类型 | DTS是否支持 |
---|---|---|
varchar2(n [char/byte]) | varchar(n) | 支持 |
nvarchar2[(n)] | national varchar[(n)] | 支持 |
char[(n [byte/char])] | char[(n)] | 支持 |
nchar[(n)]] | national char[(n)] | 支持 |
number[(p[,s])] | decimal[(p[,s])] | 支持 |
float(p)] | double | 支持 |
long | longtext | 支持 |
date | datetime | 支持 |
binary_float | decimal(65,8) | 支持 |
binary_double | double | 支持 |
timestamp[(fractional_seconds_precision)] | datetime[(fractional_seconds_precision)] | 支持 |
timestamp[(fractional_seconds_precision)]with local time zone | datetime[(fractional_seconds_precision)] | 支持 |
timestamp[(fractional_seconds_precision)]with local time zone | datetime[(fractional_seconds_precision)] | 支持 |
clob | longtext | 支持 |
nclob | longtext | 支持 |
blob | longblob | 支持 |
raw | varbinary(2000) | 支持 |
long raw | longblob | 支持 |
bfile | — | 不支持 |
interval year(year_precision) to mongth | — | 不支持 |
interval day(day_precision) to second[(fractional_seconds_precision)] | — | 不支持 |
- 对于char类型,当char(n)的定义长度n超过255时,DTS会自动将类型转换为varchar(n)。
- 由于MySQL本身不支持类似Oracle中的bfile、interval year to month、interval day to second这种数据类型,所以DTS在进行结构迁移时,这三种类型不会进行转化,迁移时如果表中含有这三种类型,会导致结构迁移失败,用户根据业务需求,将这三种类型修改成MySQL中对应的数据类型即可。
- 由于MySQL的timestamp类型不包含时区,而Oracle的timestamp with [local] time zone带时区,所以DTS在迁移这两种类型的数据时,会将其转换成UTC时区后,存入MySQL。
迁移步骤
下面详细介绍下使用DTS将本地的Oracle迁移到RDS for MySQL的任务配置流程。
RDS实例数据库创建
在数据迁移过程中,如果待迁移的数据库在目标RDS实例中不存在,那么DTS自动会创建。但是对于如下两种情况,用户需要在配置迁移任务之前,手动创建数据库。
- 数据库名称不符合:RDS定义规范(由小写字母、数字、下划线、中划线组成,字母开头,字母或数字结尾,最长64个字符)。
- 待迁移数据库,在Oracle跟目标RDS实例中名称不同。
对于这两种情况,用户需要在配置迁移任务之前,先在RDS控制台完成数据库创建。具体参考RDS数据库创建流程RDS使用手册。
迁移帐号创建
迁移任务配置,需要提供Oracle数据库及目标RDS实例的迁移账号。迁移账号所需权限详见上文的 迁移权限要求。
如果您的Oracle实例的迁移账号尚未创建,那么您可以参考 Oracle Grant语法说明,创建满足要求的迁移账号。
RDS For MySQL 迁移账号的创建及授权操作详见RDS使用手册RDS使用手册。
迁移任务配置
当上面的所有前置条件都配置完成后,就可以开始迁移任务配置。下面详细介绍下具体的迁移步骤。
- 进入数据传输DTS控制台,点击右上角的创建迁移任务,正式开始任务配置。
本地Oracle及目标RDS实例的连接信息配置。
这个步骤主要配置 迁移任务名称,Oracle连接信息及目标RDS实例连接信息。其中:
任务名称
DTS为每个任务自动生成一个任务名称,任务名称没有唯一性要求。您可以根据需要修改任务名称,建议为任务配置具有业务意义的名称,便于后续的任务识别。
源实例信息
- 实例类型:选择 有公网IP的自建数据库
- 数据库类型: 选择 Oracle
- 主机名或IP地址: 配置Oracle访问地址,这个地址必须为公网访问方式
- 端口:Oracle实例的监听端口
- SID:Oracle实例的SID
- 账号:Oracle实例的连接账号
- 密码:上面Oracle连接账号对应的密码
目标实例信息
- 实例类型:选择 RDS实例
- RDS实例ID: 配置迁移的目标RDS实例的实例ID。 DTS支持经典网 络、VPC网络的RDS实例
- 账号:RDS实例的连接账号
- 密码:上面RDS实例连接账号对应的密码
当配置完连接信息后,点击右下角 授权白名单并进入下一步 进行白名单授权。这个步骤DTS会将DTS服务器的IP地址添加到目标RDS实例的白名单中,避免因为RDS实例设置了白名单,导致DTS服务器连接不上RDS实例导致迁移失败。
迁移对象及迁移类型配置。
迁移类型包括:结构迁移、全量数据迁移。默认选择 结构迁移+全量数据迁移。
迁移对象,需要选择您要迁移的对象。迁移对象选择的粒度可以为:库、表、列三个粒度。
默认情况下,对象迁移到RDS实例后,对象名跟Oracle一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用DTS提供的对象名映射功能,详细使用方式可以参考库表列映射。当配置完迁移对象及迁移类型后,即进入任务启动前的预检查步骤。
任务预检查。
在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。
如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。
启动迁移任务。
当预检查通过后,我们可以启动迁移任务,任务启动后,可以到任务列表中查看任务具体的迁移状态及进度。
至此,完成将本地Oracle数据库到RDS For MySQL的数据迁移任务配置。
最后更新:2016-11-23 16:03:55
上一篇:
预检查失败修复__数据迁移_用户指南_数据传输-阿里云
下一篇:
从本地MySQL迁移到RDS for MySQL__数据迁移_用户指南_数据传输-阿里云
修改备份策略__备份恢复_API 参考_云数据库 RDS 版-阿里云
开通MNS服务__快速入门_消息服务-阿里云
InstanceTypeItemType__数据类型_API 参考_云服务器 ECS-阿里云
短信签名和短信模板的审核要求__常见问题_短信服务-阿里云
查询UV数据__资源监控接口_API 手册_CDN-阿里云
短信或邮件报网站后门__产品常见问题_服务器安全(安骑士)-阿里云
AssumedRoleUser__数据类型_STS API文档_访问控制-阿里云
其他语句说明__用户指南_云数据库 PetaData-阿里云
官网购买__购买渠道_购买指南_云服务器 ECS-阿里云
修改RDS实例备注__实例管理_API 参考_云数据库 RDS 版-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云