暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

从Oracle迁移到TDSQL如何做兼容性评估?这份指南帮你轻松搞定

腾讯云数据库 2025-04-11
25

一、为什么要做兼容性评估?  

近年来,在国产化替代政策的推动下,越来越多的企业开始探索将Oracle等国外数据库替换为国产分布式数据库。腾讯云TDSQL凭借其高兼容性、金融级高可用和弹性扩展能力,成为热门选择。

但迁移前,如何快速评估现有系统与TDSQL的兼容性?需要改动多少代码?迁移后的稳定性如何?这些问题直接关系迁移成本与风险。  

TDSQL迁移工具(TMT)应运而生!它支持自动化扫描Oracle数据库对象及SQL语法,识别潜在兼容性问题,并生成可视化报告,为迁移提供可靠依据。  

兼容性评估的核心价值

1、提前识别95%以上的语法差异

2、量化迁移工作量,预估改造成本

二、TMT工具的核心功能  

TMT评估方式:  

1、通过连接源端获取元数据评估,程序通过Oracle和TDSQL语法树差异,得到对象兼容分析结果。

2、扫描应用程序的配置文件或SQL文件、表。

TMT评估特点:

1、不依赖目标库是否存在,内置语法规则。

2、评估使用语法树解析,可以根据目标库不同版本进行评估,评估结果真实、可靠。

无论哪种方式,均无需提前创建目标库,工具自动生成评估报告。  

功能

说明

对象评估

表、索引、约束、序列、视图、存储过程、函数、触发器、DBLINK、TYPE、同义词、JOB、物化视图。

应用评估

历史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的迁移难点,降低改造成本。

建议在正式迁移前,优先完成兼容性评估,并根据报告制定适配计划。  

立即行动,开启高效迁移之旅!  






往期推荐





活动预告|OpenTenBase 城市行杭州站诚邀您参加
探索TDStore:数据智能调度及相关性能优化实践
腾讯云数据库PostgreSQL+DeepSeek:SQL直通大模型,简单代码构建AI应用


好文和朋友一起看!

文章转载自腾讯云数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论