电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

元数据升级失败怎么办?排查指南速看!

来源:金蝶云社区作者:金蝶2024-09-2315

元数据升级失败怎么办?排查指南速看!


小编有话说

MC(租户管理中心)是管理苍穹系统不可或缺的工具,其中有一项重要功能是对苍穹系统的升级部署,从补丁官网下载标准补丁包后,运维人员可以使用它一键完成系统的更新升级,也可通过CI/CD流水线工具自动化部署升级。


苍穹系统的升级主要包括集群静态资源微服务JAR包的更新、数据中心升级脚本元数据的部署。每一个环节都必不可少,需要保证升级的准确性。


JAR包升级通常比较顺利,而元数据升级因其部署的复杂性,偶尔会遇到升级失败的情况。当JAR和元数据未同步升级时,会使系统环境中断,整体升级失败。


那遇到元数据升级失败的情况,该如何排查问题呢?本期文章就以小P为例,为大家演示这类问题的排查方法~




1 案例背景


小P在开发环境修改了一个元数据,调整了按钮区的高度后,预期效果应该如下图所示:


图1-调整了按钮区的适合高度


于是提交SVN或Git、启动构建更新测试环境,预览的效果却是下图,按钮区的高度明显大于预期...


图2-更新环境后的预览效果


为了查明具体原因,小P展开了一系列的排查。


2 排查步骤和方法


问题一:元数据没升级成功!升级工具有问题? 


苍穹元数据分为设计时元数据运行时元数据,升级包含设计时部署、运行时重建两个过程。


首先,我们来检查设计时元数据的效果,判断是哪个环节出错,先分别从开发环境和测试环境效果着手。


开发环境的内容区面板设置高度384px,测试环境的内容区面板无高度设置,可以判断,在部署设计时元数据时已发生异常。如下图:


图3-开发环境效果

图4-测试环境效果


接下来,需要找到对应的升级日志,检查这个元数据有没有被更新升级过。检查方法如下:


  • 查找日志并搜索元数据文件


每个环境有独立的升级日志访问地址,找到对应的环境获取对应的升级包,点击进入查看日志,点击“查看详情”查看详细日志,并搜索有问题的元数据数据文件。


图5-查看日志详情并搜索元数据文件


  • 查看是否有 finish字样,或者报错信息


1. 如果有报错,说明元数据没有部署成功,这时通常需要检查提交到SVN上的元数据是否规范完整。

2. 如果有finish字样说明元数据文件确实已经部署过了。

这里搜索的情况是元数据显示finish。日志显示finish代表文件成功升级了。


问题二:文件成功升级了,但是结果不对,是不是升级工具有问题?


苍穹的元数据升级基于元数据文件中的版本号差异,如果版本号和当前环境的元数据一致,则不会被升级。针对这个问题,需要检查元数据版本号的数据,可通过查看dm包中元数据的版本号与数据库中的元数据版本号进行比对,具体步骤如下:


首先,下载并查看dm包中元数据的版本号。


把日志详情中的滚动条拖到最上面,日志中有该dm包的下载地址,下载解压下来,找到问题元数据文件用文本编辑工具打开,找到标签内容。


图6-日志中的dm包的下载地址


然后,比对数据库中的元数据版本号。


在【系统管理】→【查询分析器】中选择元数据库(如果没有元数据库则选择系统库)查询当前环境数据库元数据的版本号进行比对。相关命令如下:


select fversion from t_meta_formdesign where fnumber ='元数据编';



图7-比对数据库中的元数据版本号


结果,发现版本不一致!而且数据库中元数据的创建时间还比较新,那应该确实更新过。出于对DB的信任,小P依然倔强。


问题三:会不会是多份ID相同的元数据先后升级互相覆盖了呢? 


元数据的更新机制是通过元数据id进行内容替换,想到开发中常见的ABA问题,会不会是多份ID相同的元数据先后升级互相覆盖了呢?根据这个思考,小P进一步检查。


搜索整个补丁包发现,确实有两个一模一样的元数据文件分别在不同的应用下。一个在ide应用下,一个在frame应用下。进一步查看datamode.xml,发现ide在frame的后面,ide中的元数据覆盖了frame下的这个元数据。


图8-不同应用下的两个一样的元数据文件

图9-查看datamode.xml文件


问题四:“这咋提交了两个一样的元数据到SVN呢”


小P一看提交记录顿时懊悔不已,原来是之

元数据升级失败怎么办?排查指南速看!

小编有话说MC(租户管理中心)是管理苍穹系统不可或缺的工具,其中有一项重要功能是对苍穹系统的升级部署,从补丁官网下载标准补丁包后,运...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信