将Oracle作为源端
更新时间:2020-12-09
1 适用场景
本文适用于使用百度智能云数据传输服务DTS(以下简称 DTS),将自建 Oracle 实例中的数据迁移至 DTS 已经支持的数据目标端的场景。
2 将Oracle数据库作为DTS源的限制
- 仅支持Oracle到MySQL的结构迁移,不支持Oracle到其他数据源的结构迁移。
- 增量同步不支持同步关系型数据库的DDL语句。
- 不支持无主键表的迁移。
- 若需要同时选择全量和增量迁移,源端不可存在迁移表相关的物化视图日志;若只选择增量迁移,需要提前在源端创建迁移表相关的物化视图日志。
3 将Oracle数据库作为DTS源的前置条件
3.1 环境要求
DTS支持将Oracle 10g、11g、12c(需使用PDB连接模式)、18c(需使用PDB连接模式)、19c(需使用PDB连接模式)版本自建数据库作为源。
3.2 数据库账号权限要求
源端:
数据库 | 结构迁移 | 全量迁移 | 增量迁移 |
---|---|---|---|
自建Oracle数据库 | DBA权限 | DBA权限 | DBA权限 |
自建Oracle数据库,数据库账号创建及授权方法请参见CREATE USER和GRANT语法。
4 使用Oracle数据库作为DTS源
使用Oracle数据库作为源,在任务创建、任务配置、前置检查、任务启动、任务暂停、任务终止的操作流程请参考最佳实践文档。 在任务配置参数部分与其他数据源有些许不同。
任务配置参数
如上图所示,目前DTS的源端支持公网自建Oracle实例,Oracle源端配置参数说明如下:
接入类型:当前仅支持公网自建Oracle实例
数据类型:固定选择Oracle
主机名/IP:填写Oracle数据库的访问IP
端口:填写Oracle数据库的服务端口
账号:填写Oracle数据库的数据库账号
密码:填写Oracle数据库账号对应的密码
Service Name:填写Oracle实例的Service Name或SID
导出类型:指定DTS服务从Oracle读取数据所采用的字符集,可选值为:"默认"、"UTF8" 和"GBK";选择"默认"时,DTS将使用下列语句查询得到的Oracle实例使用的字符集作为导出类型。
select userenv('language') as charset from dual
5 DTS支持的Oracle源数据类型
下表列出了使用 DTS 时支持的 Oracle 源数据类型以及与 DTS 数据类型的默认映射。
有关如何查看目标端映射的数据类型的信息,请参阅有关目标端数据源的数据类型映射部分。
Oracle数据类型 | DTS字段类型 | DTS是否支持 |
---|---|---|
number | DTS_TYPE_NUMBER | 支持 |
binary_float | DTS_TYPE_NUMBER(precision=65,scale=8) | 支持 |
binary_double | DTS_TYPE_DOUBLE | 支持 |
float | DTS_TYPE_DOUBLE | 支持 |
char | DTS_TYPE_STRING | 支持 |
varchar2 | DTS_TYPE_STRING | 支持 |
nchar | DTS_TYPE_STRING | 支持 |
nvarchar2 | DTS_TYPE_STRING | 支持 |
clob | DTS_TYPE_STRING | 支持 |
nclob | - | 不支持 |
blob | DTS_TYPE_BYTES | 支持 |
long | DTS_TYPE_STRING | 支持 |
date | DTS_TYPE_DATETIME | 支持 |
timestamp | DTS_TYPE_DATETIME | 支持 |
timestamp with time zone | - | 不支持 |
timestamp with local time zone | - | 不支持 |
raw | - | 不支持 |
long raw | - | 不支持 |
interval year to month | - | 不支持 |
interval day to second | - | 不支持 |
bfile | - | 不支持 |
xmltype | - | 不支持 |
rowid | - | 不支持 |
urowid | - | 不支持 |
sdo_geometry | - | 不支持 |