一、环境介绍:

这里需要将MySQL数据库的数据全部迁移到Oracle 12c的pluggable database。环境如下表所示:
Transfering MySQL Data To Oracle 12c Using Kettle
Oracle数据库上只创建了用户和表空间,因为复制步骤是先建表再同步数据,详见后续步骤。
二、创建数据库连接

2.1 创建Oracle连接
打开Kettle,文件->新建->作业,右击左侧栏里的“DB连接”,选择新建,如下图所示:
Transfering MySQL Data To Oracle 12c Using Kettle_第1张图片
PS:如果使用的是pluggable database,则数据库名称前面必须加'/'(11g、10g除外),否则会报错。
2.2 创建MySQL连接
右击左侧栏里的“DB连接”,选择新建,如下图所示:
Transfering MySQL Data To Oracle 12c Using Kettle_第2张图片

三、创建多表复制作业

3.1 打开多表复制向导
“工具”-->“向导”-->“多表复制向导”,选中源数据库以及目标数据库,如下图:
Transfering MySQL Data To Oracle 12c Using Kettle_第3张图片
3.2 选择需要复制的表
可根据实际情况,选择部分表复制或者所有表复制,这里选择了所有表复制。
Transfering MySQL Data To Oracle 12c Using Kettle_第4张图片
3.3 编辑作业信息
这里需要定义作业名称以及作业保存的目录,如下图所示:
Transfering MySQL Data To Oracle 12c Using Kettle_第5张图片
最后,点击finish完成,会生成作业的步骤信息,如下图所示:
Transfering MySQL Data To Oracle 12c Using Kettle_第6张图片

四、执行作业
执行作业可分为定时和立即执行。定时运行细化到秒为时间间隔,其次是天、周、月。右击作业定时调度“Start”-->“编辑作业入口”,如图所示:
Transfering MySQL Data To Oracle 12c Using Kettle_第7张图片
如果需要立即执行,点击“确定”即可开始,如下图所示:
Transfering MySQL Data To Oracle 12c Using Kettle_第8张图片
如果执行过程中报错,可以通过查看日志文件来判断哪里出错。日志文件位于kettle家目录的logs文件,文件名为spoon.log。

总结:
1、按照上述步骤也可完成Oracle、PostgreSQL、DB2等数据库之间的表同步。唯一的不足是,只能在目标库上创建表以及复制数据,对于存储过程、触发器等之类的就需要额外手工运行。
2、如果是Oracle To PostgreSQL同步,默认会把Oracle的blob字段类型设置为unknown。而它对应的PostgreSQL字段类型为bytea。