iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)
  • 776
分享到

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

2024-04-02 19:04:59 776人浏览 安东尼
摘要

集成手机平台待办数据失败问题跟踪和处理 Mongodb 、 Oracle 、 SQLServer 场景: 公司的集成手机平台后台的核心数据库采用的mongoDB 读写分离架构,所有异构系统

集成手机平台待办数据失败问题跟踪和处理

Mongodb 、 Oracle 、 SQLServer

场景:

公司的集成手机平台后台的核心数据库采用的mongoDB 读写分离架构,所有异构系统平台 ( 财务、ERP 、计划 ......)( 对应的数据库oraclesqlServer 、 Mysql ......) 流程待办会实时推送到MonGodb 库里,实现所有系统手机端移动审批。

问题:

各个系统供应商对接集成手机平台系统水平参差不齐,经常出现个别系统待办未推到集成手机平台或待办转已办失败的问题;

解决方案:

各个系统供应商优化接口周期长,在优化完成之前,需要有手动处理机制,即出现待办未推送或待办转已办失败问题,可以及时知道并及时手动处理。

一:待办出现问题时,第一时间向相关系统管理员发送预警邮件,及时手动干预,避免问题升级;

二:监控大屏实时展示失败的待办信息;

三:当失败的待办数量很庞大,批量修复并定期集中处理历史失败的待办;

一:待办出现问题时,第一时间向相关系统管理员发送预警邮件,及时手动干预,避免问题升级;

由于待办出现问题时会在相应系统数据库里生成一条日志记录,可以通过触发器实现邮件预警,以SQLServer 数据库为例:

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer) 集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer) 集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer) 集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

二:监控大屏实时展示失败的待办信息

通过Grafana 监控平台,可以添加 SQLServer 等数据源,实时展现失败待办信息;

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer) 集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

三:当失败的待办数量很庞大,批量修复或定期处理历史失败的待办

可以通过集成手机平台数据库(Mongodb) 的待办表和各个系统数据库 (ORACLE 、 SQLServer 、 mysql) 待办表做对比:

1 集成手机平台数据库 (Mongodb) 的待办数据多于各个系统数据库待办数据,表示待办转已办失败,需要手动删除多余的待办信息;

2 集成手机平台数据库 (Mongodb) 的待办数据少于各个系统数据库待办数据,表示待办推送失败,需要手动重推;

那么如何批量查出所有系统待办转已办失败的数据

(1) 导出集成手机平台数据库(Mongodb) 的待办数据到 execl

Mongodb 所在服务器操作系统Centos7.5, 可以在自己电脑上安装一个 Mongodb 客户端,使用 mongoexport 工具导出数据;

导出语句:

D:\MongoDB\Server\3.4\bin>

mongoexport.exe --csv --host 192.100.100.100:27017 /d testdb /c TEST_TdUndo /f "_id,userName,account,createTime,content" /q "{"delete": false}" /o C:\Users\Administrator\Desktop\all cjc _Undo1219a.csv

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

默认情况下打开CSV 文件中文是乱码的:

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

通过如下方式解决乱码问题:

--- 打开方式 ( 记事本 )--- 格式 --- 字体 --- 中文 GB2312--- 保存 ----csv 方式打开 --- 调整格式 --- 另存为 execl 格式文件

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

( 2 ) 导出各个系统数据库(ORACLE 、 SQLServer 、 Mysql) 的待办数据到 execl

例如 系统1 :

select Name, Account , Ini Date, content  from undoerp

where UnDoStatus=' 待办 '

and  CreateDate>='2019-11- 01  08:00:00.000'

and  CreateDate<='2019-12- 01  23:59:00.000';

(3) 对比数据

---1 集成手机平台数据库 (Mongodb) 的待办数据多于各个系统数据库待办数据,表示待办转已办失败,需要手动删除;

---2 集成手机平台数据库 (Mongodb) 的待办数据少于各个系统数据库待办数据,表示待办推送失败,需要手动重推;

数据对比有两种方式:

1 :通过execl 函数对比各个系统数据,找出待办转已办失败的数据和待办未推的数据;

但是实际情况可能会比较复杂,比如各系统时间格式不一致、推送待办有延时、标题不一致等问题,通过execl 很难对比数据,可以通过 SQL 语句实现数据对比;

2 :将所有系统对应的Mongodb 、 Oracle 、 SQLServer 、 Mysql 待办数据导出到execl 中,在将所有系统execl 数据通过plsql 全部导入到 oracle 数据库中,通过 sql 对比找出想要的数据,例如 Mongodb 数据表左连接各系统Oracle 、 SQLServer 、 Mysql 数据表,匹配不上的数据,既是待办转已办失败的数据。 Oracle 、 SQLServer 、 Mysql 数据表左连接 Mongodb 数据表,匹配不上的数据,既是未推待办的数据。

(1)oracle 先创建多张表,并通过plsql 导入各个系统数据;

例如:

create table undo cjc (id varchar2(500),userName varchar2(500),account varchar2(100), updateTime varchar2(100),content nvarchar2(2000));

select * from undo cjc  for update;

create table undo erp (userName varchar2(500),account varchar2(100), updateTime varchar2(100),content nvarchar2(2000),isstart varchar2(100));

select * from undo erp  for update;

……

(2) 通过sql 进行数据对比

select distinct a.id,a.username cjc 用户名,

                a.account cjc 登录名,

                a.updatetime cjc 到达时间,

                a.content enanar 标题 ,

                b.username erp 用户名 ,

                b.account erp 登录名 ,

                b.updatetime erp 到达时间 ,

                b.content erp 标题

  from undo cjc  a

  left JOIN undoerp b

    on a.account = b.account

   and a.content like '%' || b.content || '%'

 where a.content = ‘ xxx 系统 ’

 order by erp 登录名 ;

右侧没有匹配上的数据,既是待办转已办失败的数据;

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

逻辑删除有问题的待办:

即通过主键ID 唯一定位到有问题的待办,将 delete 字段值由 false 改成 true ;

单条语句如下:

db.T_ChenUndo.update({"_id":ObjectId("5dd3xxxxx"),"account":"cjc","delete":false},{$set:{delete:true}},{multi:true});

根据ID 等信息,批量生成删除错误待办的脚本,即可批量修复待办转已办失败问题;

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)


您可能感兴趣的文档:

--结束END--

本文标题: 集成手机平台待办数据失败问题跟踪和处理(Mongodb、Oracle、SQLServer)

本文链接: https://www.lsjlt.com/news/47780.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作