欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法和裝置制造方法

文檔序號(hào):6504890閱讀:141來(lái)源:國(guó)知局
主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法和裝置制造方法【專(zhuān)利摘要】本申請(qǐng)公開(kāi)了主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法和裝置,其中,該方法包括:重復(fù)執(zhí)行以下步驟N次,其中,N為預(yù)先設(shè)定的自然數(shù):從主數(shù)據(jù)庫(kù)中檢索與差異主鍵列表中的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,以得到主數(shù)據(jù)庫(kù)記錄集;從從數(shù)據(jù)庫(kù)中檢索與差異主鍵列表中的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,以得到從數(shù)據(jù)庫(kù)記錄集;獲取主數(shù)據(jù)庫(kù)記錄集與從數(shù)據(jù)庫(kù)記錄集中存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵,將差異主鍵列表中的主鍵更新為存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵;執(zhí)行完N次步驟之后,若差異主鍵列表中仍有主鍵,則判斷出主數(shù)據(jù)庫(kù)與從數(shù)據(jù)庫(kù)不一致,否則,則判斷出主數(shù)據(jù)庫(kù)與從數(shù)據(jù)庫(kù)一致。本申請(qǐng)解決了相關(guān)技術(shù)中因?yàn)橥窖舆t而導(dǎo)致的一致性校驗(yàn)的結(jié)果不準(zhǔn)確的技術(shù)問(wèn)題?!緦?zhuān)利說(shuō)明】主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法和裝置【
技術(shù)領(lǐng)域
】[0001]本申請(qǐng)涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法和裝置?!?br>背景技術(shù)
】[0002]MySQL是互聯(lián)網(wǎng)行業(yè)內(nèi)廣泛使用的開(kāi)源數(shù)據(jù)庫(kù)軟件。很多大型網(wǎng)站都在使用MySQL數(shù)據(jù)庫(kù),隨著業(yè)務(wù)規(guī)模不斷的增長(zhǎng),一臺(tái)MySQL數(shù)據(jù)庫(kù)已經(jīng)很難支撐龐大的數(shù)據(jù)訪(fǎng)問(wèn)量。[0003]目前,一個(gè)較為有效的解決方案就是建立MySQL主從集群,其中,從數(shù)據(jù)庫(kù)(又稱(chēng)為備用數(shù)據(jù)庫(kù)或者是備庫(kù))是主數(shù)據(jù)庫(kù)(又稱(chēng)為主庫(kù))的完全鏡像。對(duì)于寫(xiě)請(qǐng)求僅在主庫(kù)上進(jìn)行,讀請(qǐng)求會(huì)均衡分布到所有的數(shù)據(jù)庫(kù)上,這樣就使得整個(gè)數(shù)據(jù)庫(kù)集群可以提供更大容量的讀寫(xiě)服務(wù)。如果MySQL主庫(kù)接收到新增或者是變更數(shù)據(jù),就通過(guò)同步工具,將這些新增或者是變更的數(shù)據(jù)實(shí)時(shí)同步到備庫(kù)。[0004]雖然MySQL主從同步的工具有很多種,然而由于生產(chǎn)環(huán)境的日益復(fù)雜,數(shù)據(jù)庫(kù)故障偶有發(fā)生,MySQLBinlog也存在一些已知的Bug,不可避免的會(huì)出現(xiàn)主從之間數(shù)據(jù)不一致的情況。主從庫(kù)的數(shù)據(jù)不一致,會(huì)大大降低整個(gè)數(shù)據(jù)庫(kù)集群的可用性,同時(shí)可能會(huì)造成嚴(yán)重的生產(chǎn)故障。因此,檢查主從數(shù)據(jù)的數(shù)據(jù)一致性,查找主從數(shù)據(jù)庫(kù)中不一致的數(shù)據(jù)并對(duì)其進(jìn)行修復(fù)就變得尤為重要。另外,在研發(fā)各類(lèi)數(shù)據(jù)庫(kù)主從同步工具時(shí),快速進(jìn)行數(shù)據(jù)一致性校驗(yàn),查找并輸出不一致數(shù)據(jù),是數(shù)據(jù)庫(kù)同步工具研發(fā)、測(cè)試中不可或缺的。[0005]大型的互聯(lián)網(wǎng)企業(yè)都是7*24小時(shí)不停的在線(xiàn)服務(wù),對(duì)于生產(chǎn)線(xiàn)上的數(shù)據(jù)庫(kù)機(jī)器,要求較為嚴(yán)苛。也就對(duì)主從數(shù)據(jù)庫(kù)動(dòng)態(tài)一致性校驗(yàn)提出了以下幾方面的要求:[0006]1)校驗(yàn)工具一般不允許在主庫(kù)、從庫(kù)中寫(xiě)入數(shù)據(jù);[0007]2)生產(chǎn)環(huán)境數(shù)據(jù)庫(kù)不能停止對(duì)外服務(wù),每秒鐘都有數(shù)百數(shù)千條數(shù)據(jù)變更,甚至不能短暫的停止對(duì)外服務(wù),即不能鎖住全表;[0008]3)生產(chǎn)環(huán)境流量壓力大,校驗(yàn)工具的流量負(fù)載需要是可控的;[0009]4)如果發(fā)現(xiàn)數(shù)據(jù)不一致,需要能即時(shí)進(jìn)行修正,或者輸出修正的數(shù)據(jù),再轉(zhuǎn)由人工操作對(duì)數(shù)據(jù)進(jìn)行修復(fù)。[0010]目前常有的數(shù)據(jù)庫(kù)一致性校驗(yàn)工具主要有:利用CheckSumSQL語(yǔ)句進(jìn)行靜態(tài)的校驗(yàn)的mk-table-checksum;或利用特殊的同步方式,例如進(jìn)行快照式的動(dòng)態(tài)校驗(yàn)的Statement模式的Binlog同步。實(shí)際應(yīng)用中使用較多的一般是ROW模式的Binlog,然而這些開(kāi)源的數(shù)據(jù)庫(kù)一致性校驗(yàn)工具無(wú)法定位具體是哪條數(shù)據(jù)的哪個(gè)字段不一致,更加無(wú)法完成數(shù)據(jù)修復(fù)工作。從而使得這樣的開(kāi)源工具無(wú)法應(yīng)用于實(shí)際的生產(chǎn)環(huán)境,也無(wú)法應(yīng)用于測(cè)試環(huán)境中定位和查找數(shù)據(jù)庫(kù)同步BUG造成的數(shù)據(jù)錯(cuò)誤。[0011]現(xiàn)有技術(shù)中一般對(duì)數(shù)據(jù)的校驗(yàn)都是將在同一時(shí)間的主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)進(jìn)行比對(duì)以確定兩個(gè)數(shù)據(jù)庫(kù)之間的數(shù)據(jù)是否已實(shí)現(xiàn)同步,然而,因數(shù)據(jù)的同步一般是在主數(shù)據(jù)庫(kù)發(fā)生數(shù)據(jù)更新后,主數(shù)據(jù)庫(kù)再將更新的數(shù)據(jù)同步到備用數(shù)據(jù)庫(kù)中,這樣就導(dǎo)致數(shù)據(jù)同步的過(guò)程中會(huì)存在一定的延時(shí),如果以同一時(shí)間點(diǎn)兩個(gè)數(shù)據(jù)庫(kù)之間的數(shù)據(jù)進(jìn)行比對(duì)的話(huà),往往會(huì)因?yàn)闀r(shí)延問(wèn)題導(dǎo)致本該判定為一致的數(shù)據(jù)被判為不一致。例如,數(shù)據(jù)庫(kù)同步的時(shí)延為lms,然后就在這lms內(nèi)進(jìn)行了一致性校驗(yàn),這樣就使得在這lms內(nèi)主數(shù)據(jù)庫(kù)向備用數(shù)據(jù)庫(kù)同步的數(shù)據(jù)未被檢測(cè)到,從而會(huì)產(chǎn)生一個(gè)錯(cuò)誤的判斷結(jié)果。[0012]可見(jiàn),在現(xiàn)有的校驗(yàn)方法檢測(cè)過(guò)程中,需要對(duì)鎖定數(shù)據(jù)表,或者鎖定整個(gè)數(shù)據(jù)庫(kù),甚至停止對(duì)外服務(wù)一段時(shí)間,從而導(dǎo)致一致性校驗(yàn)的結(jié)果不準(zhǔn)確。針對(duì)上述問(wèn)題,尚未提出有效的解決方法?!?br/>發(fā)明內(nèi)容】[0013]本申請(qǐng)?zhí)峁┝艘环N主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法和裝置,以至少解決現(xiàn)有技術(shù)中因?yàn)橥窖舆t而導(dǎo)致的一致性校驗(yàn)的結(jié)果不準(zhǔn)確的技術(shù)問(wèn)題,達(dá)到了提高主從數(shù)據(jù)庫(kù)校驗(yàn)準(zhǔn)確性的技術(shù)效果。[0014]根據(jù)本申請(qǐng)的一個(gè)方面,提供了一種主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法,包括:重復(fù)執(zhí)行以下步驟N次,其中,N為預(yù)先設(shè)定的自然數(shù):從主數(shù)據(jù)庫(kù)中檢索與差異主鍵列表中的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,以得到主數(shù)據(jù)庫(kù)記錄集;從從數(shù)據(jù)庫(kù)中檢索與上述差異主鍵列表中的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,以得到從數(shù)據(jù)庫(kù)記錄集;獲取上述主數(shù)據(jù)庫(kù)記錄集與上述從數(shù)據(jù)庫(kù)記錄集中存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵,將上述差異主鍵列表中的主鍵更新為上述存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵;執(zhí)行完N次上述步驟之后,若上述差異主鍵列表中仍有主鍵,則判斷出上述主數(shù)據(jù)庫(kù)與上述從數(shù)據(jù)庫(kù)不一致,否則,判斷出上述主數(shù)據(jù)庫(kù)與上述從數(shù)據(jù)庫(kù)一致。[0015]可選地,在判斷出上述主數(shù)據(jù)庫(kù)與上述從數(shù)據(jù)庫(kù)不一致之后,上述主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法還包括:執(zhí)行數(shù)據(jù)修復(fù)操作,其中,上述數(shù)據(jù)修復(fù)操作包括:從執(zhí)行完N次上述步驟之后得到的上述差異主鍵列表中查找同時(shí)被上述主數(shù)據(jù)庫(kù)和上述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第一主鍵類(lèi)型的主鍵,使用上述主數(shù)據(jù)庫(kù)中與類(lèi)型為上述第一主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄覆蓋上述從數(shù)據(jù)庫(kù)中與上述第一主鍵類(lèi)型對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄;從執(zhí)行完N次上述步驟之后得到的上述差異主鍵列表中查找被上述主數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的、但沒(méi)有被上述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第二主鍵類(lèi)型的主鍵,將上述主數(shù)據(jù)庫(kù)中與上述第二主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄復(fù)制到上述從數(shù)據(jù)庫(kù)中;從執(zhí)行完N次上述步驟之后得到的上述差異主鍵列表中查找被上述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的、但沒(méi)有被上述主數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第三主鍵類(lèi)型,并從上述從數(shù)據(jù)庫(kù)中刪除與上述第三主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄。[0016]可選地,獲取上述主數(shù)據(jù)庫(kù)記錄集與上述從數(shù)據(jù)庫(kù)記錄集中存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵包括:若同一主鍵在上述主數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄與在上述從數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄不同,則將該主鍵記錄為上述存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵;若同一主鍵在上述主數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在上述從數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為上述存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵;若同一主鍵在上述從數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在上述主數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為上述存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵。[0017]可選地,在重復(fù)執(zhí)行上述步驟N次之前,上述主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法還包括:生成上述差異主鍵列表的初始值,其中,上述生成初始化的差異主鍵列表包括:并行地執(zhí)行任務(wù)隊(duì)列中的多個(gè)任務(wù)來(lái)掃描上述主數(shù)據(jù)庫(kù)和上述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄,以獲得上述差異主鍵列表的初始值,其中,每個(gè)上述任務(wù)包括以下操作,其中,任務(wù)最小鍵值的初始值為上述主數(shù)據(jù)庫(kù)中被檢測(cè)數(shù)據(jù)表的所有數(shù)據(jù)庫(kù)記錄對(duì)應(yīng)的主鍵中的最小值:在上述主數(shù)據(jù)庫(kù)中從與上述任務(wù)最小鍵值對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄開(kāi)始按主鍵從小到大的順序掃描預(yù)定行數(shù)的數(shù)據(jù)庫(kù)記錄,將上述主數(shù)據(jù)庫(kù)中當(dāng)前掃描到的數(shù)據(jù)庫(kù)記錄記錄為當(dāng)前主數(shù)據(jù)庫(kù)記錄集,獲取上述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵中的最大值作為任務(wù)最大鍵值,創(chuàng)建下一個(gè)任務(wù),將上述任務(wù)最大鍵值作為上述下一個(gè)任務(wù)的任務(wù)最小鍵值,并將創(chuàng)建的上述下一個(gè)任務(wù)放入上述任務(wù)隊(duì)列中;在上述從數(shù)據(jù)庫(kù)中掃描與值在范圍[上述任務(wù)最小鍵值,上述任務(wù)最大鍵值)內(nèi)的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,將上述從數(shù)據(jù)庫(kù)中當(dāng)前掃描到的數(shù)據(jù)庫(kù)記錄記錄為當(dāng)前從數(shù)據(jù)庫(kù)記錄集;若同一主鍵在上述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄與在上述當(dāng)前從數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄不同,則將該主鍵記錄為上述差異主鍵列表的初始值成員;若同一主鍵在上述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在上述當(dāng)前從數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為上述差異主鍵列表的初始值成員;若同一主鍵在上述當(dāng)前從數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在上述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為上述差異主鍵列表的初始值成員;將上述差異主鍵列表的初始值成員構(gòu)成的集合存儲(chǔ)在一個(gè)列表中,以構(gòu)成上述差異主鍵列表的初始值。[0018]可選地,將生成的上述多個(gè)任務(wù)放入到任務(wù)隊(duì)列中,通過(guò)以下方式來(lái)執(zhí)行上述多個(gè)任務(wù):判斷上述任務(wù)隊(duì)列中是否存在待執(zhí)行的任務(wù);若存在,則判斷當(dāng)前正在并行地執(zhí)行的、用于執(zhí)行上述任務(wù)的線(xiàn)程的數(shù)量是否小于預(yù)定的最大線(xiàn)程數(shù);若上述當(dāng)前正在并行執(zhí)行的線(xiàn)程的數(shù)量小于預(yù)定的最大線(xiàn)程數(shù),則從上述任務(wù)隊(duì)列中取出上述待執(zhí)行的任務(wù),并調(diào)用一個(gè)空閑的線(xiàn)程來(lái)執(zhí)行上述待執(zhí)行的任務(wù);若上述當(dāng)前正在并行執(zhí)行的線(xiàn)程的數(shù)量等于或大于上述預(yù)定的最大線(xiàn)程數(shù),則將上述待執(zhí)行的任務(wù)繼續(xù)保留在上述任務(wù)隊(duì)列中。[0019]可選地,預(yù)先通過(guò)配置文件配置N和相鄰兩次執(zhí)行上述步驟之間的間隔時(shí)間M。[0020]可選地,每隔Μ秒執(zhí)行一次上述步驟,其中,Μ的取值為[2,10]中的固定值或隨機(jī)值,Ν的取值范圍為[1,10]。[0021]根據(jù)本申請(qǐng)的另一方面,提供了一種主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)裝置,包括:更新單元,用于重復(fù)執(zhí)行以下步驟Ν次,其中,Ν為預(yù)先設(shè)定的自然數(shù):從主數(shù)據(jù)庫(kù)中檢索與差異主鍵列表中的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,以得到主數(shù)據(jù)庫(kù)記錄集;從從數(shù)據(jù)庫(kù)中檢索與上述差異主鍵列表中的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,以得到從數(shù)據(jù)庫(kù)記錄集;獲取上述主數(shù)據(jù)庫(kù)記錄集與上述從數(shù)據(jù)庫(kù)記錄集中存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵,將上述差異主鍵列表中的主鍵更新為上述存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵;判斷單元,用于執(zhí)行完Ν次上述步驟之后,若上述差異主鍵列表中仍有主鍵,則判斷出上述主數(shù)據(jù)庫(kù)與上述從數(shù)據(jù)庫(kù)不一致,否則,判斷出上述主數(shù)據(jù)庫(kù)與上述從數(shù)據(jù)庫(kù)一致。[0022]可選地,上述主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)裝置還包括:修復(fù)單元,用于在判斷出上述主數(shù)據(jù)庫(kù)與上述從數(shù)據(jù)庫(kù)不一致之后,執(zhí)行數(shù)據(jù)修復(fù)操作,其中,上述數(shù)據(jù)修復(fù)操作包括:從執(zhí)行完Ν次上述步驟之后得到的上述差異主鍵列表中查找同時(shí)被上述主數(shù)據(jù)庫(kù)和上述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第一主鍵類(lèi)型的主鍵,使用上述主數(shù)據(jù)庫(kù)中與類(lèi)型為上述第一主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄覆蓋上述從數(shù)據(jù)庫(kù)中與上述第一主鍵類(lèi)型對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄;從執(zhí)行完N次上述步驟之后得到的上述差異主鍵列表中查找被上述主數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的、但沒(méi)有被上述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第二主鍵類(lèi)型的主鍵,將上述主數(shù)據(jù)庫(kù)中與上述第二主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄復(fù)制到上述從數(shù)據(jù)庫(kù)中;從執(zhí)行完N次上述步驟之后得到的上述差異主鍵列表中查找被上述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的、但沒(méi)有被上述主數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第三主鍵類(lèi)型,并從上述從數(shù)據(jù)庫(kù)中刪除與上述第三主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄。[0023]可選地,上述主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)裝置還包括:初始化單元,用于在重復(fù)執(zhí)行上述步驟N次之前,生成上述差異主鍵列表的初始值,其中,上述生成初始化的差異主鍵列表包括:并行地執(zhí)行任務(wù)隊(duì)列中的多個(gè)任務(wù)來(lái)掃描上述主數(shù)據(jù)庫(kù)和上述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄,以獲得上述差異主鍵列表的初始值,其中,每個(gè)上述任務(wù)包括以下操作,其中,任務(wù)最小鍵值的初始值為上述主數(shù)據(jù)庫(kù)中被檢測(cè)數(shù)據(jù)表的所有數(shù)據(jù)庫(kù)記錄對(duì)應(yīng)的主鍵中的最小值:在上述主數(shù)據(jù)庫(kù)中從與上述任務(wù)最小鍵值對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄開(kāi)始按主鍵從小到大的順序掃描預(yù)定行數(shù)的數(shù)據(jù)庫(kù)記錄,將上述主數(shù)據(jù)庫(kù)中當(dāng)前掃描到的數(shù)據(jù)庫(kù)記錄記錄為當(dāng)前主數(shù)據(jù)庫(kù)記錄集,獲取上述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵中的最大值作為任務(wù)最大鍵值,創(chuàng)建下一個(gè)任務(wù),將上述任務(wù)最大鍵值作為上述下一個(gè)任務(wù)的任務(wù)最小鍵值,并將創(chuàng)建的上述下一個(gè)任務(wù)放入上述任務(wù)隊(duì)列中;在上述從數(shù)據(jù)庫(kù)中掃描與值在范圍[上述任務(wù)最小鍵值,上述任務(wù)最大鍵值)內(nèi)的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,將上述從數(shù)據(jù)庫(kù)中當(dāng)前掃描到的數(shù)據(jù)庫(kù)記錄記錄為當(dāng)前從數(shù)據(jù)庫(kù)記錄集;若同一主鍵在上述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄與在上述當(dāng)前從數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄不同,則將該主鍵記錄為上述差異主鍵列表的初始值成員;若同一主鍵在上述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在上述當(dāng)前從數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為上述差異主鍵列表的初始值成員;若同一主鍵在上述當(dāng)前從數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在上述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為上述差異主鍵列表的初始值成員;將上述差異主鍵列表的初始值成員構(gòu)成的集合存儲(chǔ)在一個(gè)列表中,以構(gòu)成上述差異主鍵列表的初始值。[0024]在本申請(qǐng)中,以差異主鍵列表作為一個(gè)中間量以及跟蹤對(duì)象,多次比對(duì)主、從數(shù)據(jù)庫(kù)中的數(shù)據(jù),將差異主鍵列表中存有的但當(dāng)前在主、從數(shù)據(jù)庫(kù)中恢復(fù)一致的主鍵記錄逐次篩除,從而有效解決了相關(guān)技術(shù)中因?yàn)橥窖舆t而導(dǎo)致的一致性校驗(yàn)的結(jié)果不準(zhǔn)確的技術(shù)問(wèn)題,達(dá)到了提高主從數(shù)據(jù)庫(kù)校驗(yàn)準(zhǔn)確性的技術(shù)效果。[0025]此外,在本申請(qǐng)中,通過(guò)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄的劃分,以生成并行的多個(gè)任務(wù)進(jìn)行掃描,以及進(jìn)行后續(xù)的一致性校驗(yàn)的步驟,從而達(dá)到了縮短校驗(yàn)時(shí)間的技術(shù)效果,實(shí)現(xiàn)了對(duì)處理能力的有效利用,從而滿(mǎn)足了在一致性校驗(yàn)中不鎖庫(kù)、不鎖表、不停止對(duì)外服務(wù)的要求,實(shí)現(xiàn)了在數(shù)據(jù)庫(kù)和數(shù)據(jù)表處于正常的讀寫(xiě)狀態(tài)時(shí)進(jìn)行動(dòng)態(tài)檢測(cè)的效果。[0026]進(jìn)一步地,通過(guò)對(duì)主從數(shù)據(jù)庫(kù)一致性校驗(yàn)的準(zhǔn)確結(jié)果的處理,本申請(qǐng)技術(shù)方案還能夠?qū)崿F(xiàn)對(duì)主、從數(shù)據(jù)庫(kù)中存在差異的數(shù)據(jù)的有效修復(fù),從而達(dá)到了主從數(shù)據(jù)庫(kù)動(dòng)態(tài)一致的效果?!緦?zhuān)利附圖】【附圖說(shuō)明】、,_[0027]此處所說(shuō)明的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:[0028]圖1是根據(jù)本申請(qǐng)實(shí)施例的主從數(shù)據(jù)庫(kù)一'致丨生的校驗(yàn)系統(tǒng)的一'種優(yōu)選結(jié)構(gòu)框圖;[0029]圖2是根據(jù)本申請(qǐng)實(shí)施例的主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)裝置的一種優(yōu)選結(jié)構(gòu)框圖;[0030]圖3是根據(jù)本申請(qǐng)實(shí)施例的主從數(shù)據(jù)庫(kù)-致性的動(dòng)態(tài)校驗(yàn)裝置的另一種優(yōu)選結(jié)構(gòu)框圖;[0031]圖4是根據(jù)本申請(qǐng)實(shí)施例的主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)裝置的又一種優(yōu)選結(jié)構(gòu)框圖;[0032]圖5是根據(jù)本申請(qǐng)實(shí)施例的主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法的一種優(yōu)選流程圖;[0033]圖6是根據(jù)本申請(qǐng)實(shí)施例的主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法的另一種優(yōu)選流程圖;[0034]圖7是根據(jù)本申請(qǐng)實(shí)施例的主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法的又一種優(yōu)選流程圖;[0035]圖8是根據(jù)本申請(qǐng)實(shí)施例的主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法的又一種優(yōu)選流程圖;[0036]圖9是根據(jù)本申請(qǐng)實(shí)施例的主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法的又一種優(yōu)選流程圖;[0037]圖10是根據(jù)本申請(qǐng)實(shí)施例的主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法的又一種優(yōu)選流程圖。【具體實(shí)施方式】[0038]下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本申請(qǐng)。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。[0039]在描述本申請(qǐng)的各實(shí)施例的進(jìn)一步細(xì)節(jié)之前,將參考圖1來(lái)描述可用于實(shí)現(xiàn)本申請(qǐng)的原理的一個(gè)合適的計(jì)算體系結(jié)構(gòu)。在以下描述中,除非另外指明,否則將參考由一個(gè)或多個(gè)計(jì)算機(jī)執(zhí)行的動(dòng)作和操作的符號(hào)表示來(lái)描述本申請(qǐng)的各實(shí)施例。由此,可以理解,有時(shí)被稱(chēng)為計(jì)算機(jī)執(zhí)行的這類(lèi)動(dòng)作和操作包括計(jì)算機(jī)的處理單元對(duì)以結(jié)構(gòu)化形式表示數(shù)據(jù)的電信號(hào)的操縱。這一操縱轉(zhuǎn)換了數(shù)據(jù)或在計(jì)算機(jī)的存儲(chǔ)器系統(tǒng)中的位置上維護(hù)它,這以本領(lǐng)域的技術(shù)人員都理解的方式重配置或改變了計(jì)算機(jī)的操作。維護(hù)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是具有數(shù)據(jù)的格式所定義的特定屬性的存儲(chǔ)器的物理位置。然而,盡管在上述上下文中描述本申請(qǐng),但它并不意味著限制性的,如本領(lǐng)域的技術(shù)人員所理解的,后文所描述的動(dòng)作和操作的各方面也可用硬件來(lái)實(shí)現(xiàn)。[0040]轉(zhuǎn)向附圖,其中相同的參考標(biāo)號(hào)指代相同的元素,本申請(qǐng)的原理被示為在一個(gè)合適的計(jì)算環(huán)境中實(shí)現(xiàn)。以下描述基于所述的本申請(qǐng)的實(shí)施例,并且不應(yīng)認(rèn)為是關(guān)于此處未明確描述的替換實(shí)施例而限制本申請(qǐng)。[0041]圖1示出了可用于這些設(shè)備的一個(gè)示例計(jì)算機(jī)體系結(jié)構(gòu)的示意圖。出于描述的目的,所繪的體系結(jié)構(gòu)僅為合適環(huán)境的一個(gè)示例,并非對(duì)本申請(qǐng)的使用范圍或功能提出任何局限。也不應(yīng)將該計(jì)算系統(tǒng)解釋為對(duì)圖1所示的任一組件或其組合具有任何依賴(lài)或需求。[0042]本申請(qǐng)的原理可以使用其它通用或?qū)S糜?jì)算或通信環(huán)境或配置來(lái)操作。適用于本申請(qǐng)的眾所周知的計(jì)算系統(tǒng)、環(huán)境和配置的示例包括但不限于,個(gè)人計(jì)算機(jī)、服務(wù)器,多處理器系統(tǒng)、基于微處理的系統(tǒng)、小型機(jī)、大型計(jì)算機(jī)、以及包括任一上述系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境。[0043]作為其最基本的配置之一,圖1中的主從數(shù)據(jù)庫(kù)一致性的校驗(yàn)系統(tǒng)100可以至少包括:一個(gè)服務(wù)器1〇2以及與該服務(wù)器102連接的一個(gè)或多個(gè)分布式的處理終端104。其中,服務(wù)器102可以包括但不限于微處理器MCU或可編程邏輯器件FPGA等的處理裝置、用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)裝置以及與處理終端通信的傳輸裝置;處理終端104可以包括:微處理器MCU、與服務(wù)器通信的傳輸裝置、與用戶(hù)交互的顯示裝置。在本說(shuō)明書(shū)和權(quán)利要求書(shū)中,"系統(tǒng)"也可以被定義為能夠執(zhí)行軟件、固件或微碼來(lái)實(shí)現(xiàn)功能的任何硬件組件或硬件組件的組合主從數(shù)據(jù)庫(kù)一致性的校驗(yàn)系統(tǒng)100甚至可以是分布式的,以實(shí)現(xiàn)分布式功能。[0044]可選地,每個(gè)處理終端104運(yùn)行實(shí)例,只負(fù)責(zé)動(dòng)態(tài)檢查一對(duì)數(shù)據(jù)庫(kù)表,即一張主數(shù)據(jù)庫(kù)的數(shù)據(jù)表,和一張對(duì)應(yīng)的從數(shù)據(jù)庫(kù)的數(shù)據(jù)表;可以根據(jù)配置同時(shí)啟動(dòng)若干個(gè)處理終端104來(lái)運(yùn)行實(shí)例,既可以并行對(duì)多張數(shù)據(jù)表同時(shí)執(zhí)行一致性動(dòng)態(tài)檢測(cè),每個(gè)處理終端104運(yùn)行實(shí)例負(fù)責(zé)一對(duì)數(shù)據(jù)庫(kù)表的動(dòng)態(tài)一致性檢查。[0045]如本申請(qǐng)所使用的,術(shù)語(yǔ)"模塊"、"組件"或"單元"可以指在主從數(shù)據(jù)庫(kù)一致性的校驗(yàn)系統(tǒng)100上執(zhí)行的軟件對(duì)象或例程。此處所描述的不同組件、模塊、單元、引擎和服務(wù)可被實(shí)現(xiàn)為在主從數(shù)據(jù)庫(kù)一致性的校驗(yàn)系統(tǒng)100上執(zhí)行(例如,作為單獨(dú)的線(xiàn)程)的對(duì)象或進(jìn)程。盡管此處所描述的系統(tǒng)和方法較佳地以軟件來(lái)實(shí)現(xiàn),但是硬件或軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。[0046]實(shí)施例1[0047]圖2是根據(jù)本申請(qǐng)實(shí)施例主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)裝置的一種優(yōu)選的結(jié)構(gòu)示意圖,優(yōu)選的,本實(shí)施例中的系統(tǒng)可以位于服務(wù)器102上。[0048]本優(yōu)選實(shí)施例的發(fā)明構(gòu)思主要可以包括:初始化差異主鍵列表;對(duì)差異主鍵列表進(jìn)行預(yù)定次數(shù)的更新操作;在完成上述預(yù)定次數(shù)的更新操作后,如果差異主鍵列表仍不為空,則表明該差異主鍵列表對(duì)應(yīng)的主從數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)不一致。其中,該差異主鍵列表中保留的是當(dāng)次比較完成后確定的主數(shù)據(jù)庫(kù)和從數(shù)據(jù)庫(kù)中存在差異的數(shù)據(jù)所對(duì)應(yīng)的主鍵。[0049]優(yōu)選的,為了達(dá)到上述目的,如圖2所示的主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)裝置可以包括:更新單元2〇2和判斷單元204,下面對(duì)該結(jié)構(gòu)進(jìn)行具體描述。[0050]1)更新單元202,用于重復(fù)執(zhí)行以下步驟N次,其中,N為預(yù)先設(shè)定的自然數(shù):從主數(shù)據(jù)庫(kù)中檢索與差異主鍵列表中的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,以得到主數(shù)據(jù)庫(kù)記錄集;從從數(shù)據(jù)庫(kù)中檢索與所述差異主鍵列表中的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,以得到從數(shù)據(jù)庫(kù)記錄集;獲取主數(shù)據(jù)庫(kù)記錄集與從數(shù)據(jù)庫(kù)記錄集中存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵,將差異主鍵列表中的主鍵更新為存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵;[0051]2)判斷單元204,與更新單元202耦合,用于在執(zhí)行完N次上述步驟之后,若差異主鍵列表中仍有主鍵,則判斷出主數(shù)據(jù)庫(kù)與從數(shù)據(jù)庫(kù)不一致,否則,則判斷出主數(shù)據(jù)庫(kù)與從數(shù)據(jù)庫(kù)一致。[0052]差異主鍵列表,作為在本申請(qǐng)技術(shù)方案中提出的概念之一,用于表示一種主鍵的集合??蛇x地,在本申請(qǐng)實(shí)施例中,作為這種主鍵集合的具體實(shí)現(xiàn),其形式可以是主鍵所唯一對(duì)應(yīng)的鍵值的集合,存儲(chǔ)于一個(gè)列表中,以便在服務(wù)器102中執(zhí)行進(jìn)一步的掃描、檢索等讀寫(xiě)操作以及排序、比對(duì)等運(yùn)算操作。[0053]如其名稱(chēng)所揭示的,差異主鍵列表主要用于存儲(chǔ)存在差異的主從數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵。然而在本申請(qǐng)實(shí)施例中,作為更新單元202所執(zhí)行的多次上述更新操作之間的中間量,差異主鍵列表并非靜態(tài),其中存儲(chǔ)的主鍵可以在一次更新操作中繼續(xù)存留,也可以被移除,而更新后的差異主鍵列表可以送入新的一次更新操作中,也可以輸出至判斷單元204中以得出主從數(shù)據(jù)庫(kù)一致性的校驗(yàn)結(jié)果,從而可以通過(guò)對(duì)初始的差異主鍵列表的多次更新,逐步排除因主從數(shù)據(jù)庫(kù)同步延遲而導(dǎo)致的一致性判斷的誤判因素,繼而縮小判定的范圍,最終實(shí)現(xiàn)準(zhǔn)確確定一次完整的校驗(yàn)周期內(nèi)主從數(shù)據(jù)庫(kù)中存在差異的數(shù)據(jù)庫(kù)記錄的位置,并可以將這些位置輸出為校驗(yàn)報(bào)告,以便查看或進(jìn)一步的處理。[0054]可選地,在更新單元202執(zhí)行的一次操作中,可以根據(jù)該次操作開(kāi)始階段的差異主鍵列表中所記錄的第一組主鍵,分別在主數(shù)據(jù)庫(kù)及從數(shù)據(jù)庫(kù)中,檢索出與第一組主鍵相對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,并分別用主數(shù)據(jù)庫(kù)記錄集以及從數(shù)據(jù)庫(kù)記錄集來(lái)表示,然后可以在主數(shù)據(jù)庫(kù)記錄集以及從數(shù)據(jù)庫(kù)記錄集之間進(jìn)行對(duì)比,找出其中存在差異的部分所對(duì)應(yīng)的第二組主鍵,并在差異主鍵列表中用第二組主鍵替換第一組主鍵,然后結(jié)束本次操作,從而完成一次對(duì)差異主鍵列表的更新。[0055]值得注意的是,第一組主鍵中主鍵的數(shù)量可以為一個(gè)或多個(gè),也可以為零,第二組主鍵可以包括第一組主鍵中的一個(gè)或多個(gè),也可以不包括其中的任何一個(gè);第二組主鍵是第一組主鍵的一個(gè)子集。另一方面,第二組主鍵的確定可以在上述對(duì)比過(guò)程中進(jìn)行,也可以在上述對(duì)比過(guò)程結(jié)束后進(jìn)行。此外,上述用第二組主鍵替換第一組主鍵的描述應(yīng)當(dāng)理解為對(duì)于本申請(qǐng)實(shí)施例的一種描述,并不會(huì)對(duì)本申請(qǐng)構(gòu)成任何限定,例如,更新單元202還可以用于執(zhí)行以下操作以實(shí)現(xiàn)上述效果:1)在第一主鍵組中獲取第三主鍵組,其中,第三主鍵組在主數(shù)據(jù)庫(kù)與從數(shù)據(jù)庫(kù)中所對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄內(nèi)容一致;2)將第三主鍵組從差異主鍵列表中刪除。[0056]在上述場(chǎng)景下,通過(guò)對(duì)差異主鍵列表中數(shù)量有限的主鍵及其所對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而非整個(gè)主、從數(shù)據(jù)庫(kù)的處理,可以減少對(duì)主從數(shù)據(jù)庫(kù)進(jìn)行一致性校驗(yàn)的單個(gè)檢測(cè)周期的耗時(shí),從而為數(shù)據(jù)庫(kù)及其所在系統(tǒng)在不停止對(duì)外服務(wù)的情況下進(jìn)行主從數(shù)據(jù)庫(kù)的一致性的動(dòng)態(tài)校驗(yàn)提供了技術(shù)基礎(chǔ)。另一方面,由于單次檢測(cè)耗時(shí)的縮短,提高了主從數(shù)據(jù)庫(kù)一致性校驗(yàn)的時(shí)效性,降低了由于時(shí)延而導(dǎo)致的一致性判斷的錯(cuò)誤率,從而提高了校驗(yàn)結(jié)果的準(zhǔn)確性。[0057]進(jìn)一步地,上述更新單元202執(zhí)行的一次操作可以再次執(zhí)行:在新的一次操作中,開(kāi)始階段的差異主鍵列表中所記錄的主鍵為第二組主鍵,其后,分別在主數(shù)據(jù)庫(kù)及從數(shù)據(jù)庫(kù)中檢索出與第二組主鍵相對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,找出其中存在差異的部分所對(duì)應(yīng)的第四組主鍵,并在差異主鍵列表中用第四組主鍵替換第二組主鍵,然后結(jié)束本次操作,從而完成又一次對(duì)差異主鍵列表的更新。[0058]在上述場(chǎng)景下,基于上述兩次操作后所得到的差異主鍵列表中記錄的差異主鍵即第四主鍵組,通過(guò)判斷單元2〇4執(zhí)行的判斷操作所得到的主從數(shù)據(jù)庫(kù)一致性判斷的結(jié)果具有更高的可信度以及更低的誤判率,其主要原理詳述如下:[0059]設(shè)想服務(wù)器在第一時(shí)刻對(duì)主數(shù)據(jù)庫(kù)中的某一主鍵所對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄做出了修改,且作為與該修改的同步的修復(fù)動(dòng)作,服務(wù)器在第二時(shí)刻對(duì)從數(shù)據(jù)庫(kù)中該主鍵所對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄做出了對(duì)應(yīng)的修改,而在上述更新單元202執(zhí)行的一次操作中,對(duì)差異主鍵即第二組主鍵的獲取在第一時(shí)刻和第二時(shí)刻之間完成,則與更改的數(shù)據(jù)庫(kù)記錄相對(duì)應(yīng)的該主鍵將被記入第二組主鍵中,即便隨后在第二時(shí)刻該主鍵所對(duì)應(yīng)的主從數(shù)據(jù)庫(kù)記錄實(shí)現(xiàn)了同步,從而出現(xiàn)延時(shí)導(dǎo)致的一致性的錯(cuò)誤判斷。然而這一錯(cuò)誤可以通過(guò)在預(yù)設(shè)時(shí)間之后進(jìn)行的上述第二次操作來(lái)消除,例如,將第二次操作中差異主鍵即第四組主鍵的獲取設(shè)置在第二時(shí)刻后完成,則上述與更改的數(shù)據(jù)庫(kù)記錄相對(duì)應(yīng)的主鍵將不會(huì)被記入到第四組主鍵中,從而通過(guò)判斷單元204得到的主從數(shù)據(jù)庫(kù)一致性判斷的結(jié)果具有更高的可信度以及更低的誤判率。[0060]更進(jìn)一步地,上述更新單元202執(zhí)行的一次操作還可以重復(fù)執(zhí)行N次,以獲得更高的可信度以及更低的誤判率。例如,對(duì)于線(xiàn)上數(shù)據(jù)延時(shí)的時(shí)間在1秒左右的情況,如果默認(rèn)配置為每隔5秒對(duì)差異數(shù)據(jù)重復(fù)校驗(yàn)一次,默認(rèn)進(jìn)行8輪校驗(yàn)。則只有非常極端的情況,才會(huì)出現(xiàn)這8次校驗(yàn)中的每次校驗(yàn)該條數(shù)據(jù)都變更過(guò),且剛好主從同步還沒(méi)完成,那么這些數(shù)據(jù)就會(huì)被誤判為不一致數(shù)據(jù)。然而,這種情況在生產(chǎn)環(huán)境發(fā)生的概率極小,并且用戶(hù)可以根據(jù)輸出的差異數(shù)據(jù)報(bào)告,再次手工反查主從數(shù)據(jù)庫(kù)中的數(shù)據(jù)。因此,通過(guò)本申請(qǐng)上述的發(fā)明構(gòu)思在實(shí)際生產(chǎn)實(shí)踐過(guò)程中,校驗(yàn)結(jié)果具有很高的可信度和很低的誤判率。[0061]可選地,在判斷單元204判斷不一致后也就確定了主從數(shù)據(jù)庫(kù)之間的不一致,這樣就可以采用一定的方式對(duì)主從數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行更新以實(shí)現(xiàn)兩個(gè)數(shù)據(jù)庫(kù)中數(shù)據(jù)的同步,在一個(gè)優(yōu)選實(shí)施方式中,如圖3所示,上述主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)裝置還可以包括:[0062]修復(fù)單元3〇2,與判斷單元204耦合,用于在判斷出主數(shù)據(jù)庫(kù)與從數(shù)據(jù)庫(kù)不一致之后,執(zhí)行數(shù)據(jù)修復(fù)操作,其中,上述數(shù)據(jù)修復(fù)操作包括:從執(zhí)行完N次上述步驟之后得到的差異主鍵列表中查找同時(shí)被主數(shù)據(jù)庫(kù)和從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第一主鍵類(lèi)型的主鍵,使用主數(shù)據(jù)庫(kù)中與類(lèi)型為第一主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄覆蓋從數(shù)據(jù)庫(kù)中與第一主鍵類(lèi)型對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄;從執(zhí)行完N次上述步驟之后得到的差異主鍵列表中查找被主數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的、但沒(méi)有被從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第二主鍵類(lèi)型的主鍵,將主數(shù)據(jù)庫(kù)中與第二主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄復(fù)制到從數(shù)據(jù)庫(kù)中;從執(zhí)行完N次上述步驟之后得到的差異主鍵列表中查找被從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的、但沒(méi)有被主數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第三主鍵類(lèi)型,并從從數(shù)據(jù)庫(kù)中刪除與第三主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄。[0063]在上述優(yōu)選實(shí)施方式中,以差異主鍵列表作為一個(gè)中間量以及跟蹤對(duì)象,多次比對(duì)主、從數(shù)據(jù)庫(kù)中的數(shù)據(jù),將差異主鍵列表中存有的但當(dāng)前在主、從數(shù)據(jù)庫(kù)中恢復(fù)一致的主鍵記錄逐次篩除,從而有效解決了相關(guān)技術(shù)中因?yàn)橥窖舆t而導(dǎo)致的一致性校驗(yàn)的結(jié)果不準(zhǔn)確的技術(shù)問(wèn)題,達(dá)到了提高主從數(shù)據(jù)庫(kù)校驗(yàn)準(zhǔn)確性的技術(shù)效果。[0064]在一個(gè)優(yōu)選實(shí)施方式中,如圖4所示,上述主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)裝置還可以包括:[0065]初始化單元402,與更新單元202耦合,用于在重復(fù)執(zhí)行上述步驟N次之前,生成差異主鍵列表的初始值,其中,生成初始化的差異主鍵列表包括:并行地執(zhí)行任務(wù)隊(duì)列中的多個(gè)任務(wù)來(lái)掃描主數(shù)據(jù)庫(kù)和從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄,以獲得差異主鍵列表的初始值,其中,每個(gè)任務(wù)包括以下操作,其中,任務(wù)最小鍵值的初始值為主數(shù)據(jù)庫(kù)中被檢測(cè)數(shù)據(jù)表的所有數(shù)據(jù)庫(kù)記錄對(duì)應(yīng)的主鍵中的最小值:在主數(shù)據(jù)庫(kù)中從與任務(wù)最小鍵值對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄開(kāi)始按主鍵從小到大的順序掃描預(yù)定行數(shù)的數(shù)據(jù)庫(kù)記錄,將主數(shù)據(jù)庫(kù)中當(dāng)前掃描到的數(shù)據(jù)庫(kù)記錄記錄為當(dāng)前主數(shù)據(jù)庫(kù)記錄集,獲取當(dāng)前主數(shù)據(jù)庫(kù)記錄集中的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵中的最大值作為任務(wù)最大鍵值;創(chuàng)建下一個(gè)任務(wù),將任務(wù)最大鍵值作為下一個(gè)任務(wù)的任務(wù)最小鍵值,并將創(chuàng)建的下一個(gè)任務(wù)放入任務(wù)隊(duì)列中;在從數(shù)據(jù)庫(kù)中掃描與值在范圍[任務(wù)最小鍵值,任務(wù)最大鍵值)內(nèi)的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,將從數(shù)據(jù)庫(kù)中當(dāng)前掃描到的數(shù)據(jù)庫(kù)記錄記錄為當(dāng)前從數(shù)據(jù)庫(kù)記錄集;若同一主鍵在當(dāng)前主數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄與在當(dāng)前從數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄不同,則將該主鍵記錄為差異主鍵列表的初始值成員;若同一主鍵在當(dāng)前主數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在當(dāng)前從數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為差異主鍵列表的初始值成員;若同一主鍵在當(dāng)前從數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在當(dāng)前主數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為差異主鍵列表的初始值成員;將差異主鍵列表的初始值成員構(gòu)成的集合存儲(chǔ)在一個(gè)列表中,以構(gòu)成差異主鍵列表的初始值。[0066]在上述初始化單元402所執(zhí)行的操作中,通過(guò)對(duì)計(jì)算機(jī)任務(wù)的生成、派發(fā)以及執(zhí)行,實(shí)現(xiàn)了對(duì)差異主鍵列表的初始化??蛇x地,可以在執(zhí)行該任務(wù)前對(duì)主數(shù)據(jù)庫(kù)進(jìn)行排序,例如,按與之對(duì)應(yīng)的主鍵的鍵值大小依次排列,進(jìn)而,可以從中獲取鍵值最小的一個(gè)主鍵,記為最小鍵值以及最小主鍵。該最小鍵值可以作為執(zhí)行參數(shù),與預(yù)定的掃描行數(shù)一并輸入到任務(wù)中,從而可以以最小主鍵為起始,執(zhí)行對(duì)該預(yù)定行數(shù)內(nèi)的主數(shù)據(jù)庫(kù)記錄的掃描,將與之對(duì)應(yīng)的主鍵中鍵值最大的一個(gè)記為最大主鍵,并對(duì)鍵值在最小主鍵和最大鍵值之間的全部主鍵所分別對(duì)應(yīng)的主、從數(shù)據(jù)庫(kù)記錄進(jìn)行對(duì)比,將其中存在差異的部分所對(duì)應(yīng)的主鍵記為差異主鍵列表的初始值。進(jìn)一步地,還可以將上一個(gè)任務(wù)得到的最大鍵值發(fā)送到下一個(gè)任務(wù)中作為新的最小鍵值,以實(shí)現(xiàn)針對(duì)全數(shù)據(jù)庫(kù)的分段并行初始化。[0067]下面將結(jié)合表1和表2來(lái)詳細(xì)說(shuō)明上述對(duì)差異主鍵列表進(jìn)行初始化的實(shí)現(xiàn)方式,其中,表1和表2用于表示針對(duì)同一主從數(shù)據(jù)庫(kù)前后兩次執(zhí)行差異主鍵列表初始化的任務(wù)所掃描的數(shù)據(jù)庫(kù)記錄,且該數(shù)據(jù)庫(kù)記錄已按主鍵值由小至大進(jìn)行排序。容易理解,該數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵值并不一定在數(shù)值上連續(xù),例如,在主鍵值之間可以預(yù)留出備用的鍵值,以備新增數(shù)據(jù)庫(kù)記錄的使用等,從而在數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)記錄及其對(duì)應(yīng)主鍵的主鍵值可以如表1和表2所示。[0068]表1[0069]【權(quán)利要求】1.一種主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)方法,其特征在于,包括:重復(fù)執(zhí)行以下步驟N次,其中,N為預(yù)先設(shè)定的自然數(shù):從主數(shù)據(jù)庫(kù)中檢索與差異主鍵列表中的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,以得到主數(shù)據(jù)庫(kù)記錄集;從從數(shù)據(jù)庫(kù)中檢索與所述差異主鍵列表中的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,以得到從數(shù)據(jù)庫(kù)記錄集;獲取所述主數(shù)據(jù)庫(kù)記錄集與所述從數(shù)據(jù)庫(kù)記錄集中存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵,將所述差異主鍵列表中的主鍵更新為所述存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵;執(zhí)行完N次所述步驟之后,若所述差異主鍵列表中仍有主鍵,則判斷出所述主數(shù)據(jù)庫(kù)與所述從數(shù)據(jù)庫(kù)不一致,否則,判斷出所述主數(shù)據(jù)庫(kù)與所述從數(shù)據(jù)庫(kù)一致。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在判斷出所述主數(shù)據(jù)庫(kù)與所述從數(shù)據(jù)庫(kù)不一致之后,還包括:執(zhí)行數(shù)據(jù)修復(fù)操作,其中,所述數(shù)據(jù)修復(fù)操作包括:從執(zhí)行完N次所述步驟之后得到的所述差異主鍵列表中查找同時(shí)被所述主數(shù)據(jù)庫(kù)和所述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第一主鍵類(lèi)型的主鍵,使用所述主數(shù)據(jù)庫(kù)中與類(lèi)型為所述第一主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄覆蓋所述從數(shù)據(jù)庫(kù)中與所述第一主鍵類(lèi)型對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄;從執(zhí)行完N次所述步驟之后得到的所述差異主鍵列表中查找被所述主數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的、但沒(méi)有被所述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第二主鍵類(lèi)型的主鍵,將所述主數(shù)據(jù)庫(kù)中與所述第二主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄復(fù)制到所述從數(shù)據(jù)庫(kù)中;從執(zhí)行完N次所述步驟之后得到的所述差異主鍵列表中查找被所述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的、但沒(méi)有被所述主數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第三主鍵類(lèi)型,并從所述從數(shù)據(jù)庫(kù)中刪除與所述第三主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,獲取所述主數(shù)據(jù)庫(kù)記錄集與所述從數(shù)據(jù)庫(kù)記錄集中存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵包括:若同一主鍵在所述主數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄與在所述從數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄不同,則將該主鍵記錄為所述存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵;若同一主鍵在所述主數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在所述從數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為所述存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵;若同一主鍵在所述從數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在所述主數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為所述存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在重復(fù)執(zhí)行所述步驟N次之前,還包括:生成所述差異主鍵列表的初始值,其中,所述生成初始化的差異主鍵列表包括:并行地執(zhí)行任務(wù)隊(duì)列中的多個(gè)任務(wù)來(lái)掃描所述主數(shù)據(jù)庫(kù)和所述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄,以獲得所述差異主鍵列表的初始值,其中,每個(gè)所述任務(wù)包括以下操作,其中,任務(wù)最小鍵值的初始值為所述主數(shù)據(jù)庫(kù)中被檢測(cè)數(shù)據(jù)表的所有數(shù)據(jù)庫(kù)記錄對(duì)應(yīng)的主鍵中的最小值:在所述主數(shù)據(jù)庫(kù)中從與所述任務(wù)最小鍵值對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄開(kāi)始按主鍵從小到大的順序掃描預(yù)定行數(shù)的數(shù)據(jù)庫(kù)記錄,將所述主數(shù)據(jù)庫(kù)中當(dāng)前掃描到的數(shù)據(jù)庫(kù)記錄記錄為當(dāng)前主數(shù)據(jù)庫(kù)記錄集,獲取所述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵中的最大值作為任務(wù)最大鍵值,創(chuàng)建下一個(gè)任務(wù),將所述任務(wù)最大鍵值作為所述下一個(gè)任務(wù)的任務(wù)最小鍵值,并將創(chuàng)建的所述下一個(gè)任務(wù)放入所述任務(wù)隊(duì)列中;在所述從數(shù)據(jù)庫(kù)中掃描與值在范圍[所述任務(wù)最小鍵值,所述任務(wù)最大鍵值)內(nèi)的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,將所述從數(shù)據(jù)庫(kù)中當(dāng)前掃描到的數(shù)據(jù)庫(kù)記錄記錄為當(dāng)前從數(shù)據(jù)庫(kù)記錄集;若同一主鍵在所述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄與在所述當(dāng)前從數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄不同,則將該主鍵記錄為所述差異主鍵列表的初始值成員;若同一主鍵在所述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在所述當(dāng)前從數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為所述差異主鍵列表的初始值成員;若同一主鍵在所述當(dāng)前從數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在所述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為所述差異主鍵列表的初始值成員;將所述差異主鍵列表的初始值成員構(gòu)成的集合存儲(chǔ)在一個(gè)列表中,以構(gòu)成所述差異主鍵列表的初始值。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,將生成的所述多個(gè)任務(wù)放入到任務(wù)隊(duì)列中,通過(guò)以下方式來(lái)執(zhí)行所述多個(gè)任務(wù):判斷所述任務(wù)隊(duì)列中是否存在待執(zhí)行的任務(wù);若存在,則判斷當(dāng)前正在并行地執(zhí)行的、用于執(zhí)行所述任務(wù)的線(xiàn)程的數(shù)量是否小于預(yù)定的最大線(xiàn)程數(shù);若所述當(dāng)前正在并行執(zhí)行的線(xiàn)程的數(shù)量小于預(yù)定的最大線(xiàn)程數(shù),則從所述任務(wù)隊(duì)列中取出所述待執(zhí)行的任務(wù),并調(diào)用一個(gè)空閑的線(xiàn)程來(lái)執(zhí)行所述待執(zhí)行的任務(wù);若所述當(dāng)前正在并行執(zhí)行的線(xiàn)程的數(shù)量等于或大于所述預(yù)定的最大線(xiàn)程數(shù),則將所述待執(zhí)行的任務(wù)繼續(xù)保留在所述任務(wù)隊(duì)列中。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,預(yù)先通過(guò)配置文件配置N和相鄰兩次執(zhí)行所述步驟之間的間隔時(shí)間M。7.根據(jù)權(quán)利要求1所述的方法,其特征在于,每隔Μ秒執(zhí)行一次所述步驟,其中,Μ的取值為[2,10]中的固定值或隨機(jī)值,Ν的取值范圍為[1,10]。8.-種主從數(shù)據(jù)庫(kù)一致性的動(dòng)態(tài)校驗(yàn)裝置,其特征在于,包括:更新單元,用于重復(fù)執(zhí)行以下步驟Ν次,其中,Ν為預(yù)先設(shè)定的自然數(shù):從主數(shù)據(jù)庫(kù)中檢索與差異主鍵列表中的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,以得到主數(shù)據(jù)庫(kù)記錄集;從從數(shù)據(jù)庫(kù)中檢索與所述差異主鍵列表中的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,以得到從數(shù)據(jù)庫(kù)記錄集;獲取所述主數(shù)據(jù)庫(kù)記錄集與所述從數(shù)據(jù)庫(kù)記錄集中存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵,將所述差異主鍵列表中的主鍵更新為所述存在差異的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵;判斷單元,用于執(zhí)行完Ν次所述步驟之后,若所述差異主鍵列表中仍有主鍵,則判斷出所述主數(shù)據(jù)庫(kù)與所述從數(shù)據(jù)庫(kù)不一致,否則,判斷出所述主數(shù)據(jù)庫(kù)與所述從數(shù)據(jù)庫(kù)一致。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括:修復(fù)單元,用于在判斷出所述主數(shù)據(jù)庫(kù)與所述從數(shù)據(jù)庫(kù)不一致之后,執(zhí)行數(shù)據(jù)修復(fù)操作,其中,所述數(shù)據(jù)修復(fù)操作包括:從執(zhí)行完Ν次所述步驟之后得到的所述差異主鍵列表中查找同時(shí)被所述主數(shù)據(jù)庫(kù)和所述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第一主鍵類(lèi)型的主鍵,使用所述主數(shù)據(jù)庫(kù)中與類(lèi)型為所述第一主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄覆蓋所述從數(shù)據(jù)庫(kù)中與所述第一主鍵類(lèi)型對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄;從執(zhí)行完N次所述步驟之后得到的所述差異主鍵列表中查找被所述主數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的、但沒(méi)有被所述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第二主鍵類(lèi)型的主鍵,將所述主數(shù)據(jù)庫(kù)中與所述第二主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄復(fù)制到所述從數(shù)據(jù)庫(kù)中;從執(zhí)行完N次所述步驟之后得到的所述差異主鍵列表中查找被所述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的、但沒(méi)有被所述主數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄包含的主鍵,記為第三主鍵類(lèi)型,并從所述從數(shù)據(jù)庫(kù)中刪除與所述第三主鍵類(lèi)型的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄。10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括:初始化單元,用于在重復(fù)執(zhí)行所述步驟N次之前,生成所述差異主鍵列表的初始值,其中,所述生成初始化的差異主鍵列表包括:并行地執(zhí)行任務(wù)隊(duì)列中的多個(gè)任務(wù)來(lái)掃描所述主數(shù)據(jù)庫(kù)和所述從數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)記錄,以獲得所述差異主鍵列表的初始值,其中,每個(gè)所述任務(wù)包括以下操作,其中,任務(wù)最小鍵值的初始值為所述主數(shù)據(jù)庫(kù)中被檢測(cè)數(shù)據(jù)表的所有數(shù)據(jù)庫(kù)記錄對(duì)應(yīng)的主鍵中的最小值:在所述主數(shù)據(jù)庫(kù)中從與所述任務(wù)最小鍵值對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄開(kāi)始按主鍵從小到大的順序掃描預(yù)定行數(shù)的數(shù)據(jù)庫(kù)記錄,將所述主數(shù)據(jù)庫(kù)中當(dāng)前掃描到的數(shù)據(jù)庫(kù)記錄記錄為當(dāng)前主數(shù)據(jù)庫(kù)記錄集,獲取所述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中的數(shù)據(jù)庫(kù)記錄所對(duì)應(yīng)的主鍵中的最大值作為任務(wù)最大鍵值,創(chuàng)建下一個(gè)任務(wù),將所述任務(wù)最大鍵值作為所述下一個(gè)任務(wù)的任務(wù)最小鍵值,并將創(chuàng)建的所述下一個(gè)任務(wù)放入所述任務(wù)隊(duì)列中;在所述從數(shù)據(jù)庫(kù)中掃描與值在范圍[所述任務(wù)最小鍵值,所述任務(wù)最大鍵值)內(nèi)的主鍵對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,將所述從數(shù)據(jù)庫(kù)中當(dāng)前掃描到的數(shù)據(jù)庫(kù)記錄記錄為當(dāng)前從數(shù)據(jù)庫(kù)記錄集;若同一主鍵在所述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄與在所述當(dāng)前從數(shù)據(jù)庫(kù)記錄集中對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄不同,則將該主鍵記錄為所述差異主鍵列表的初始值成員;若同一主鍵在所述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在所述當(dāng)前從數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為所述差異主鍵列表的初始值成員;若同一主鍵在所述當(dāng)前從數(shù)據(jù)庫(kù)記錄集中存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄、而在所述當(dāng)前主數(shù)據(jù)庫(kù)記錄集中不存在對(duì)應(yīng)的數(shù)據(jù)庫(kù)記錄,則將該主鍵記錄為所述差異主鍵列表的初始值成員;將所述差異主鍵列表的初始值成員構(gòu)成的集合存儲(chǔ)在一個(gè)列表中,以構(gòu)成所述差異主鍵列表的初始值?!疚臋n編號(hào)】G06F11/00GK104252481SQ201310263694【公開(kāi)日】2014年12月31日申請(qǐng)日期:2013年6月27日優(yōu)先權(quán)日:2013年6月27日【發(fā)明者】葉暉俊申請(qǐng)人:阿里巴巴集團(tuán)控股有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
襄汾县| 梓潼县| 无棣县| 武陟县| 高唐县| 博乐市| 山东| 南召县| 靖江市| 漳浦县| 武宁县| 马鞍山市| 葵青区| 和静县| 常州市| 申扎县| 延长县| 泸溪县| 和平县| 志丹县| 于田县| 商城县| 千阳县| 得荣县| 岚皋县| 东港市| 常熟市| 黑龙江省| 乃东县| 双桥区| 五华县| 丰城市| 桂阳县| 涟水县| 大冶市| 珠海市| 祁阳县| 白朗县| 筠连县| 砀山县| 定兴县|