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

磐维数据库dtp数据迁移保留字识别问题

原创 杨健超 云和恩墨 2025-05-07
170

中国移动磐维数据库(ChinaMobileDB),简称“磐维数据库”(CMDB)。是中国移动信息技术中心首个基于中国本土开源数据库打造的面向ICT基础设施的自研数据库产品。

其产品内核能力基于华为 OpenGauss 开源软件,并进一步提升了系统稳定性。

本文介绍磐维数据库使用dtp迁移工具从oracle源端迁移数据时,在oracle源端不是保留字,但到dtp工具识别为保留字,转化SQL时加上双引号,造成变量不可用的情况。从dtp迁移工具的角度出发,修改配置库内exbase.tb_reservewords表中的相关保留字即可得到解决。希望可以帮助到在数据迁移过程中遇到此类问题的小伙伴。

一、问题背景

数据迁移过程中,发现迁移成功的触发器不可用,查询磐维库内迁移成功触发器的具体结构对比oracle源端触发器的结构发现,在SQL转化时,自动把user变量识别成保留字,加上了双引号,造成了迁移对象成功,但是user变量不可用的情况。尝试通过修改迁移规则模版识别user保留字来修改,但新版本的dtp迁移工具取消了关键字识别迁移规则,此种方法行不通。

二、解决方案

问题的根本原因是加双引号是因为这些是保留字,如果作为变量,列名,对象名使用就会自动识别加上双引号。在dtp工具的配置库中,exbase.tb_reservewords表中记录了迁移的各种数据库类型的保留字,在数据迁移过程中会识别到这些保留字,自动加上双引号。登录到dtp所在服务器的配置库中,执行如下语句

DELETE FROM exbase.tb_reservewords where reserveword = 'user' and dbtype='vastbase'; 

将此条记录删除掉

systemctl restart panweidb
systemctl restart panwei_dtp

再重启迁移工具配置库和dtp服务,我们再来到前页面使用SQL改写验证

我们发现通过修改配置库中的exbase.tb_reservewords表记录,删除user记录即可解决此类问题,从迁移工具角度解决了此问题,从而避免了手动修改的繁琐工作,提升迁移效率。

三、总结

在我们使用dtp迁移工具进行对象和数据迁移时,遇到相关的保留字被加双引号的情况,都可以通过此方法解决,在配置库中找到exbase.tb_reservewords表,删除对应的保留字记录,即可在迁移过程中解决保留字加双引号的问题,提升我们的迁移效率。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论