反馈已提交

网络繁忙

数据同步问题排查

  • 文档创建者:fanruan12321
  • 历史版本:18
  • 最近更新:Wendy123456 于 2024-04-15
  • DB2 数据库SQL语句中的as为中文名不生效

    问题描述:

    任务运行失败,报错超出内存限制。

    DB2 数据库SQL语句中的as为中文名在数据输出时字段映射没有生效。

    1713168306310043.png

    解决方案:

    FDL4.0.22.1版本已经修复该问题。建议升级至该版本。

    数据同步配置界面空白

    问题描述:

    数据来源界面空白,如下图所示:

    21.png

    解决方案:

    Chrome浏览器版本过低,或者使用的是IE或者其它浏览器。推荐使用最新版本的Chrome浏览器。

    MySQL 目标端数据同步报错:Row size too large. 

    问题描述:

    MySQL 作为目标端,数据同步数据去向选择自动建表报错:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535.

    原因分析:

    varchar 字段太长了,MySQL 的 varchar长度之和不能超过 65535。

    解决方案:

    把 varchar 字段长度改小一点,或者改成text、blob类型,如果这个无法解决的话再改表类型。

    数据同步报错:Database ip or porterror

    问题描述:

    数据同步报错数据来源: Database ip or porterror.- 

    具体错误信息为: com.mysaljdbc.exceptions,dbc4.CommunicationsException: Communications link failure

    解决方案:

    阿里云上的数据库,需要开放白名单

    任务执行日志界面报错Long类型不能转为Bytes

    问题描述:

    22.png

    原因分析:

    tinyint(1)类型字段被代码读取为bit类型字段

    解决方案:

    [通用]配置数据连接中的数据连接 URL 后增加参数?tinyInt1isBit=false

    脏数据条数检查不通过,限制是[(0]条, 但实际上捕获了[1]条

    问题描述:

    任务执行界面报错:limit [0] records , but catch [13] records,继续查看fanruan.log日志是否有相关报错。

    23.png

    原因1

    查看来源表中某字段有空值,但是目标表中该字段设置了不可为空

    解决方案:

    过滤掉来源表中某字段为空的数据,或者设置目标表字段可为空

    原因2

    来源数据与目标数据的字段类型或字段长度对不上

    解决方案:

    修改目标表字段类型、字段长度,与来源表相符

    原因3

    当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'CB' 中的标识列插入显式值。

    解决方案:

    数据库配置问题set IDENTITY_INSERT Student ON。

    原因4:

    报错如图,来源库或者目标库存在MySQL数据库,且存在timestamp字段类型,该字段类型下有表内容不在‘1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07'UTC范围内。

    1713168460424180.png

    解决方案:

    在数据库中将字段类型修改为datetime即可,目前FDL对于MySQL数据库的datetime字段类型会自动映射为timestamp,数据库中修改成功即可。

    原因5:

    报错如图,表空间不够导致数据无法写入。

    25.png

    解决方案:

    对表空间不设上限。

    原因6:

    将截断字符串或二进制数据。

    26.png

    解决方案:

    字符串长度超出限制,根据来源库的字段长度在字段映射选择合适的目标库的字段类型。

    原因7:

    数据类型text和nvarchar在equal to运算符中不兼容。

    27.png

    解决方案:

    SQL Server数据库里设计的表的数据类型有text,无法完成转换。字段类型设置为varchar(n)【n根据来源表字段长度自行设置】。

    小结

    报错脏数据目前发现的原因有:

    1.字段类型不匹配 

    2.字段长度不够

    3.inentity insert设置为off

    4.复制节点没有点击字段映射

    5.时间超过timestamp的限制范围

    任务日志界面报错:您填写的参数值不合法

    报错详细

    com.fr.dp.exception.FineDPException: Code:[DBUtilErrorCode-02], Description:[您填写的参数值不合法.]. - 您的配置文件中的列配置信息有误. 因为您未配置写入数据库表的列名称,fdl获取不到列信息. 请检查您的配置并作出修改.

    原因:

    来源表字段获取失败

    解决方案:

    检查来源表数据预览是否成功,若是数据库数据源,可能是sql语法错误,若是API数据源,可能token失效

    预览数据来源报错:无法获取已存在的目标表

    问题描述:

    在数据同步配置界面选择数据源后,报错无法获取已存在的目标表

    28.png

    查看fanruan.log日志报错:不支持的字符集(在类路径中添加orai18n.jar)

    29.png

    原因分析:

    lib 中缺少 orai18n.jar 包

    解决方案:

    FDL 的 lib 中增加 orai18n.jar 包即可

    SqlServer 预览报错:数据连接异常 - DataBase[sqlserver2016] get data failed!

    问题描述:

    SqlServer 数据表的字段带括号,数据预览就会报错:数据连接异常 - DataBase[sqlserver2016] get data failed!

    1713168634620896.png

    解决方案:

    需要在SQL 取字段的时候对有括号的字段增加[]。

    1713168667637156.png

    数据来源选择API,预览时执行失败

    报错详细:

    com.fr.dp.exception.FineDPException: API_DATA_INVALID_ERROR - ApiReader can't get data of column [data], please check api response.

    原因:

    API数据源token失效,读不到data字段

    解决方案:

    重新获取API数据源的token

    数据来源选择API,预览时显示数据为空值

    原因:

    请求头中可能未指定通过json的格式进行取数

    解决方案:

    点开更多配置,请求头中添加: {"Content-Type":"application/json"}

    运行任务显示:服务器内部错误


    原因1:核实触发了20009规则,该规则主要拦截POST数据请求体解码后包含”%“、”$“等特殊字符的攻击特征,这些字符通常是代码执行攻击利用到字符,所以被识别为攻击拦截了。

    解决方案:

    条件分支用到了$,特殊字符需要加密传输,可以先给$ 这个字符开通道,如下图,或对这个ip加白名单

    原因2:

    服务器禁用了put和delete请求,安装插件“put和delete转换为post”即可。put请求如果被禁用也会出现修改了配置保存不了或点击无效的情况。比如定时任务点击了保存并运行、任务运维修改内存大小后点击保存没用反应。可以通过浏览器F12的network和console选项卡看到put请求报错。

    任务日志界面报错:数据连接异常

    数据连接异常- DataBase[testnora]'s table[ceshi1] get pk names failed! - Table 'testnora.ceshi1' doesn't exist

    原因:

    原因一:可能是编码不同导致无法识别,指定数据连接编码即可。

    原因二:字符串长度过大

    解决方案:

    原因一对应的解决方案:要在数据连接的url处,增加:?useUnicode=true&characterEncoding=UTF-8

    1655436971eGQY[1].png

    原因二对应的解决方案:

    在「字段映射」中调整字段长度,将默认值从 225 调整至 100:

    14.png

    数据去向为GPload时,运行任务出现“connection disabled”的报错

    a89ed3fd09678ea538769253f8d6bd3.png

    原因

    fd和fdl服务器网络可能没互通,网络连接问题

    解决方案:

    检查下fdl服务器的15500端口有没有开放,fd服务器能否ping通fdl服务器

    页面无报错,读取正常但是插入卡住


    原因:

    可能是目标库发生了锁表,导致该表无法进行数据插入

    解决方案:

    检查目标表是否锁表,检查方式和解锁方式见网络:https://blog.csdn.net/zbh1957282580/article/details/122457542

    注:该动作会直接结束锁表进程,有可能会影响他人使用数据库,结束前请注意确认该进程来源,以免影响业务。

    数据同步自动建表报错ORA-12899:value too large for column “xx”(actual:12,maximum:4)

    原因:

    设定的最大字段长度是4,但是实际上是12,超过了规定的最大字段长度

    解决方案:

    报错之后表已经建立成功,需要到数据库中删除已经建立好的表,然后再次自动建表,此次自动建表需要将相关字段的字段长度设置的长一点。

    数据同步报错ORA-24816: Expanded non LONG bind data supplied after actual LONG or LOB column

    原因:

    Oracle 10g在clob字段的一个bug,Oracle在insert语句时,会默认将所有私有属性按照首字母排序,clob字段如果恰好被排在varchar2或其他非clob字段前,就可能会出现此异常。

    解决方案:

    在字段映射界面将clob字段拖拽到最后。

    数据同步报错ORA-01461: can bind a LONG value only for insert into a LONG column

    原因:

    插入字符串超出字符串长度。

    解决方案:

    如图是字段类型为varchar2,但有的字段长度超过4000,将字段类型修改为clob即可。

    写入配置Greenplum(并行装载)时报错gpfdist服务启动异常“”error=13, 权限不够

    原因:

    gpfdist权限为644,所有者只有读、取权限,没有可执行权限。

    解决方案:

    赋予该文件可执行权限。

    write columns non-compliant. -写入列要求是目标表列的前缀集

    原因:

    已存在表字段设置读取的字段类型有问题。

    解决方案:

    使用自动建表即可。

    数据同步的数据不一致

    问题描述:

    MySQL 8 数据同步后日期数据和原始值不一致。

    原因分析:

    数据库时区问题。

    解决方案:

    在「数据连接URL」后加后缀?serverTimezone=Asia/Shanghai




    附件列表


    主题: 更新动态
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持