
一、为什么要做兼容性评估?
近年来,在国产化替代政策的推动下,越来越多的企业开始探索将Oracle等国外数据库替换为国产分布式数据库。腾讯云TDSQL凭借其高兼容性、金融级高可用和弹性扩展能力,成为热门选择。
但迁移前,如何快速评估现有系统与TDSQL的兼容性?需要改动多少代码?迁移后的稳定性如何?这些问题直接关系迁移成本与风险。
TDSQL迁移工具(TMT)应运而生!它支持自动化扫描Oracle数据库对象及SQL语法,识别潜在兼容性问题,并生成可视化报告,为迁移提供可靠依据。
兼容性评估的核心价值:
1、提前识别95%以上的语法差异
2、量化迁移工作量,预估改造成本
二、TMT工具的核心功能
TMT评估方式:
1、通过连接源端获取元数据评估,程序通过Oracle和TDSQL语法树差异,得到对象兼容分析结果。
2、扫描应用程序的配置文件或SQL文件、表。
TMT评估特点:
1、不依赖目标库是否存在,内置语法规则。
2、评估使用语法树解析,可以根据目标库不同版本进行评估,评估结果真实、可靠。
无论哪种方式,均无需提前创建目标库,工具自动生成评估报告。
功能 | 说明 |
对象评估 | |
应用评估 | 历史SQL、缓存SQL、数据库性能运行指标。 |
可视化报告 | 生成HTML报告 |
工具亮点:
✅ 零侵入性:无需在目标库提前建表,直接连接Oracle即可评估
✅ 灵活输入:支持数据库直连、SQL文件扫描、MyBatis配置文件解析
✅ 版本覆盖:目标端适配TDSQL-PG和TDSQL-MySQL两大引擎
三、如何使用TMT工具?
1. 环境准备
运行环境:JDK 1.8及以上版本。
账号权限:需在Oracle数据库中创建一个评估账号,并授权以下权限:
CREATE USER tmtuser IDENTIFIED BY tmtuser;
GRANTCONNECT,SELECTANY DICTIONARY TO tmtuser;
GRANT SELECT_CATALOG_ROLE TO tmtuser;
GRANTEXECUTEON DBMS_METADATA TO tmtuser;复制
2. 配置文件修改
打开`init.json`文件,重点修改以下参数:
{
"runningMode":"obj", // 评估模式:对象评估(obj)或应用评估(app)
"channelType":"oracle2pg",// oracle2pg或oracle2td,对应目标库类型:TDSQL-PG 或 TDSQL-MySQL
"dataSourceType":"db", // 数据源类型:数据库(db)、SQL文件(sqlfile)、MyBatis 的 XML 配置文件(mybatis)
"source":{
"dbName":"Oracle服务名",
"ip":"Oracle IP地址",
"port":"端口号",
"username":"tmtuser",
"password":"密码"
},
"target":{//目标库可以不存在,dbType必填
"dbName":"",
"dbType":"tdsql_pg",//可选tdsql_pg或tdsql_mysql
"ip":"",
"port":"",
"username":"",
"password":""
},
"usersEvaluationList":{
"TEST_USER1":[],//需要评估的用户,[]代表评估用户所有的对象类型
"TEST_USER2":[]
},
"filesEvaluationPath":"/path/to/sqls"//应用评估模式对应的文件目录
}复制
3. 执行评估
运行命令启动扫描(示例):
java -jar tmt-obj-eval-版本号.jar -d "/配置文件目录路径"
复制
完成后,工具会生成一个包含HTML报告的ZIP文件,用户可直观查看兼容性结果。
四、评估报告示例
报告将清晰展示以下内容:
兼容性统计:兼容对象比例、需修改的SQL语句数量。
问题详情:不兼容的语法(如Oracle特有函数、保留关键字冲突)、SQL解析失败原因。

五、常见问题与解决
问题一:评估结果为0
检查几个地方:
1、确认是否配置了评估用户。参数:usersEvaluationList
2、检查是否使用了中文的引号“”,要改成英文的""
3、dbName 对应要写oracle上的 service name
问题二、java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在
确认账号权限是否正确授权。
对应进行授权:
#授予权限
grant connect to 评估用户;
grant select any dictionary to 评估用户;
grant select_catalog_role to 评估用户;
grant execute on dbms_metadata to 评估用户;
问题三:SQL解析失败
检查SQL语法是否符合规范(如缺少AND连接条件、字段未用逗号分隔)。
问题四:路径报错(Windows环境下执行)
使用反斜杠`\`或双引号包裹路径,例如:`"C:\\tmt\\config"`
六、如何获取TMT工具?
点击「阅读全文」下载最新版本:TDSQL迁移工具TMT
七、总结
通过TMT工具,企业可快速识别Oracle到TDSQL的迁移难点,降低改造成本。
建议在正式迁移前,优先完成兼容性评估,并根据报告制定适配计划。
立即行动,开启高效迁移之旅!
往期推荐