| 本帖最后由 15234496108 于 2023-8-21 09:33 编辑 
 【首先注意:在迁移过程不能随意压缩解压缩迁移资源包,不同压缩软件或压缩方式,容易引起文件损坏!!!】
 
 一、简介
 
 使用ThingJS-X迁移时,操作如【图1】所示,也就是在“导出数据”和“导入数据”过程中出现的问题,此文将曾经出现的迁移问题列举整理,导致迁移问题的现象、原因、排查步骤以及解决方法。      迁移涉及客户端(浏览器在哪哪就是客户端)、服务端(部署包在哪部署哪就是服务端)、数据库、及迁移文件还有客户端和服务端之间的网络几个要素。      故现象、原因、排查步骤以及解决方法也会从几方面进行介绍。 为方便了解问题发生过程以及排查顺序,几个要素在迁移过程所在的流程节点如下面图所示。二、问题发生的原因 2.1 迁出问题
 客户端
     1.浏览器所在客户端电脑硬盘空间不足,导致迁出失败。服务端     2.服务所在服务端森X服务和文件权限不匹配导致导出失败;       举例:服务端的启动用户为uinnova,非root,但导出的文件夹里有所属于root的文件夹,uinnova用户没有root文件的        权限。     3.服务端硬盘空间不足。(当ES数据库在硬盘空间达到95%及以上时会锁定数据库此时无法进行操作)     4.服务端内存不足。(将数据库文件及产品资源文件打包压缩成压缩包需要内存,内存不足时打包会失败)网络     5.网络超时,比如网速慢、比如网络路由中使用了第三方组件Nginx,Nginx超时。2.2 迁入问题客户端 1.浏览器使用了谷歌翻译,然后在这个传统下导出迁移包然后在导入另一个环境。服务端     2.服务端硬盘空间不足。     3.森X服务Java运行内存不足。网络     4.网络超时,比如网速慢、比如网络路由中使用了第三方组件Nginx,Nginx超时。 迁移文件     5.迁移包不符合规则。     6.迁移包太大。 三、同意排查和处理思路 1、检查浏览器版本比如,Chrome浏览器需要98以上,浏览器版本太低迁入后可能显示的页面样式有问题。   检查方法:   进入浏览器设置查看版本信息,不同浏览器不同以谷歌浏览器为例。   解决方法:升级浏览器 2、检查迁移包大小一般迁移包太大发生在迁入过程,太大时导入时有如下提示报错,一般整个环境迁移包有2g+算大,其中模型文件对迁移影响较大一般有1g+算大。 
  
    检查方法:      一般整个环境迁移包有2g+算大,其中模型文件对迁移影响较大一般有1g+算大。    处理方法:      1、在迁出时分模块迁出,然后分模块迁入。大部分情况这种处理方式最简单,并且能解决大部分迁移问题。或者      2、修改/uino/thingjsx-server/bin/start.sh文件,把-Xms -Xmx改大一点(两个值必须保持一致),改完重启森X即可 3、检查服务器/客户端的硬盘/内存空间相关信息:一般要求内存剩余空间大于等于2GB,硬盘空间使用率不超过85%。 Linux系统检查方法:     a.检查内存使用情况:free -h,画红框部分free大于2GB一般说明处于安全状态     b.检查硬盘使用情况:df -h,画红框部分已用%小于85%一般说明处于安全状态。 Linux硬盘满处理方法: Windows系统检查方法:    a.检查内存使用情况:ctrl + alt +del 三个键一起按,点击任务管理器,空余部分大于2GB一般说明处于安全状态。    b.检查硬盘使用情况:我的电脑,计算下使用率%小于85%一般说明处于安全状态。   Windows硬盘满处理方法:     清理磁盘空间,然后分别关闭森X服务,ES数据库,启动ES数据库,在启动森X服务。 4、网络相关(超时)问题,检查网络及网络相关组件 检查方法:    此类问题一般伴随,在浏览器输入F12,观察console有     a.time-out字样     b.network error 字样       c.net::err_content_decoding_failed或net::err_failed 200 字样     以报错net::err_failed 200为例 解决方法:     a.对于Nginx超时。对于零代码平台修改Nginx配置如下,修改proxy_read_timeout 以及proxy_send_timeout 后面的数字。
     b.对于Tomcat超时。        打开ThingJS-X系统的配置文件,路径如下下 :Thing-X\uino\ThingJSX\thingjsx-server\conf\application-system.properties设置超时时间,改大一些:       比较方便的做法是两个都更改。       特殊情况(发生频率很低),森x前端接口配置的超时时间问题       解决方法:     需要修改/uino/thingjsx-server/src/main/webapp/auth/js目录下的chunk-vendors.xxxxx.js文件,搜索timeout,将timeout=36e5改为timeout=36e6后可以迁出。 5、检查权限 检查方法:       一般权限问题发生在迁出过程,点击导出数据,界面会提示write out file error如下图所示,此时需要检查服务启动权限和文件权限。 检查森X服务启动权限和文件权限方法,如果两个图红框部分不匹配说明权限不一致,需要将权限变成一致,一般出现权限不匹配的背景是用root启动过森X服务然后又使用其他用户启动过森X服务,通常做法是重新用root方式启动森X服务。 a.检查文件权限。     输入ll,红框内有root表示文件权限是root; b.检查森X服务权限     输入 ps -ef|grep thing; 处理方法:     将文件和服务的用户权限变成一致,比较简单的做法是,使用root启动森X服务。 6、ES状态只读     一般权限问题发生在迁入过程,点击导入数据,本来服务器中硬盘空间趋近于95%,然后此时继续导入数据,服务器硬盘空间很有可能超过95%,此时森X服务会停止运行,并且启动不成功,此时需要检查ES状态。 检查方法:         - 查看健康状态 curl -u admin:Admin@123 http://ip:9200/_cat/health;         -返回[FORBIDDEN/12/index read-only / allow delete (api)];         说明ES状态为只读。解决方法
 
 |