2. 离线扫描

离线扫描模式用于扫描本地磁盘中SQL相关文件,得出兼容性结果。

配置文件 application.yaml 中配置项 scanSourcestatic 时,即为 离线扫描模式

2.1. 下载工具包和SQL兼容性清单(rules.json)

下载地址:http://www.light-pg.com/downloadCate.html

下载jar包和SQL兼容性清单(rules.json),如下图:

image-202312150001

示例中我们放在F盘根目录下:

image-202312150003

工具包中主要文件如下:

文件名

说明

LtMigrateAssist-version.jar

工具的Jar包

application.yaml

Jar包的配置文件

rules.json

扫描规则文件,包含所有的扫描规则信息

run.bat

Windows系统下运行工具脚本

jdk-11.0.12-full.zip

JDK 11包

2.2. 更新SQL兼容性清单

SQL兼容性清单JSON文件会随版本更新,所以单独提供了下载链接。请确保使用最新版本替换掉工具包中的rules.json文件。

2.3. 准备好待扫描的文件

将需要扫描的文件夹或文件准备好,放在工具包目录下。

比如我们有文件夹MySQL和文件test.sql需要扫描,在工具包目录下新建文件夹sql,并将他们放入。如下图:

image-202312150002

2.4. 配置application.yaml

开始扫描前,需要在application.yaml中配置四个关键信息:

  • 指定规则文件,即SQL兼容性清单

    • 配置 ruleFile 字段为“rules.json”文件的绝对路径

    • 示例中则为 F:\LightDB1.0-migrate-assist-V202401-00-000-jar\rules.json

  • 扫哪些文件?

    • 配置 mapperPath 字段为待扫描文件的目录

    • 之前示例已经准备了sql文件夹,所以配置为 F:\LtMigrateAssist_jar-V202304-00-000\sql

  • 源数据库和目标数据库是什么?

    • 配置 sourceDB 和 targetDB 字段,值是固定的。见 手册1.3节

    • 比如源sql是Oracle的,想要适配到LightDB的Oracle模式,那么 sourceDB 配置为 Oracle, targetDB 则配置为 LightDB-Oracle 。

  • 评估报告在哪看?

    • 配置 outputExcel 字段为结果报告的位置及文件命名。

    • 比如放在工具包目录的report文件夹下,且文件命名以日期区分,则可配置为 F:\LightDB1.0-migrate-assist-V202401-00-000-jar\report\check_result_{date}.xlsx 。(模板”{date}”可动态按日期命名文件)

其它各配置项详细说明见下表:

参数

默认/推荐值

说明

mapperPath

/

待扫描文件的目录,可以配置工程的最外层目录,目录中不要含空格

outputExcel

/

结果文件的位置,不要放在c盘
例:F:\LightDB1.0-migrate-assist-V202401-00-000-jar\report\check_result_{date}.xlsx

ruleFile

/

扫描规则文件,就是工具包中“rules.json”的文件绝对路径位置

sourceDB

/

配置兼容评估的源数据库
参数和含义见 手册1.3节
targetDB

/

配置兼容评估的目标数据库
参数和含义见 手册1.3节
suffix


xml,sql,vm,vms


需要扫描文件的后缀名
- xml、Jar文件必扫
- 其它类型文件是以分号分割代码进行逐条扫描的
generatePointFile




true




true:本次离线扫描会生成txt文件,里面记录一个值,方便流水线卡点
- 0(代表本次扫描全部兼容)
- 1(代表本次扫描存在不兼容,且类型为阻断)

false:本次离线扫描不会生成相关流水线卡点文件
generatePointFileWithUnionSql




true




true:本次离线扫描会生成txt文件内容关联统一SQL是否支持
- 0(代表本次扫描全部兼容,或者扫描有不兼容,且类型为阻断但是统一SQL可以全部解决替换)
- 1(代表本次扫描有不兼容,类型为阻断且统一SQL不支持解决)

false:本次离线扫描会生成txt文件结果不关联统一SQL是否支持
excludePrefixSet


/


可配置路径,可剔除扫扫描路径无需扫描的文件等
例如不需要扫druid的jar里面的sql文件,可配置为\BOOT-INF\lib\druid*\**
匹配规则同AntPathMatcher,可用逗号分割,支持配置多个路径
scanSource



static



扫描来源
- static: 离线扫描
- online: 在线扫描
- jdbcproxy: 运行时扫描
evalMethod


unisql


扫描方式
- execute: 目标库执行
- unisql: 按规则的方式扫描

2.5. 执行扫描

本工具暂只支持使用JDK11版本运行,JDK已在工具包中提供并在bat脚本中配好。

运行 run.bat 脚本开始扫描。

image-202312150004

运行完成后到之前配置好的位置(outputExcel配置项)查看excel文件即可。