2. 离线扫描
离线扫描模式用于扫描本地磁盘中SQL相关文件,得出兼容性结果。
配置文件 application.yaml
中配置项 scanSource
为 static
时,即为 离线扫描模式 。
2.1. 下载工具包和SQL兼容性清单(rules.json)
下载地址:http://www.light-pg.com/downloadCate.html
下载jar包和SQL兼容性清单(rules.json),如下图:
示例中我们放在F盘根目录下:
工具包中主要文件如下:
文件名 |
说明 |
---|---|
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,并将他们放入。如下图:
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 脚本开始扫描。
运行完成后到之前配置好的位置(outputExcel配置项)查看excel文件即可。