Sloth 是专注于异构或同构数据库与 GoldenDB 分布式数据进行数据交互的专业服务与解决方案,旨在助力客户实现同构或异构数据库向 GoldenDB 的实时数据迁移和数据同步。Sloth 迁移或同步解决方案,配置流程简单便捷、风险低、运维成本低、可靠性高、性能突出。
Sloth 集编排、管控、运维于一体,助力客户便捷编排需要的任务,支持管理、维护历史任务,提供任务监控、性能视图、表画像等能力。
背景信息
在控制台创建 Oracle 数据库迁移数据至 GoldenDB 数据库的迁移任务,可以通过创建全量任务将源端数据库的存量业务数据迁到 GoldenDB 数据库中。支持源端为单主库、单备库、主备库。
前提条件
为源端 Oracle 和目标端 GoldenDB 创建专用于数据迁移项目的数据库用户,并为其赋予相关权限。相关权限说明参考 数据库权限准备 。
使用限制
- 源端数据库在迁移过程中请勿执行表结构变更的 DDL 语句,否则可能造成数据迁移该表的失败;
- 在迁移过程中请关闭目标端的外键与触发器;
- 目前支持的 Oracle 数据库版本为 11G、 12C、 18C和 19C;
- 仅支持库名、表名和列名为 ASCII 码且不包含特殊字符(包括.-;|)的命名;
- 索引组织表不保证数据正确性。
数据类型映射
| ORACLE 数据库 | GoldenDB 数据库 |
|---|---|
| INTEGER | INTEGER |
| NUMBER(3) | TINYINT |
| NUMBER(7) | MEDIUMINT |
| NUMBER(20) | BIGINT |
| NUMBER(5) | SMALLINT |
| DECIMAL | DECIMAL(38,30) |
| NUMBER | DECIMAL(38,10) |
| FLOAT | DECIMAL(63,10) |
| REAL | DECIMAL(63,10) |
| DOUBLE PRECISION | DECIMAL(38,10) |
| RAW | BLOB |
| CHAR | CHAR |
| VARCHAR2 | VARCHAR |
| BINARY_DOUBLE | DECIMAL(38,10) |
| BINARY_FLOAT | DECIMAL(38,10) |
| VARBINARY | VARBINARY |
| BLOB | BLOB |
| CLOB | TEXT |
| DATE | DATETIME |
| LONG | LONGTEXT |
| TIMESTAMP(6) | DATETIME |
操作步骤
创建迁移任务

1)登录 SM 控制台。
2)在左侧导航栏,点击 任务管理 下面的 任务列表 。
3)在任务列表页面,点击右上角上面的 新增 ,新增一个同步任务。
在新建任务中,选择源端和目标端后,配置各项参数

参数
描述
任务名称
任务名的名称,使用字符串进行命名。
源数据库
在下拉框中选择要进行同步的源端数据源,需要先在数据源中创建数据源。
目标数据库
在下拉框中选择要进行同步的目标端数据源,需要先在数据源中创建数据源。
同步类型
迁移直接选择全量。
是否开启比对
选择是时,在全量迁移过程中进行数据比对,选择否时,在全量迁移过程中不进行数据比对。
是否对象迁移
在全量迁移前是否先做结构迁移,选择是,迁移前进行结构迁移,选择否,不需要做结构迁移。若选择不进行结构迁移,则需要保证目标端存在需要同步的库表结构,否则在迁移回放过程中直接报错,且将该表加入黑名单中。
是否自动绑定组件
任务在创建完成后是否自动绑定采集回放组件,如果选择是,则会自动绑定采集回放组件,如果选择否后再保存任务,在组件功能菜单上面需要手动去选择要做迁移任务的采集回放组件,否则无法启动任务。选择开启比对后,比对组件也需要自动绑定或者手动绑定。
同步白名单
配置需要同步库表信息,表名分号分隔,支持正则语法。库表名以实际为准。
同步黑名单
配置不要同步库表信息,表名分号分隔,支持正则语法。库表名以实际为准。对于某张表既满足白名单又在黑名单里面,则该张表不会进行数据同步。
点击 下一步 ,处理基础配置信息

参数
描述
PDB名称
Oracle PDB名称。选填,当前仅展示
是否可持续运行
选择是,当前表采集结束后任务不会完成,可以在表画像界面选择继续加表进行全量迁移,或在任务管理界面点击结束,点击结束后所有表采集完成后任务结束。
映射规则
选择该任务配置的库表列映射规则,库表列映射规则需提前配置。
是否保存全量快照点
如果该全量完成后,后期需要做增量任务,则需要记录全量时的快照点信息,选择是,则记录该全量快照点信息,选择否,则不记录。
全量采集总并行度
所有的采集线程数。
全量采集表间并发数
在采集时,对于每张表的数据抽取时,每张表的抽取并发度。如需提升性能,可以适度提高该值。
表分段的每段大小
在采集某张表时对表进行拆分采集,每一段拆分的数据量大小,提升性能使用。
回放唯一性重复处理方式
遇到目的端主键冲突时处理方式,分为忽略/替换/日志写入/中止退出4种方式,默认为替换。
选择是否做 可行性检查

点击 源端高级配置

参数
描述
NULL值转换
开启后,若值为null则进行转换,数字类型默认值为0,字符类型默认值为空格。
Hex转换
开启后,各组件按照列类型做hex转换。
比对基准列
指定任务级比对基准列用于比对校验,需要填写源端自定义列名并配置两端自定义列名映射。
源端Oracle服务端编码配置
源端Oracle服务端编码。
源端Oracle客户端编码配置
业务向数据库插入数据时的字符集。
点击 目标端高级配置

参数
描述
大小写敏感
是否开启库名、表名、列名的大小写敏感。
自定义rowid
自定义rowid隐藏列,默认为sloth_rowid。
配置完成后,点击 保存




