本数据同步操作步骤,适用于新版客户端9850端口。
第一步
- 选择开发平台子模块-->数据同步
第二步
- 在数据库中创建需要同步的表结构(即同步表),在系统中定义同步表,选择同步定义,新增表定义,表名为在数据库创建的同步表表名,说明自定义。
第三步
- 选择左侧数据同步表,选择源数据表,拷贝源数据表字段到目标同步表的语句上。
**注意:如果原数据表与目标同步表字段名数量不一致,需要仔细检查。否则会提示数据字段不一致。
第四步
- 选择新增全部,新增全部列
**注意:黄色框内的内容是否显示,若不显示,请检查数据库中目标同步表是否建立成功或同步表名是否和当前选择的目标同步表名是否一致。
第五步
- 选择刷新列信息,系统会显示出数据类型、长度
**注意:如果刷新没有显示,请检查新建目标同步表的字段是否正确。
**注意:红色方框内的复选框表示,如果勾选表示在同步时会检查所勾选的字段是否有改动,有改动会自动同步。若不勾选,修改源数据表中的数据,目标同步表中不会进行更新。
第六步
- 点击保存
**注意:系统提示未选择主键,需要勾选主键框内的选项,选择目标同步表的主键。如下图所示。
第七步
- 点击测试,测试是否已经同步成功
若code返回为1,则表示数据同步成功。若code不为1,系统同步时间过长也会导致返回不为1,打开数据库,查看数据是否同步成功,若数据库中有数据,则表示已同步成功。若报文字错误,请仔细阅读错误信息,请检查数据同步模板是否存在(若模板不存在,请更新为最新服务器代码,注意是服务器代码,不是客户端代码)。
若code为1,此时数据同步已经成功,如下图所示。
第八步
- 生成Lua同步脚本,配置在服务器上,实时执行数据同步。脚本存放路径统一存放在该\lua_script
第九步
- 打开服务器配置文件,配置lua执行脚本,在run_lua配置项中,修改enable为1,表示启动,0表示禁用。下边新增的参数表示执行数据同步的脚本名,后边参数表示间隔时间,单位为秒,=1表示1s执行一次。
第十步
- 启动服务后,修改源数据表中记录(修改的记录字段必须是第5步勾选变更修改检查且保存完成的字段),执行修改,数据同步已完成。
10.1 手动修改数据库中的数据
10.2 点击系统中的测试按钮
10.3 查看数据库中的记录
数据同步已经完成。
数据同步异常处理:
1)点击"新增所有"后,若下方区域未显示数据结构对应信息,请检查上方两个SQL语句是否书写正确。
2)点击"测试"后,若报错-1,不显示错误信息,请检查下方数据结构对应信息区域中"变更修改检查"是否勾选,若未勾选,则会报错。
3)点击测试后,code为1,报错信息为"Invalid bind variable declaration",请检查是否执行了"刷新列信息",如下图所示。若已执行刷新列信息操作,依旧报错"Invalid bind variable declaration",请检查同步数据中的主键列数据或类型是否正确。
4)插入数据存在pk重复键
同步数据中主键id不唯一,导致同步MES数据库报错,修改需要同步的源数据中的主键id,作为唯一标识。
5)同步数据服务器中报slow,表示正在读取数据。(数据量较大时,读取数据会较缓慢)
6)同步数据超出最大读取范围。
服务器默认的数据同步为10w条,超过10w条数据系统将报错或只同步至10w,超过10w条的部分,服务器将报错超出长度。此时需要检查,当前同步的数据量以及当前同步数据中是否有长度超出目标表中所定义的数据长度,否则会一直报超出当前定义长度。
7)同步数据,服务挂掉且未报异常
首先检查数据是否正常,是否存在异常数据;若数据没有问题,检查同步脚本中的字段长度是否和MES数据库的字段长度对应。若出现异常数据长度,服务会直接崩溃,一定注意检查生成的同步脚本中的数据字段长度是否异常。造成这种问题的原因是,数据类型不一致,导致生成脚本读取类型失败,而异常生成数据类型长度,要先检查客户端数据同步功能中字段是否能对应上,对应不上要及时修改,不然更新列时会生成异常字段长度,再生成脚本,脚本中会保存这个异常字段。