本技術(shù)涉及計(jì)算機(jī),特別是涉及一種數(shù)據(jù)修復(fù)方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、數(shù)據(jù)庫(kù)是信息系統(tǒng)的核心和基礎(chǔ),用于存儲(chǔ)和處理大量數(shù)據(jù)。在線(xiàn)系統(tǒng)的運(yùn)行中經(jīng)常會(huì)遇到數(shù)據(jù)損壞、數(shù)據(jù)丟失或數(shù)據(jù)庫(kù)操作錯(cuò)誤等問(wèn)題。為了保證系統(tǒng)的正常運(yùn)行,需要使用特定的工具修復(fù)和恢復(fù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。目前一般采用數(shù)據(jù)庫(kù)備份恢復(fù)數(shù)據(jù)或由人工手動(dòng)修復(fù)數(shù)據(jù)。但是備份與恢復(fù)方式操作繁瑣、耗時(shí)長(zhǎng),便于對(duì)整表進(jìn)行恢復(fù),但是對(duì)于部分?jǐn)?shù)據(jù)的恢復(fù)效果較差;手動(dòng)修復(fù)的方式容易出錯(cuò),如果少加一個(gè)執(zhí)行條件可能修改或刪除整張表的數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)思路
1、基于此,有必要針對(duì)上述技術(shù)問(wèn)題,提供一種數(shù)據(jù)修復(fù)方法、裝置、計(jì)算機(jī)設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),能夠快速、準(zhǔn)確且靈活地修復(fù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
2、第一方面,本技術(shù)提供了一種數(shù)據(jù)修復(fù)方法。所述方法包括:
3、通過(guò)控制器對(duì)接口請(qǐng)求進(jìn)行解析,確定所述接口請(qǐng)求對(duì)應(yīng)的目標(biāo)接口;
4、從配置單元中獲取所述目標(biāo)接口對(duì)應(yīng)的至少一個(gè)修復(fù)執(zhí)行單元、以及每個(gè)修復(fù)執(zhí)行單元對(duì)應(yīng)的至少一條sql語(yǔ)句;所述修復(fù)執(zhí)行單元指向?qū)?yīng)的數(shù)據(jù)庫(kù);所述配置單元管理有接口、修復(fù)執(zhí)行單元以及sql語(yǔ)句之間的對(duì)應(yīng)關(guān)系;
5、基于所述目標(biāo)接口向所述至少一個(gè)修復(fù)執(zhí)行單元發(fā)送對(duì)應(yīng)的sql語(yǔ)句,以指示每個(gè)修復(fù)執(zhí)行單元在指向的數(shù)據(jù)庫(kù)中執(zhí)行sql語(yǔ)句對(duì)應(yīng)的sql命令,對(duì)指向的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修復(fù)。
6、在其中一個(gè)實(shí)施例中,所述接口請(qǐng)求中包括修復(fù)參數(shù);所述方法還包括:
7、根據(jù)所述目標(biāo)接口將所述修復(fù)參數(shù)傳遞至所述至少一個(gè)修復(fù)執(zhí)行單元,以指示每個(gè)修復(fù)執(zhí)行單元根據(jù)所述修復(fù)參數(shù)對(duì)指向的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修復(fù)。
8、在其中一個(gè)實(shí)施例中,所述通過(guò)控制器對(duì)接口請(qǐng)求進(jìn)行解析,確定所述接口請(qǐng)求對(duì)應(yīng)的目標(biāo)接口之前,所述方法還包括:
9、在應(yīng)用程序啟動(dòng)時(shí),從所述配置單元讀取所述應(yīng)用程序?qū)?yīng)的接口列表;
10、根據(jù)所述接口列表創(chuàng)建對(duì)應(yīng)的控制器,并將所述控制器注冊(cè)到所述應(yīng)用程序的上下文中。
11、在其中一個(gè)實(shí)施例中,所述方法還包括:
12、在監(jiān)聽(tīng)到所述配置單元中所述應(yīng)用程序?qū)?yīng)的數(shù)據(jù)更新時(shí),從所述配置單元讀取所述應(yīng)用程序?qū)?yīng)的最新接口列表;
13、根據(jù)所述最新接口列表重新注冊(cè)所述應(yīng)用程序?qū)?yīng)的控制器。
14、在其中一個(gè)實(shí)施例中,所述接口請(qǐng)求中包括請(qǐng)求標(biāo)識(shí);所述通過(guò)控制器對(duì)接口請(qǐng)求進(jìn)行解析,確定所述接口請(qǐng)求對(duì)應(yīng)的目標(biāo)接口之前,所述方法還包括:
15、通過(guò)中間件獲取所述接口請(qǐng)求中的請(qǐng)求標(biāo)識(shí),并對(duì)所述請(qǐng)求標(biāo)識(shí)進(jìn)行認(rèn)證;
16、在認(rèn)證通過(guò)后,執(zhí)行所述通過(guò)控制器對(duì)接口請(qǐng)求進(jìn)行解析,確定所述接口請(qǐng)求對(duì)應(yīng)的目標(biāo)接口的步驟。
17、第二方面,本技術(shù)提供了一種數(shù)據(jù)修復(fù)方法。所述方法包括:
18、創(chuàng)建配置單元,所述配置單元管理有接口、修復(fù)執(zhí)行單元以及sql語(yǔ)句之間的對(duì)應(yīng)關(guān)系;
19、接收配置請(qǐng)求,并根據(jù)所述配置請(qǐng)求中攜帶的數(shù)據(jù)對(duì)所述配置單元進(jìn)行更新;
20、所述配置單元用于在目標(biāo)接口的調(diào)用下,反饋所述目標(biāo)接口對(duì)應(yīng)的至少一個(gè)修復(fù)執(zhí)行單元、以及每個(gè)修復(fù)執(zhí)行單元對(duì)應(yīng)的至少一條sql語(yǔ)句,以指示所述目標(biāo)接口向所述至少一個(gè)修復(fù)執(zhí)行單元發(fā)送對(duì)應(yīng)的sql語(yǔ)句;所述修復(fù)執(zhí)行單元指向?qū)?yīng)的數(shù)據(jù)庫(kù);所述sql語(yǔ)句用于指示每個(gè)修復(fù)執(zhí)行單元在指向的數(shù)據(jù)庫(kù)中執(zhí)行對(duì)應(yīng)的sql命令,對(duì)指向的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修復(fù)。
21、在其中一個(gè)實(shí)施例中,所述方法還包括:
22、從所述配置單元獲取接口配置信息;
23、根據(jù)所述接口配置信息生成接口文檔;
24、將所述接口文檔反饋給前端,以指示所述前端根據(jù)對(duì)所述接口文檔進(jìn)行展示,并根據(jù)展示界面輸入接口請(qǐng)求;
25、所述根據(jù)所述配置請(qǐng)求中攜帶的數(shù)據(jù)對(duì)所述配置單元進(jìn)行更新之后,所述方法還包括:
26、從更新后的配置單元獲取更新后的接口配置信息;
27、根據(jù)更新后的接口配置信息重新生成接口文檔。
28、第三方面,本技術(shù)還提供了一種數(shù)據(jù)修復(fù)裝置。所述裝置包括:
29、解析模塊,用于通過(guò)控制器對(duì)接口請(qǐng)求進(jìn)行解析,確定所述接口請(qǐng)求對(duì)應(yīng)的目標(biāo)接口;
30、獲取模塊,用于從配置單元中獲取所述目標(biāo)接口對(duì)應(yīng)的至少一個(gè)修復(fù)執(zhí)行單元、以及每個(gè)修復(fù)執(zhí)行單元對(duì)應(yīng)的至少一條sql語(yǔ)句;所述修復(fù)執(zhí)行單元指向?qū)?yīng)的數(shù)據(jù)庫(kù);所述配置單元管理有接口、修復(fù)執(zhí)行單元以及sql語(yǔ)句之間的對(duì)應(yīng)關(guān)系;
31、修復(fù)模塊,用于基于所述目標(biāo)接口向所述至少一個(gè)修復(fù)執(zhí)行單元發(fā)送對(duì)應(yīng)的sql語(yǔ)句,以指示每個(gè)修復(fù)執(zhí)行單元在指向的數(shù)據(jù)庫(kù)中執(zhí)行sql語(yǔ)句對(duì)應(yīng)的sql命令,對(duì)指向的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修復(fù)。
32、第四方面,本技術(shù)還提供了一種計(jì)算機(jī)設(shè)備。所述計(jì)算機(jī)設(shè)備包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)以下步驟:
33、通過(guò)控制器對(duì)接口請(qǐng)求進(jìn)行解析,確定所述接口請(qǐng)求對(duì)應(yīng)的目標(biāo)接口;
34、從配置單元中獲取所述目標(biāo)接口對(duì)應(yīng)的至少一個(gè)修復(fù)執(zhí)行單元、以及每個(gè)修復(fù)執(zhí)行單元對(duì)應(yīng)的至少一條sql語(yǔ)句;所述修復(fù)執(zhí)行單元指向?qū)?yīng)的數(shù)據(jù)庫(kù);所述配置單元管理有接口、修復(fù)執(zhí)行單元以及sql語(yǔ)句之間的對(duì)應(yīng)關(guān)系;
35、基于所述目標(biāo)接口向所述至少一個(gè)修復(fù)執(zhí)行單元發(fā)送對(duì)應(yīng)的sql語(yǔ)句,以指示每個(gè)修復(fù)執(zhí)行單元在指向的數(shù)據(jù)庫(kù)中執(zhí)行sql語(yǔ)句對(duì)應(yīng)的sql命令,對(duì)指向的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修復(fù)。
36、第五方面,本技術(shù)還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:
37、通過(guò)控制器對(duì)接口請(qǐng)求進(jìn)行解析,確定所述接口請(qǐng)求對(duì)應(yīng)的目標(biāo)接口;
38、從配置單元中獲取所述目標(biāo)接口對(duì)應(yīng)的至少一個(gè)修復(fù)執(zhí)行單元、以及每個(gè)修復(fù)執(zhí)行單元對(duì)應(yīng)的至少一條sql語(yǔ)句;所述修復(fù)執(zhí)行單元指向?qū)?yīng)的數(shù)據(jù)庫(kù);所述配置單元管理有接口、修復(fù)執(zhí)行單元以及sql語(yǔ)句之間的對(duì)應(yīng)關(guān)系;
39、基于所述目標(biāo)接口向所述至少一個(gè)修復(fù)執(zhí)行單元發(fā)送對(duì)應(yīng)的sql語(yǔ)句,以指示每個(gè)修復(fù)執(zhí)行單元在指向的數(shù)據(jù)庫(kù)中執(zhí)行sql語(yǔ)句對(duì)應(yīng)的sql命令,對(duì)指向的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修復(fù)。
40、上述數(shù)據(jù)修復(fù)方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì),通過(guò)控制器對(duì)接口請(qǐng)求進(jìn)行解析,確定接口請(qǐng)求對(duì)應(yīng)的目標(biāo)接口;從配置單元中獲取目標(biāo)接口對(duì)應(yīng)的至少一個(gè)修復(fù)執(zhí)行單元、以及每個(gè)修復(fù)執(zhí)行單元對(duì)應(yīng)的至少一條sql語(yǔ)句;修復(fù)執(zhí)行單元指向?qū)?yīng)的數(shù)據(jù)庫(kù);配置單元管理有接口、修復(fù)執(zhí)行單元以及sql語(yǔ)句之間的對(duì)應(yīng)關(guān)系;基于目標(biāo)接口向至少一個(gè)修復(fù)執(zhí)行單元發(fā)送對(duì)應(yīng)的sql語(yǔ)句,以指示每個(gè)修復(fù)執(zhí)行單元在指向的數(shù)據(jù)庫(kù)中執(zhí)行sql語(yǔ)句對(duì)應(yīng)的sql命令,對(duì)指向的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修復(fù)。通過(guò)上述方式,使用配置單元中提前配置好的sql語(yǔ)句進(jìn)行數(shù)據(jù)修復(fù),一方面能夠基于預(yù)先配置的sql語(yǔ)句修復(fù)整表或修復(fù)部分表格,另一方面能夠避免手動(dòng)修復(fù)中sql語(yǔ)句缺少執(zhí)行條件的問(wèn)題,提升了數(shù)據(jù)修復(fù)的靈活性和準(zhǔn)確性;通過(guò)控制器響應(yīng)不同的接口請(qǐng)求,能夠適用于不同的業(yè)務(wù)需求,對(duì)不同的數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行修復(fù),操作靈活,且無(wú)需修改工具代碼,提升了數(shù)據(jù)修復(fù)工具的可擴(kuò)展性。