2. 快速开始

本章包含下载、配置、运行 三个步骤,用户可遵循本章的步骤快速开始使用 LightDB-ETL

另外,本章节总结了基本的使用,特殊的一些需求如如果只迁移单个表、如果迁移单个schema、如何在迁移时排除指定的表可参考第三章。

2.1. 环境准备

2.1.1. Java 11

需要 Java 11 及以上版本, 下载地址

2.1.2. 内存

具体所需内存根据迁移开启的线程数量(concurrentThreadCount)、每次迁移数据的行数(batchCount)、表每行的数据大小(由列的数量、数据类型等确定)。 以下是一个实际的内存占用情况,可供计算迁移所需内存大小:

前提:每个表500M,每次读取20万行数据,每行数据0.1kb。

线程数

内存

1

600M

2

1.2g

2.1.3. LightDB-ETL

下载迁移工具 LightDB-ETL

2.2. 修改配置

修改 config 目录下的application.properties 配置文件,配置源端数据库、目标端数据库、迁移选项、日志选项。详细配置参数的含义参考第四章配置参数的说明。

2.2.1. 修改迁移的数据库类型

etl.global.sourceDatabase=oracle
etl.global.targetDatabase=lightdb

2.2.2. 修改源库Oracle连接

etl.source.jdbc.url=数据库连接地址
etl.source.jdbc.username=数据库用户名
etl.source.jdbc.password=数据库密码

2.2.3. 修改目标库LightDB连接

etl.target.jdbc.url=数据库连接地址
etl.target.jdbc.username=数据库用户名
etl.target.jdbc.password=数据库密码

2.2.4. 修改 keywords 配置

该选项是如果列名有关键字如by,需要配置etl.global.keywords。没有则可忽略此项

etl.global.keywords=by,commit

2.2.5. 修改迁移功能和迁移的模式

详细参数说明参考第四章配置选项说明参数。特别注意,如果数据库存在依赖关系,需要分多次步骤迁移,如存储过程依赖函数,则需要先迁移函数,在迁移存储过程。

etl.global.transferSchemas=schema1
etl.global.targetSchemas=schema2
etl.global.enableFunctions=TransferTable,TransferSequence,TransferTableData,TransferIndex,TransferView,TransferTrigger,TransferPackage,TransferType,TransferProcedure,TransferFunction,TableCompare,TableDataCompare,TypeCountCompare

2.3. 运行

执行 java -jar <jar包名> 命令运行迁移程序。如jar包名是lightdb-etl.jar,则执行java -jar lightdb-etl.jar

2.4. 校验查看

在logs/lightdb-etl/lightdb-etl.log文件里面搜索不一致。如果有不一致信息,表明迁移出错。详细例子,可看第五章。迁移出错问题分析可查看 lightdb-etl oracle迁移到lightdb的常见问题和解决方法

2.5. Oracle 到 OceanBase MySQL 数据迁移操作指南

本文档以 oracle2ocean_base_mysql 场景为例,详细介绍使用 LightDB-ETL 工具进行数据迁移的操作步骤。

2.5.1. 一、环境准备

  1. 下载迁移工具

    请前往官网下载最新版的 LightDB-ETL 工具包。

  2. 创建目标数据库

    在 OceanBase MySQL 模式下创建用于接收数据的数据库,建议字符集设置为 utf8mb4

    CREATE DATABASE etl_test CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
    
  3. 处理大小写敏感问题(可选)

    若源端 Oracle 中存在表名大小写混合的情况,建议在 Oracle 端创建临时视图以简化迁移过程。例如:

    CREATE VIEW TINSTRUCTION_copy AS SELECT * FROM "TINSTRUCTION_copy";
    

2.5.2. 二、配置文件修改

请进入 lightdb/config/ 目录,依次修改以下配置文件。

  1. 修改 application.properties

    编辑 application.properties 文件,配置运行模式、数据库连接及迁移策略:

    # 全局运行配置
    etl.global.runModel=0
    server.port=2023
    logging.config=classpath:log4j2.xml
    
    # 数据库类型定义
    etl.global.sourceDatabase=oracle
    etl.global.targetDatabase=ocean_base_mysql
    
    # 调试与容错配置
    etl.global.showSql=true
    etl.global.fastFail=false
    etl.global.removeDoubleQuote=true
    
    # 性能配置
    etl.global.batchCount=10000
    etl.global.concurrentThreadCount=6
    
    # 功能开关
    etl.global.compileOracleProcedure=false
    etl.global.pwdEncrypted=false
    etl.global.syncTableDataOpenTruncate=true
    etl.global.ignoreCase=true
    etl.global.ignoreCaseMixing=true
    
    # 启用迁移功能模块
    etl.global.enableFunctions=TransferTable,TransfertableFK,TransferIndex,TransferTablePK,TransferTableData,TableCompare,TableDataCompare,TypeCountCompare
    
    ################## Oracle 源端配置 #########################
    etl.source.jdbc.url=jdbc:oracle:thin:@<ip>:<port>/<service_name>
    etl.source.jdbc.username=<username>
    etl.source.jdbc.password=<password>
    
    ################## OceanBase MySQL 目标端配置 ###############
    etl.target.jdbc.url=jdbc:oceanbase://<ip>:<port>/<dbname>?rewriteBatchedStatements=true
    etl.target.jdbc.username=<username>
    etl.target.jdbc.password=<password>
    
    ################## Schema 映射配置 ##################
    # 格式:源Schema=目标Schema (多个可用逗号分隔)
    etl.global.transferSchemas=<source_username>
    etl.global.targetSchemas=<target_username>
    
    # 保留字/关键字配置
    etl.global.keywords=group,desc,order,collation,describe,DESCRIBE,PRECISION,MAXVALUE,date,nav,time,LEFT,CALL
    

    备注

    请将上述配置中的 <ip>, <port>, <service_name>, <username>, <password>, <dbname>, <source_username>, <target_username> 替换为实际的数据库连接信息。

  2. 修改 unisql.conf

    编辑 unisql.conf 文件,配置 SQL 解析的关键字行为及非空约束处理策略:

    unisql.keyword.doublequotes = group,desc,order,collation,describe,DESCRIBE,PRECISION,MAXVALUE,date,nav,time,LEFT,CALL
    unisql.notnull.behavior = 3
    

2.5.3. 三、执行迁移

完成配置后,在终端执行以下命令启动迁移任务:

java -jar lightdb-etl-25.4.0.4.jar

2.5.4. 四、清理工作

迁移任务成功完成后,若之前在 Oracle 端创建了临时视图,请执行以下 SQL 进行清理:

DROP VIEW TINSTRUCTION_copy;

2.5.5. 五、查看迁移结果

迁移任务结束后,系统会自动生成比对报告。

  • 报告位置:程序运行目录下的 report 文件夹。

  • 详细内容:具体的校验结果和差异分析,请参阅文档章节 7. 校验结果