溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

發(fā)布時(shí)間:2020-08-10 16:36:09 來源:ITPUB博客 閱讀:150 作者:chenoracle 欄目:關(guān)系型數(shù)據(jù)庫

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理

Mongodb 、 Oracle 、 SQLServer

場景:

公司的集成手機(jī)平臺(tái)后臺(tái)的核心數(shù)據(jù)庫采用的Mongodb 讀寫分離架構(gòu),所有異構(gòu)系統(tǒng)平臺(tái) ( 財(cái)務(wù)、ERP 、計(jì)劃 ......)( 對應(yīng)的數(shù)據(jù)庫ORACLE 、 SQLServer 、 Mysql ......) 流程待辦會(huì)實(shí)時(shí)推送到Mongodb 庫里,實(shí)現(xiàn)所有系統(tǒng)手機(jī)端移動(dòng)審批。

問題:

各個(gè)系統(tǒng)供應(yīng)商對接集成手機(jī)平臺(tái)系統(tǒng)水平參差不齊,經(jīng)常出現(xiàn)個(gè)別系統(tǒng)待辦未推到集成手機(jī)平臺(tái)或待辦轉(zhuǎn)已辦失敗的問題;

解決方案:

各個(gè)系統(tǒng)供應(yīng)商優(yōu)化接口周期長,在優(yōu)化完成之前,需要有手動(dòng)處理機(jī)制,即出現(xiàn)待辦未推送或待辦轉(zhuǎn)已辦失敗問題,可以及時(shí)知道并及時(shí)手動(dòng)處理。

一:待辦出現(xiàn)問題時(shí),第一時(shí)間向相關(guān)系統(tǒng)管理員發(fā)送預(yù)警郵件,及時(shí)手動(dòng)干預(yù),避免問題升級;

二:監(jiān)控大屏實(shí)時(shí)展示失敗的待辦信息;

三:當(dāng)失敗的待辦數(shù)量很龐大,批量修復(fù)并定期集中處理歷史失敗的待辦;

一:待辦出現(xiàn)問題時(shí),第一時(shí)間向相關(guān)系統(tǒng)管理員發(fā)送預(yù)警郵件,及時(shí)手動(dòng)干預(yù),避免問題升級;

由于待辦出現(xiàn)問題時(shí)會(huì)在相應(yīng)系統(tǒng)數(shù)據(jù)庫里生成一條日志記錄,可以通過觸發(fā)器實(shí)現(xiàn)郵件預(yù)警,以SQLServer 數(shù)據(jù)庫為例:

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer) 集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer) 集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer) 集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

二:監(jiān)控大屏實(shí)時(shí)展示失敗的待辦信息

通過Grafana 監(jiān)控平臺(tái),可以添加 SQLServer 等數(shù)據(jù)源,實(shí)時(shí)展現(xiàn)失敗待辦信息;

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer) 集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

三:當(dāng)失敗的待辦數(shù)量很龐大,批量修復(fù)或定期處理歷史失敗的待辦

可以通過集成手機(jī)平臺(tái)數(shù)據(jù)庫(Mongodb) 的待辦表和各個(gè)系統(tǒng)數(shù)據(jù)庫 (ORACLE 、 SQLServer 、 Mysql) 待辦表做對比:

1 集成手機(jī)平臺(tái)數(shù)據(jù)庫 (Mongodb) 的待辦數(shù)據(jù)多于各個(gè)系統(tǒng)數(shù)據(jù)庫待辦數(shù)據(jù),表示待辦轉(zhuǎn)已辦失敗,需要手動(dòng)刪除多余的待辦信息;

2 集成手機(jī)平臺(tái)數(shù)據(jù)庫 (Mongodb) 的待辦數(shù)據(jù)少于各個(gè)系統(tǒng)數(shù)據(jù)庫待辦數(shù)據(jù),表示待辦推送失敗,需要手動(dòng)重推;

那么如何批量查出所有系統(tǒng)待辦轉(zhuǎn)已辦失敗的數(shù)據(jù)

(1) 導(dǎo)出集成手機(jī)平臺(tái)數(shù)據(jù)庫(Mongodb) 的待辦數(shù)據(jù)到 execl

Mongodb 所在服務(wù)器操作系統(tǒng)為 Centos7.5, 可以在自己電腦上安裝一個(gè) Mongodb 客戶端,使用 mongoexport 工具導(dǎo)出數(shù)據(jù);

導(dǎo)出語句:

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

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

默認(rèn)情況下打開CSV 文件中文是亂碼的:

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

通過如下方式解決亂碼問題:

--- 打開方式 ( 記事本 )--- 格式 --- 字體 --- 中文 GB2312--- 保存 ----csv 方式打開 --- 調(diào)整格式 --- 另存為 execl 格式文件

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

( 2 ) 導(dǎo)出各個(gè)系統(tǒng)數(shù)據(jù)庫(ORACLE 、 SQLServer 、 Mysql) 的待辦數(shù)據(jù)到 execl

例如 系統(tǒng)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) 對比數(shù)據(jù)

---1 集成手機(jī)平臺(tái)數(shù)據(jù)庫 (Mongodb) 的待辦數(shù)據(jù)多于各個(gè)系統(tǒng)數(shù)據(jù)庫待辦數(shù)據(jù),表示待辦轉(zhuǎn)已辦失敗,需要手動(dòng)刪除;

---2 集成手機(jī)平臺(tái)數(shù)據(jù)庫 (Mongodb) 的待辦數(shù)據(jù)少于各個(gè)系統(tǒng)數(shù)據(jù)庫待辦數(shù)據(jù),表示待辦推送失敗,需要手動(dòng)重推;

數(shù)據(jù)對比有兩種方式:

1 :通過execl 函數(shù)對比各個(gè)系統(tǒng)數(shù)據(jù),找出待辦轉(zhuǎn)已辦失敗的數(shù)據(jù)和待辦未推的數(shù)據(jù);

但是實(shí)際情況可能會(huì)比較復(fù)雜,比如各系統(tǒng)時(shí)間格式不一致、推送待辦有延時(shí)、標(biāo)題不一致等問題,通過execl 很難對比數(shù)據(jù),可以通過 SQL 語句實(shí)現(xiàn)數(shù)據(jù)對比;

2 :將所有系統(tǒng)對應(yīng)的Mongodb Oracle 、 SQLServer 、 Mysql 待辦數(shù)據(jù)導(dǎo)出到execl 中,在將所有系統(tǒng)execl 數(shù)據(jù)通過plsql 全部導(dǎo)入到 oracle 數(shù)據(jù)庫中,通過 sql 對比找出想要的數(shù)據(jù),例如 Mongodb 數(shù)據(jù)表左連接各系統(tǒng)Oracle 、 SQLServer 、 Mysql 數(shù)據(jù)表,匹配不上的數(shù)據(jù),既是待辦轉(zhuǎn)已辦失敗的數(shù)據(jù)。 Oracle 、 SQLServer 、 Mysql 數(shù)據(jù)表左連接 Mongodb 數(shù)據(jù)表,匹配不上的數(shù)據(jù),既是未推待辦的數(shù)據(jù)。

(1)oracle 先創(chuàng)建多張表,并通過plsql 導(dǎo)入各個(gè)系統(tǒng)數(shù)據(jù);

例如:

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 進(jìn)行數(shù)據(jù)對比

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

                a.account cjc 登錄名,

                a.updatetime cjc 到達(dá)時(shí)間,

                a.content enanar 標(biāo)題 ,

                b.username erp 用戶名 ,

                b.account erp 登錄名 ,

                b.updatetime erp 到達(dá)時(shí)間 ,

                b.content erp 標(biāo)題

  from undo cjc  a

  left JOIN undoerp b

    on a.account = b.account

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

 where a.content = xxx 系統(tǒng)

 order by erp 登錄名 ;

右側(cè)沒有匹配上的數(shù)據(jù),既是待辦轉(zhuǎn)已辦失敗的數(shù)據(jù);

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

邏輯刪除有問題的待辦:

即通過主鍵ID 唯一定位到有問題的待辦,將 delete 字段值由 false 改成 true ;

單條語句如下:

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

根據(jù)ID 等信息,批量生成刪除錯(cuò)誤待辦的腳本,即可批量修復(fù)待辦轉(zhuǎn)已辦失敗問題;

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

歡迎關(guān)注我的微信公眾號"IT小Chen",共同學(xué)習(xí),共同成長?。。?/span>

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)

集成手機(jī)平臺(tái)待辦數(shù)據(jù)失敗問題跟蹤和處理(Mongodb、Oracle、SQLServer)


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI