写点什么

【YashanDB 知识库】YMP 迁移达梦时,报错:查询出现异常

作者:YashanDB
  • 2025-01-06
    广东
  • 本文字数:819 字

    阅读完需:约 3 分钟

【标题】YMP 迁移达梦时,报错:查询出现异常

【问题分类】数据导入导出

【关键字】数据同步,YMP,评估,数据迁移,SQL 报错

【问题描述】YMP 迁移达梦时,在评估阶段出现报错:(查询出现异常,执行 SQL 为:......)


错误日志为:YMP-ERROR-2024-11-28-0.log

【问题原因分析】查询达梦数据库数据字典出现报错,需修改达梦参数配置,或者在 YMP 中使用 HINT。

【解决/规避方法】

达梦执行以下 SQL,修改系统参数配置:

-- 达梦执行以下参数修改
sp_set_para_value(1, 'VIEW_FILTER_MERGING', 29);
-- 或者在业务sql中使用以下hint:
SELECT /*+VIEW_FILTER_MERGING(29)*/
sel.OWNER,
sel.NAME,
sel.TYPE,
sel.STATUS,
sel.TABLE_NAME
FROM
(
SELECT
a.OWNER,
a.INDEX_NAME AS NAME,
'INDEX' AS TYPE,
obj.STATUS,
a.TABLE_NAME
FROM
ALL_INDEXES a
JOIN
ALL_OBJECTS obj
ON
a.OWNER = obj.OWNER
AND a.TABLE_NAME = obj.OBJECT_NAME
WHERE
a.owner IN ('GDP7SZGCH_LH')
AND obj.OBJECT_TYPE = 'TABLE'
AND a.INDEX_TYPE != 'VIRTUAL'
AND NOT (
(a.TABLE_NAME LIKE 'BM$_%'
OR a.TABLE_NAME LIKE 'BMJ$_%'
OR a.TABLE_NAME LIKE 'MDRT$_%'
OR a.TABLE_NAME LIKE 'MLOG$_%'
OR
a.TABLE_NAME LIKE 'MTAB$_%'
OR a.TABLE_NAME LIKE 'MVIEW$_%'
OR a.TABLE_NAME LIKE 'MTRG$_%'
OR a.TABLE_NAME LIKE 'STAT$_%')
OR
(a.TABLE_NAME LIKE '%$ALOG'
OR a.TABLE_NAME LIKE '%$AUX'
OR a.TABLE_NAME LIKE '%$DAUX'
OR a.TABLE_NAME LIKE '%$RAUX'
OR
a.TABLE_NAME LIKE '%$ROT'
OR a.TABLE_NAME LIKE '%$UAUX')
)) sel
JOIN
ALL_IND_COLUMNS col
ON
sel.OWNER = col.INDEX_OWNER
AND sel.NAME = col.INDEX_NAME
AND sel.TABLE_NAME = col.TABLE_NAME
复制代码

重新进行迁移即可。(已反馈 YMP 开发)

【影响范围】所有版本

【修复版本】-

发布于: 刚刚阅读数: 3
用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
【YashanDB知识库】YMP迁移达梦时,报错:查询出现异常_数据库_YashanDB_InfoQ写作社区