两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種主備庫數(shù)據(jù)修復(fù)的方法以及裝置與流程

文檔序號:11829281閱讀:215來源:國知局
本申請涉及數(shù)據(jù)修復(fù)
技術(shù)領(lǐng)域
:,具體涉及一種主備庫數(shù)據(jù)修復(fù)的方法,更具體的,包括主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法;以及與該主庫的數(shù)據(jù)處理方法相對應(yīng)的備庫的數(shù)據(jù)更新方法;以及結(jié)合所述主庫的數(shù)據(jù)處理方法和備庫的數(shù)據(jù)更新方法形成的主備庫數(shù)據(jù)修復(fù)方法。本申請同時涉及一種主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理裝置、一種備庫的數(shù)據(jù)更新裝置、一種主備庫數(shù)據(jù)修復(fù)的裝置,以及一種電子設(shè)備。
背景技術(shù)
::隨著近幾年來業(yè)務(wù)系統(tǒng)的高速發(fā)展,當(dāng)前的數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)也隨著客戶的增加、業(yè)務(wù)的增長以及業(yè)務(wù)系統(tǒng)的交易數(shù)和交易復(fù)雜度的增長有了大規(guī)模的提升,同時也導(dǎo)致了DBMS中的數(shù)據(jù)變化更加頻繁,DBMS的ACID(原子性Atomicity、一致性Consistency、隔離性Isolation和持久性Durability)實現(xiàn),保證了DBMS中數(shù)據(jù)的穩(wěn)定性和持久性;當(dāng)前,DBMS采用的是開放的MySQL數(shù)據(jù)庫產(chǎn)品,通過主備庫進行異步數(shù)據(jù)復(fù)制來實現(xiàn),正常情況下,主備庫的數(shù)據(jù)記錄是一致的。但是,在一些情況下,會出現(xiàn)主備庫數(shù)據(jù)記錄不一致的情況,就需要及時進行修復(fù)。針對上述主備庫的數(shù)據(jù)記錄不一致的情況,為了避免差異數(shù)據(jù)的檢測過程對主備庫造成過大壓力,一般采取分片檢測的方法,根據(jù)索引分別在主庫和備庫取對應(yīng)的數(shù)據(jù)分片(包含若干行數(shù)據(jù)記錄),對比在主庫和備庫取到的數(shù)據(jù)分片,若數(shù)據(jù)全部相同則繼續(xù)檢測下一個數(shù)據(jù)分片,若存在不相同的數(shù)據(jù)則表明存在差異數(shù)據(jù)。現(xiàn)有技術(shù)下,針對檢測出的主庫和備庫之間存在差異數(shù)據(jù),通過執(zhí)行以下步驟完成差異數(shù)據(jù)的修復(fù):在主庫上執(zhí)行一個鎖定命令,鎖定主庫上包含差異數(shù)據(jù)的數(shù)據(jù)分片;導(dǎo)出主庫上鎖定的數(shù)據(jù)分片中的數(shù)據(jù)記錄;刪除主庫上導(dǎo)出的該數(shù)據(jù)分片在備庫上對應(yīng)的數(shù)據(jù)分片,并將主庫上導(dǎo)出的該數(shù)據(jù)分片中的數(shù)據(jù)記錄插入備庫;解除在主庫上執(zhí)行的鎖定命令。上述提供的現(xiàn)有技術(shù)存在明顯的缺陷,在上述數(shù)據(jù)記錄的修復(fù)過程中,主庫會繼續(xù)收到數(shù)據(jù)更新請求,為防止修復(fù)時可能發(fā)生的數(shù)據(jù)更新,在修復(fù)時,將當(dāng)前需要修復(fù)的一個數(shù)據(jù)分片(包含若干行數(shù)據(jù)記錄)鎖定,鎖定時間取決于數(shù)據(jù)分片中包含的數(shù)據(jù)記錄的數(shù)目,以及備庫數(shù)據(jù)處理的執(zhí)行速度,因此,會在一段時間內(nèi),影響主庫的數(shù)據(jù)業(yè)務(wù),對于主庫的數(shù)據(jù)更新產(chǎn)生一定的延時。技術(shù)實現(xiàn)要素:本申請?zhí)峁┮环N主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法,以解決現(xiàn)有技術(shù)存在的數(shù)據(jù)鎖定造成的延時問題。本申請同時提供一種備庫的數(shù)據(jù)更新方法,該方法和上述主庫的數(shù)據(jù)處理方法相配合,實現(xiàn)主備庫數(shù)據(jù)修復(fù)。本申請同時提供一種將上述主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法和上述備庫的數(shù)據(jù)更新方法相結(jié)合,實現(xiàn)主備庫數(shù)據(jù)修復(fù)的方法。本申請同時提供一種主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理裝置,一種備庫的數(shù)據(jù)更新裝置,一種主備庫數(shù)據(jù)修復(fù)裝置,以及一種電子設(shè)備。本申請?zhí)峁┮环N用于數(shù)據(jù)備份的方法,包括:讀取主庫和備庫之間存在差異的差異數(shù)據(jù),每組差異數(shù)據(jù)在主庫和備庫至少存在一個對應(yīng)的數(shù)據(jù)記錄;確定每組差異數(shù)據(jù)的數(shù)據(jù)差異類型;所述數(shù)據(jù)差異類型包括第一數(shù)據(jù)差異類型和第二數(shù)據(jù)差異類型;所述第一數(shù)據(jù)差異類型包括:主庫存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;所述第二數(shù)據(jù)差異類型包括:在主庫不存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第一數(shù)據(jù)差異類型,則針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄執(zhí)行更新操作;若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第二數(shù)據(jù)差異類型,則在主庫中執(zhí)行插入所述差異數(shù)據(jù)的數(shù)據(jù)記錄的操作;然后,針對主庫中插入的所述差異數(shù)據(jù)的數(shù)據(jù)記錄執(zhí)行刪除操作??蛇x的,所述第一數(shù)據(jù)差異類型,包括以下兩種子數(shù)據(jù)差異類型:在主庫和備庫都存在對應(yīng)數(shù)據(jù)記錄但其中包含的數(shù)據(jù)值不同的差異數(shù)據(jù)的 數(shù)據(jù)差異類型;以及,主庫存在而備庫不存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型??蛇x的,若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第一數(shù)據(jù)差異類型,則針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄執(zhí)行更新操作的步驟,包括:針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,以所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄為依據(jù),執(zhí)行更新操作;將更新操作執(zhí)行前所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,更新操作執(zhí)行后所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,以及更新操作對應(yīng)的數(shù)據(jù)更新標(biāo)記寫入二進制日志??蛇x的,若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第二數(shù)據(jù)差異類型,則在主庫中執(zhí)行插入所述差異數(shù)據(jù)的數(shù)據(jù)記錄的操作的步驟,包括:以所述差異數(shù)據(jù)的數(shù)據(jù)記錄為依據(jù),在主庫中執(zhí)行插入所述差異數(shù)據(jù)的數(shù)據(jù)記錄的操作;將主庫中插入的所述差異數(shù)據(jù)的數(shù)據(jù)記錄,以及插入操作對應(yīng)的數(shù)據(jù)插入標(biāo)記寫入二進制日志??蛇x的,若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第二數(shù)據(jù)差異類型,則針對主庫中插入的所述差異數(shù)據(jù)的數(shù)據(jù)記錄執(zhí)行刪除操作的步驟,包括:刪除所述差異數(shù)據(jù)的數(shù)據(jù)記錄;將刪除前所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,以及刪除操作對應(yīng)的數(shù)據(jù)刪除標(biāo)記寫入二進制日志。本申請還提供一種主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理裝置,包括:差異數(shù)據(jù)讀取單元,用于讀取主庫和備庫之間存在差異的差異數(shù)據(jù),每組差異數(shù)據(jù)在主庫和備庫至少存在一個對應(yīng)的數(shù)據(jù)記錄;數(shù)據(jù)差異類型確定單元,用于根據(jù)所述差異數(shù)據(jù),確定每組差異數(shù)據(jù)的數(shù)據(jù)差異類型;所述數(shù)據(jù)差異類型包括第一數(shù)據(jù)差異類型和第二數(shù)據(jù)差異類型;所述第一數(shù)據(jù)差異類型包括:主庫存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;所述第二數(shù)據(jù)差異類型包括:在主庫不存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第一數(shù)據(jù)差異類型,則啟動數(shù)據(jù)記錄更 新單元;所述數(shù)據(jù)記錄更新單元,用于針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄執(zhí)行更新操作;若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第二數(shù)據(jù)差異類型,則依次啟動數(shù)據(jù)記錄插入單元和數(shù)據(jù)記錄刪除單元;所述數(shù)據(jù)記錄插入單元,用于在主庫中執(zhí)行插入所述差異數(shù)據(jù)的數(shù)據(jù)記錄的操作;所述數(shù)據(jù)記錄刪除單元,用于針對主庫中插入的所述差異數(shù)據(jù)的數(shù)據(jù)記錄執(zhí)行刪除操作??蛇x的,所述第一數(shù)據(jù)差異類型,包括以下兩種子數(shù)據(jù)差異類型:在主庫和備庫都存在對應(yīng)數(shù)據(jù)記錄但其中包含的數(shù)據(jù)值不同的差異數(shù)據(jù)的數(shù)據(jù)差異類型;以及,主庫存在而備庫不存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型??蛇x的,所述數(shù)據(jù)記錄更新單元,包括:數(shù)據(jù)記錄更新子單元,用于針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,以所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄為依據(jù),執(zhí)行更新操作;更新二進制日志生成子單元,用于將更新操作執(zhí)行前所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,更新操作執(zhí)行后所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,以及更新操作對應(yīng)的數(shù)據(jù)更新標(biāo)記寫入二進制日志??蛇x的,所述數(shù)據(jù)記錄插入單元,包括:數(shù)據(jù)記錄插入子單元,用于以所述差異數(shù)據(jù)的數(shù)據(jù)記錄為依據(jù),在主庫中執(zhí)行插入所述差異數(shù)據(jù)的數(shù)據(jù)記錄的操作;插入二進制日志生成子單元,用于將主庫中插入的所述差異數(shù)據(jù)的數(shù)據(jù)記錄,以及插入操作對應(yīng)的數(shù)據(jù)插入標(biāo)記寫入二進制日志。可選的,所述數(shù)據(jù)記錄插入單元,包括:數(shù)據(jù)記錄刪除子單元,用于刪除所述差異數(shù)據(jù)的數(shù)據(jù)記錄;刪除二進制日志生成子單元,用于將刪除前所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,以及刪除操作對應(yīng)的數(shù)據(jù)刪除標(biāo)記寫入二進制日志。本申請還提供一種備庫的數(shù)據(jù)更新方法,包括:讀取中繼日志中記錄的數(shù)據(jù)操作記錄;所述數(shù)據(jù)操作記錄包括:每個數(shù)據(jù)處理操作對應(yīng)的數(shù)據(jù)處理標(biāo)記,以及每個數(shù)據(jù)處理操作相關(guān)的數(shù)據(jù)記錄;根據(jù)從中繼日志中讀取的數(shù)據(jù)操作記錄,執(zhí)行相應(yīng)操作;同時,遵循以下特別制定的規(guī)則:若數(shù)據(jù)處理標(biāo)記為數(shù)據(jù)插入標(biāo)記,則在數(shù)據(jù)表中查詢對應(yīng)該數(shù)據(jù)插入標(biāo)記的數(shù)據(jù)記錄是否存在;若存在,則不作處理;若該中繼日志中記錄的數(shù)據(jù)處理標(biāo)記為數(shù)據(jù)更新標(biāo)記,則在數(shù)據(jù)表中查詢對應(yīng)該數(shù)據(jù)更新標(biāo)記的數(shù)據(jù)記錄是否存在;若不存在,則將該中繼日志中記錄的更新操作執(zhí)行后的數(shù)據(jù)記錄插入數(shù)據(jù)表中。本申請還提供一種備庫的數(shù)據(jù)更新裝置,包括:數(shù)據(jù)操作記錄讀取單元,用于讀取中繼日志中記錄的數(shù)據(jù)操作記錄;所述數(shù)據(jù)操作記錄包括:每個數(shù)據(jù)處理操作對應(yīng)的數(shù)據(jù)處理標(biāo)記,以及每個數(shù)據(jù)處理操作相關(guān)的數(shù)據(jù)記錄;操作執(zhí)行單元,用于根據(jù)從中繼日志中讀取的數(shù)據(jù)操作記錄,執(zhí)行相應(yīng)操作;同時,遵循以下特別制定的規(guī)則:若數(shù)據(jù)處理標(biāo)記為數(shù)據(jù)插入標(biāo)記,則在數(shù)據(jù)表中查詢對應(yīng)該數(shù)據(jù)插入標(biāo)記的數(shù)據(jù)記錄是否存在;若存在,則不作處理;若該中繼日志中記錄的數(shù)據(jù)處理標(biāo)記為數(shù)據(jù)更新標(biāo)記,則在數(shù)據(jù)表中查詢對應(yīng)該數(shù)據(jù)更新標(biāo)記的數(shù)據(jù)記錄是否存在;若不存在,則將該中繼日志中記錄的更新操作執(zhí)行后的數(shù)據(jù)記錄插入數(shù)據(jù)表中。本申請還提供一種主備庫數(shù)據(jù)修復(fù)的方法,包括:主庫以上述用于數(shù)據(jù)備份的方法進行差異數(shù)據(jù)的處理;該處理過程記錄在二進制日志中;將二進制日志中的數(shù)據(jù)操作記錄寫入對應(yīng)的中繼日志中;所述數(shù)據(jù)操作記錄包括:每個數(shù)據(jù)處理操作對應(yīng)的數(shù)據(jù)處理標(biāo)記,以及每個數(shù)據(jù)處理操作相關(guān)的數(shù)據(jù)記錄;備庫根據(jù)所述中繼日志,以上述備庫的數(shù)據(jù)更新方法進行數(shù)據(jù)更新。本申請還提供一種主備庫數(shù)據(jù)修復(fù)的裝置,包括:上述主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理裝置;主庫通過上述主備庫數(shù)據(jù)修 復(fù)中主庫的數(shù)據(jù)處理裝置進行差異數(shù)據(jù)的處理;該處理過程記錄在二進制日志中;日志數(shù)據(jù)復(fù)制單元,用于將二進制日志中的數(shù)據(jù)操作記錄寫入對應(yīng)的中繼日志中;所述數(shù)據(jù)操作記錄包括:每個數(shù)據(jù)處理操作對應(yīng)的數(shù)據(jù)處理標(biāo)記,以及每個數(shù)據(jù)處理操作相關(guān)的數(shù)據(jù)記錄;上述備庫的數(shù)據(jù)更新裝置;備庫通過上述備庫的數(shù)據(jù)更新裝置進行數(shù)據(jù)更新。本申請還提供一種電子設(shè)備,包括:顯示器;存儲器,用于存儲主庫和備庫的數(shù)據(jù)記錄;處理器,用于讀取主庫和備庫之間存在差異的差異數(shù)據(jù),每組差異數(shù)據(jù)在主庫和備庫至少存在一個對應(yīng)的數(shù)據(jù)記錄;確定每組差異數(shù)據(jù)的數(shù)據(jù)差異類型;所述數(shù)據(jù)差異類型包括第一數(shù)據(jù)差異類型和第二數(shù)據(jù)差異類型;所述第一數(shù)據(jù)差異類型包括:主庫存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;所述第二數(shù)據(jù)差異類型包括:在主庫不存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第一數(shù)據(jù)差異類型,則針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄執(zhí)行更新操作;若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第二數(shù)據(jù)差異類型,則在主庫中執(zhí)行插入所述差異數(shù)據(jù)的數(shù)據(jù)記錄的操作;然后,針對主庫中插入的所述差異數(shù)據(jù)的數(shù)據(jù)記錄執(zhí)行刪除操作。與現(xiàn)有技術(shù)相比,本申請具有以下優(yōu)點:本申請?zhí)峁┑闹鱾鋷鞌?shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法,包括:讀取主庫和備庫之間存在差異的差異數(shù)據(jù),每組差異數(shù)據(jù)在主庫和備庫至少存在一個對應(yīng)的數(shù)據(jù)記錄;確定每組差異數(shù)據(jù)的數(shù)據(jù)差異類型;所述數(shù)據(jù)差異類型包括第一數(shù)據(jù)差異類型和第二數(shù)據(jù)差異類型;所述第一數(shù)據(jù)差異類型包括:主庫存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;所述第二數(shù)據(jù)差異類型包括:在主庫不存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第一數(shù)據(jù)差異類型,則針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄執(zhí)行更新操作;若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第二數(shù)據(jù)差異類型,則在主庫中執(zhí)行 插入所述差異數(shù)據(jù)的數(shù)據(jù)記錄的操作;然后,針對主庫中插入的所述差異數(shù)據(jù)的數(shù)據(jù)記錄執(zhí)行刪除操作。本申請?zhí)峁┑膫鋷斓臄?shù)據(jù)更新方法,包括:讀取中繼日志中記錄的數(shù)據(jù)操作記錄;所述數(shù)據(jù)操作記錄包括:每個數(shù)據(jù)處理操作對應(yīng)的數(shù)據(jù)處理標(biāo)記,以及每個數(shù)據(jù)處理操作相關(guān)的數(shù)據(jù)記錄;根據(jù)從中繼日志中讀取的數(shù)據(jù)操作記錄,執(zhí)行相應(yīng)操作;同時,遵循以下特別制定的規(guī)則:若數(shù)據(jù)處理標(biāo)記為數(shù)據(jù)插入標(biāo)記,則在數(shù)據(jù)表中查詢對應(yīng)該數(shù)據(jù)插入標(biāo)記的數(shù)據(jù)記錄是否存在;若存在,則不作處理;若該中繼日志中記錄的數(shù)據(jù)處理標(biāo)記為數(shù)據(jù)更新標(biāo)記,則在數(shù)據(jù)表中查詢對應(yīng)該數(shù)據(jù)更新標(biāo)記的數(shù)據(jù)記錄是否存在;若不存在,則將該中繼日志中記錄的更新操作執(zhí)行后的數(shù)據(jù)記錄插入數(shù)據(jù)表中。本申請?zhí)峁┑闹鱾鋷鞌?shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法和備庫的數(shù)據(jù)更新方法相互配合,可實現(xiàn)主庫和備庫之間存在的差異數(shù)據(jù)的修復(fù),無需對差異數(shù)據(jù)在主庫對應(yīng)的數(shù)據(jù)記錄進行鎖定,實現(xiàn)方式簡單,在備庫根據(jù)中繼日志對主庫數(shù)據(jù)進行異步復(fù)制的過程中即可自然實現(xiàn);同時,該方法也避免了數(shù)據(jù)鎖定造成的延時。附圖說明附圖1是本申請第一實施例提供的一種主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法處理流程圖;附圖2是本申請第二實施例提供的一種主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理裝置示意圖;附圖3是本申請第三實施例提供的一種備庫的數(shù)據(jù)更新方法處理流程圖;附圖4是本申請第四實施例提供的一種備庫的數(shù)據(jù)更新裝置示意圖;附圖5是本申請第五實施例提供的一種主備庫數(shù)據(jù)修復(fù)的方法處理流程圖;附圖6是本申請第六實施例提供的一種主備庫數(shù)據(jù)修復(fù)的裝置示意圖;附圖7是本申請第七實施例提供的一種電子設(shè)備示意圖。具體實施方式在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本申請。但是本申請能夠以很多不同于在此描述的其他方式來實施,本領(lǐng)域技術(shù)人員可以在不違背本申請內(nèi)涵的情況下做類似推廣,因此本申請不受下面公開的具體實施的限制。本申請?zhí)峁┮环N主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法;以及與該主庫的數(shù)據(jù)處理方法相對應(yīng)的備庫的數(shù)據(jù)更新方法;以及結(jié)合所述主庫的數(shù)據(jù)處理方法和備庫的數(shù)據(jù)更新方法形成的主備庫數(shù)據(jù)修復(fù)方法。本申請同時提供一種主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理裝置、一種備庫的數(shù)據(jù)更新裝置、一種主備庫數(shù)據(jù)修復(fù)的裝置,以及一種電子設(shè)備。實施例一參照附圖1,其示出了本實施例提供的一種主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法處理流程圖。本申請?zhí)峁┑闹鱾鋷鞌?shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法,基于主備庫異步數(shù)據(jù)復(fù)制過程中的主庫實現(xiàn)。以下結(jié)合附圖1對本實施例提供的一種主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法進行說明,并且對該方法的各個步驟進行說明。為了便于說明主備庫數(shù)據(jù)修復(fù)的實現(xiàn)方法,在一些步驟中,還對備庫中相應(yīng)的數(shù)據(jù)更新過程做了說明。本申請?zhí)峁┑囊环N主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法,包括:步驟S101,讀取主庫和備庫之間存在差異的差異數(shù)據(jù)。本實施例以MySQL數(shù)據(jù)庫為例,對本申請?zhí)峁┑闹鱾鋷鞌?shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法進行說明;因此,本實施例中,所述主庫和備庫是指MySQL數(shù)據(jù)庫。在具體實施時,還可以基于其他的數(shù)據(jù)庫平臺對本申請?zhí)峁┑闹鱾鋷鞌?shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法進行說明,在此不作限定。正常情況下,主庫和備庫的數(shù)據(jù)記錄一一對應(yīng),并且相同數(shù)據(jù)記錄中包含的數(shù)據(jù)值相同;即:對于主庫中的任意一個數(shù)據(jù)記錄,備庫中都存在一個與其相同的數(shù)據(jù)記錄,在此,將主庫和備庫中的各自一個相互對應(yīng)并且相同的數(shù)據(jù)記錄,作為一組數(shù)據(jù)記錄。所述差異數(shù)據(jù),是指主庫和備庫之間存在的所有不一致的數(shù)據(jù)記錄,統(tǒng)稱為差異數(shù)據(jù);并且,所述差異數(shù)據(jù)中包含的任意一組差異數(shù)據(jù),在主庫和備庫至少存在一個對應(yīng)的數(shù)據(jù)記錄。具體的,以所述差異數(shù)據(jù)中包含的任意一組差異數(shù)據(jù)為例,所述差異數(shù)據(jù)包括如下三種:1、在主庫存在該差異數(shù)據(jù)對應(yīng)的數(shù)據(jù)記錄,備庫也存在該差異數(shù)據(jù)對應(yīng)的 數(shù)據(jù)記錄,但是該差異數(shù)據(jù)在主庫和備庫各自對應(yīng)的數(shù)據(jù)記錄的具體數(shù)據(jù)值不同;即:在主庫和備庫各自對應(yīng)的數(shù)據(jù)記錄都存在,但是二者的值不相等。對于此種差異數(shù)據(jù),需要根據(jù)主庫的數(shù)據(jù)記錄的具體數(shù)據(jù)值更新備庫中相應(yīng)數(shù)據(jù)記錄的具體數(shù)據(jù)值。2、在主庫存在該差異數(shù)據(jù)對應(yīng)的數(shù)據(jù)記錄,備庫不存在該差異數(shù)據(jù)對應(yīng)的數(shù)據(jù)記錄;即:在主庫存在對應(yīng)的數(shù)據(jù)記錄,在備庫不存在對應(yīng)的數(shù)據(jù)記錄。對于此種差異數(shù)據(jù),需要根據(jù)主庫中的數(shù)據(jù)記錄在備庫中補充該數(shù)據(jù)記錄。3、在主庫不存在該差異數(shù)據(jù)對應(yīng)的數(shù)據(jù)記錄,備庫存在該差異數(shù)據(jù)對應(yīng)的數(shù)據(jù)記錄;即:在備庫存在的數(shù)據(jù)記錄,在主庫不存在對應(yīng)的數(shù)據(jù)記錄。對于此種差異數(shù)據(jù),需要刪除備庫中的該組差異數(shù)據(jù)的數(shù)據(jù)記錄。步驟S102,確定每組差異數(shù)據(jù)的數(shù)據(jù)差異類型。本實施例中,將所述差異數(shù)據(jù)的數(shù)據(jù)差異類型分為第一數(shù)據(jù)差異類型和第二數(shù)據(jù)差異類型。所述第一數(shù)據(jù)差異類型,是指主庫存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型。具體的,所述第一數(shù)據(jù)差異類型,包括以下兩種子數(shù)據(jù)差異類型:在主庫和備庫都存在對應(yīng)數(shù)據(jù)記錄但其中包含的數(shù)據(jù)值不同的差異數(shù)據(jù)的數(shù)據(jù)差異類型,即上述步驟S101中所述的第1種差異數(shù)據(jù)的數(shù)據(jù)差異類型;以及,主庫存在而備庫不存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型,即上述步驟S101中所述的第2種差異數(shù)據(jù)的數(shù)據(jù)差異類型。所述第二數(shù)據(jù)差異類型,是指在主庫不存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;即上述步驟S101中所述的第3種差異數(shù)據(jù)的數(shù)據(jù)差異類型。步驟S103,針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄執(zhí)行更新操作。如果上述步驟S101讀取的差異數(shù)據(jù)的數(shù)據(jù)差異類型是第一數(shù)據(jù)差異類型,則所述針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄執(zhí)行更新操作,具體實現(xiàn)如下:針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,以所述差異數(shù)據(jù)在主庫中的數(shù)據(jù) 記錄為依據(jù),執(zhí)行更新操作;將更新操作執(zhí)行前所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,更新操作執(zhí)行后所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,以及更新操作對應(yīng)的數(shù)據(jù)更新標(biāo)記寫入二進制日志(binlog)。即:針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,以自身為依據(jù),執(zhí)行原樣更新操作,并且將該原樣更新操作前后的數(shù)據(jù)記錄和數(shù)據(jù)更新標(biāo)記寫入二進制日志(binlog)中。例如:主庫中一個簡單的表結(jié)構(gòu),表名table1;表中包含兩個字段:id為主鍵,num是普通字段;差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,第n行數(shù)據(jù)記錄:(n,num1);執(zhí)行語句:updatetable1setnum=num1whereid=n;該語句執(zhí)行完畢之后,將該語句寫入二進制日志(binlog)中;并且,將該語句執(zhí)行前的數(shù)據(jù)記錄(n,num1),該語句執(zhí)行前的數(shù)據(jù)記錄(n,num1),以及該語句對應(yīng)的數(shù)據(jù)更新標(biāo)記(UPDATE)寫入二進制日志(binlog)中。在此之后,基于主備庫的異步復(fù)制原理,該二進制日志(binlog)中記錄的數(shù)據(jù)全部被復(fù)制到中繼日志(relaylog)中;在備庫中進行異步復(fù)制時,執(zhí)行中繼日志(relaylog)中記錄的所述更新操作;如果差異數(shù)據(jù)屬于步驟S101中的第1中差異數(shù)據(jù),假設(shè)對應(yīng)的,差異數(shù)據(jù)在備庫中的數(shù)據(jù)記錄,第n行數(shù)據(jù)記錄的值為:(n,num1');根據(jù)中繼日志(relaylog),在備庫中執(zhí)行所述更新操作之后,差異數(shù)據(jù)在備庫中的數(shù)據(jù)記錄,第n行數(shù)據(jù)記錄被更新為(n,num1),與主庫保持一致。如果差異數(shù)據(jù)屬于步驟S101中的第1中差異數(shù)據(jù),即備庫中不存在對應(yīng)的數(shù)據(jù)記錄;由于在備庫中根據(jù)所述鍵值沒有找到鍵值為n的數(shù)據(jù)記錄;根據(jù)為備庫的數(shù)據(jù)更新方法特別制定的規(guī)則,此時將該中繼日志(relaylog)中記錄的所述更新操作執(zhí)行后的數(shù)據(jù)記錄插入數(shù)據(jù)表中,即插入一個第n行數(shù)據(jù)記錄,這樣,在備庫中第n行數(shù)據(jù)記錄為:(n,num1),同樣與主庫保持一致。通過上述主庫備庫的配合,即可完成主庫和備庫此行(第n行)數(shù)據(jù)記錄的修復(fù)??梢钥闯?,上述主庫中根據(jù)差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄進行的原樣更新操作,可以在主庫的二進制日志(binlog)中,增加一個更新操作記錄;這個更新操作記錄傳遞到備庫的中繼日志后,結(jié)合為備庫制定的特別規(guī)則,在備庫根據(jù)中繼日志(relaylog)對主庫數(shù)據(jù)進行異步復(fù)制的過程中即可自然實現(xiàn)數(shù)據(jù)修復(fù)。步驟S104,在主庫中執(zhí)行插入所述差異數(shù)據(jù)的數(shù)據(jù)記錄的操作。本實施中,所述第二數(shù)據(jù)差異類型,是指在主庫不存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;即:上述步驟S101中所述的第3種差異數(shù)據(jù)的數(shù)據(jù)差異類型,差異數(shù)據(jù)在主庫對應(yīng)的數(shù)據(jù)記錄為空。針對數(shù)據(jù)第二數(shù)據(jù)差異類型的差異數(shù)據(jù),需要首先執(zhí)行如下步驟:以所述差異數(shù)據(jù)的數(shù)據(jù)記錄為依據(jù),在主庫中執(zhí)行插入所述差異數(shù)據(jù)的數(shù)據(jù)記錄的操作;將主庫中插入的所述差異數(shù)據(jù)的數(shù)據(jù)記錄,以及插入操作對應(yīng)的數(shù)據(jù)插入標(biāo)記寫入二進制日志(binlog)。例如:主庫中一個簡單的表結(jié)構(gòu),表名table1;表中包含兩個字段:id為主鍵,num是普通字段;差異數(shù)據(jù)在主庫中不存在對應(yīng)的數(shù)據(jù)記錄;對應(yīng)的,差異數(shù)據(jù)在備庫中的數(shù)據(jù)記錄為第n行數(shù)據(jù)記錄:(n,num2');執(zhí)行語句:insertintotable1values(n,num2');該語句執(zhí)行完畢之后,該語句被寫入二進制日志(binlog)中;并將該語句執(zhí)行后的數(shù)據(jù)記錄(n,num2'),以及該語句對應(yīng)的數(shù)據(jù)插入標(biāo)記(INSERT)寫入二進制日志(binlog)中。在此之后,基于主備庫的異步復(fù)制原理,該二進制日志(binlog)中記錄的所有數(shù)據(jù)全部被復(fù)制到中繼日志(relaylog)中;在備庫中執(zhí)行中繼日志(relaylog)中記錄的數(shù)據(jù)插入操作;對應(yīng)的,差異數(shù)據(jù)在備庫中的數(shù)據(jù)記錄,第n行數(shù)據(jù)記錄的值為:(n,num2');根據(jù)中繼日志(relaylog),在備庫中執(zhí)行數(shù)據(jù)插入操作;由于該數(shù)據(jù)插入操作要插入的數(shù)據(jù)記錄(n,num2')在備庫中已經(jīng)存在,根據(jù)為備庫設(shè)定的特別規(guī)則,該數(shù)據(jù)插入操作不執(zhí)行。步驟S105,針對主庫中插入的所述差異數(shù)據(jù)的數(shù)據(jù)記錄執(zhí)行刪除操作。具體實現(xiàn)如下:根據(jù)上述步驟S104,將上述步驟S104插入主庫的所述差異數(shù)據(jù)的數(shù)據(jù)記錄刪除;將刪除前所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,以及刪除操作對應(yīng)的數(shù)據(jù)刪除標(biāo)記寫入二進制日志(binlog)。結(jié)合上述步驟S104的舉例,例如:差異數(shù)據(jù)在備庫中的數(shù)據(jù)記錄被插入主庫之后,差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,第n行數(shù)據(jù)記錄:(n,num2')執(zhí)行語句:deletefromtable1whereid=n;該語句執(zhí)行完畢之后,主庫中的該數(shù)據(jù)記錄被刪除,同時,該語句執(zhí)行前的數(shù)據(jù)記錄(n,num2'),以及該語句對應(yīng)的數(shù)據(jù)刪除標(biāo)記(DELETE)寫入二進制日志(binlog)中。在此之后,基于主備庫的異步復(fù)制原理,該二進制日志(binlog)中記錄的所有數(shù)據(jù)全部被復(fù)制到中繼日志(relaylog)中;在備庫中執(zhí)行中繼日志(relaylog)中記錄的數(shù)據(jù)刪除操作;根據(jù)中繼日志(relaylog),差異數(shù)據(jù)在備庫中的數(shù)據(jù)記錄,第n行數(shù)據(jù)記錄被刪除,與主庫保持一致??梢钥闯觯褂帽緦嵤├峁┑姆椒ㄔ谥鲙鞂Σ町悢?shù)據(jù)進行相應(yīng)的數(shù)據(jù)處理后,既可以在備庫遵循簡單的規(guī)則的情況下,實現(xiàn)差異數(shù)據(jù)的修復(fù)。實施例二在上述的實施例中,提供了一種主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法,與之相對應(yīng)的,本申請?zhí)峁┝艘环N主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理裝置,由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關(guān)的部分請參見上述方法實施例對應(yīng)說明即可。下述描述的裝置實施例僅僅是示意性的。參照附圖2,其示出了根據(jù)本實施例提供的一種主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理裝置示意圖。本申請?zhí)峁┑囊环N主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理裝置,包括:差異數(shù)據(jù)讀取單元201,用于讀取主庫和備庫之間存在差異的差異數(shù)據(jù),每組差異數(shù)據(jù)在主庫和備庫至少存在一個對應(yīng)的數(shù)據(jù)記錄;數(shù)據(jù)差異類型確定單元202,用于根據(jù)所述差異數(shù)據(jù),確定每組差異數(shù)據(jù)的數(shù)據(jù)差異類型;所述數(shù)據(jù)差異類型包括第一數(shù)據(jù)差異類型和第二數(shù)據(jù)差異類型;所述第一數(shù)據(jù)差異類型包括:主庫存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;所述第二數(shù)據(jù)差異類型包括:在主庫不存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第一數(shù)據(jù)差異類型,則啟動數(shù)據(jù)記錄更新單元203;所述數(shù)據(jù)記錄更新單元203,用于針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄執(zhí)行更新操作;若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第二數(shù)據(jù)差異類型,則依次啟動數(shù)據(jù)記錄插入單元204和數(shù)據(jù)記錄刪除單元205;所述數(shù)據(jù)記錄插入單元204,用于在主庫中執(zhí)行插入所述差異數(shù)據(jù)的數(shù)據(jù)記錄的操作;所述數(shù)據(jù)記錄刪除單元205,用于針對主庫中插入的所述差異數(shù)據(jù)的數(shù)據(jù)記錄執(zhí)行刪除操作??蛇x的,所述第一數(shù)據(jù)差異類型,包括以下兩種子數(shù)據(jù)差異類型:在主庫和備庫都存在對應(yīng)數(shù)據(jù)記錄但其中包含的數(shù)據(jù)值不同的差異數(shù)據(jù)的數(shù)據(jù)差異類型;以及,主庫存在而備庫不存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型??蛇x的,所述數(shù)據(jù)記錄更新單元203,包括:數(shù)據(jù)記錄更新子單元,用于針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,以所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄為依據(jù),執(zhí)行更新操作;更新二進制日志生成子單元,用于將更新操作執(zhí)行前所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,更新操作執(zhí)行后所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,以及更新 操作對應(yīng)的數(shù)據(jù)更新標(biāo)記寫入二進制日志??蛇x的,所述數(shù)據(jù)記錄插入單元204,包括:數(shù)據(jù)記錄插入子單元,用于以所述差異數(shù)據(jù)的數(shù)據(jù)記錄為依據(jù),在主庫中執(zhí)行插入所述差異數(shù)據(jù)的數(shù)據(jù)記錄的操作;插入二進制日志生成子單元,用于將主庫中插入的所述差異數(shù)據(jù)的數(shù)據(jù)記錄,以及插入操作對應(yīng)的數(shù)據(jù)插入標(biāo)記寫入二進制日志??蛇x的,所述數(shù)據(jù)記錄插入單元205,包括:數(shù)據(jù)記錄刪除子單元,用于刪除所述差異數(shù)據(jù)的數(shù)據(jù)記錄;刪除二進制日志生成子單元,用于將刪除前所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄,以及刪除操作對應(yīng)的數(shù)據(jù)刪除標(biāo)記寫入二進制日志。實施例三在上述的實施例中,提供了一種主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法,在此基礎(chǔ)上,本申請還提供一種備庫的數(shù)據(jù)更新方法,基于主備庫異步數(shù)據(jù)復(fù)制過程中的備庫實現(xiàn),與上述主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法相對應(yīng)。本實施例與上述主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法實施例相對應(yīng),內(nèi)容相同的部分不再贅述,閱讀本實施例請參照上述主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法實施例。以下結(jié)合附圖3對本申請?zhí)峁┑囊环N備庫的數(shù)據(jù)更新方法進行說明,并且對該方法的各個步驟進行說明。本申請?zhí)峁┑膫鋷斓臄?shù)據(jù)更新方法,包括:步驟S301,讀取中繼日志中記錄的數(shù)據(jù)操作記錄。所述數(shù)據(jù)操作記錄包括:每個數(shù)據(jù)處理操作對應(yīng)的數(shù)據(jù)處理標(biāo)記,以及每個數(shù)據(jù)處理操作相關(guān)的數(shù)據(jù)記錄。例如:讀取中繼日志(relaylog)中記錄的數(shù)據(jù)操作記錄;其中,該數(shù)據(jù)操作記錄包括如下信息:數(shù)據(jù)操作所針對的數(shù)據(jù)記錄主鍵n、更新操作對應(yīng)的數(shù)據(jù)更新標(biāo)記(UPDATE)、該更新操作執(zhí)行前的數(shù)據(jù)記錄(n,num1),該新操作執(zhí)行后的數(shù)據(jù)記錄(n,num1)。或者讀取中繼日志(relaylog)中記錄的數(shù)據(jù)操作記錄;其中,該數(shù)據(jù)操作記錄包括:數(shù)據(jù)操作所針對的數(shù)據(jù)記錄主鍵n、以及插入操作對應(yīng)的數(shù)據(jù)插入標(biāo)記(INSERT)、該插入操作執(zhí)行后的數(shù)據(jù)記錄(n,num2')。或者讀取中繼日志(relaylog)中記錄的數(shù)據(jù)操作記錄;其中,該數(shù)據(jù)操作記錄包括:數(shù)據(jù)操作所針對的數(shù)據(jù)記錄主鍵n、刪除操作對應(yīng)的數(shù)據(jù)刪除標(biāo)記(DELETE)、該刪除操作執(zhí)行前的數(shù)據(jù)記錄(n,num2')。步驟S302,根據(jù)從中繼日志中讀取的數(shù)據(jù)操作記錄,執(zhí)行相應(yīng)操作。需要說明的是,本步驟根據(jù)從中繼日志(relaylog)中讀取的數(shù)據(jù)操作記錄,在備庫執(zhí)行相應(yīng)操作,同時,遵循以下兩條特別指定的規(guī)則:特別制定的規(guī)則1:若數(shù)據(jù)處理標(biāo)記為數(shù)據(jù)插入標(biāo)記,則在數(shù)據(jù)表中根據(jù)該操作記錄中的主鍵值查詢對應(yīng)該數(shù)據(jù)插入標(biāo)記的數(shù)據(jù)記錄是否存在;若存在,則不作處理。需要說明的是,如果上述判斷結(jié)果為所述數(shù)據(jù)記錄不存在,則根據(jù)所述中繼日志(relaylog)執(zhí)行插入操作,這屬于備庫根據(jù)中繼日志(relaylog)進行的常規(guī)操作,不是特別制定的規(guī)則。特別制定的規(guī)則2:該中繼日志(relaylog)中記錄的數(shù)據(jù)處理標(biāo)記為數(shù)據(jù)更新標(biāo)記,則在數(shù)據(jù)表中根據(jù)該操作記錄中的主鍵值查詢對應(yīng)該數(shù)據(jù)更新標(biāo)記的數(shù)據(jù)記錄是否存在;若不存在,則將該中繼日志(relaylog)中記錄的更新操作執(zhí)行后的數(shù)據(jù)記錄插入數(shù)據(jù)表中。需要說明的是,若上述判斷結(jié)果為數(shù)據(jù)記錄存在,則根據(jù)中繼日志(relaylog)的進行更新操作,或者不作處理,這屬于備庫根據(jù)中繼日志(relaylog)進行的常規(guī)操作,不是特別制定的規(guī)則。例如:從中繼日志(relaylog)中讀取的針對主鍵值為n的數(shù)據(jù)操作記錄有:插入操作對應(yīng)的數(shù)據(jù)插入標(biāo)記(INSERT)、該插入操作執(zhí)行后的數(shù)據(jù)記錄(n,num2');由于該數(shù)據(jù)處理標(biāo)記為數(shù)據(jù)插入標(biāo)記(INSERT),則在數(shù)據(jù)表(table1')中根據(jù)其主鍵值n查詢對應(yīng)該數(shù)據(jù)插入標(biāo)記(INSERT)的數(shù)據(jù)記錄是否存在;若存在,則遵循上述特別指定的規(guī)則1,不作處理;此時,與主庫中對應(yīng)的數(shù)據(jù)記錄保持一致;若不存在,則根據(jù)備庫異步復(fù)制的一般規(guī)則處理,將該數(shù)據(jù)記錄(n,num2') 插入數(shù)據(jù)表(table1')中,使其與主庫中對應(yīng)的數(shù)據(jù)記錄保持一致?;蛘邚闹欣^日志(relaylog)中讀取的針對主鍵值n的數(shù)據(jù)操作記錄有:更新操作對應(yīng)的數(shù)據(jù)更新標(biāo)記(UPDATE)、該更新操作執(zhí)行前的數(shù)據(jù)記錄(n,num1),該新操作執(zhí)行后的數(shù)據(jù)記錄(n,num1);由于該數(shù)據(jù)處理標(biāo)記為數(shù)據(jù)更新標(biāo)記(UPDATE),則在數(shù)據(jù)表(table1')中根據(jù)主鍵值n查詢對應(yīng)該數(shù)據(jù)更新標(biāo)記(UPDATE)的數(shù)據(jù)記錄是否存在;若存在,則根據(jù)備庫異步復(fù)制的一般規(guī)則,以所述數(shù)據(jù)記錄為依據(jù),執(zhí)行更新操作,使其與主庫中對應(yīng)的數(shù)據(jù)記錄(n,num1)保持一致。若不存在,則根據(jù)前述特別制定的規(guī)則2,將該中繼日志(relaylog)中記錄的更新操作執(zhí)行后的數(shù)據(jù)記錄(n,num1)插入數(shù)據(jù)表(table1')中,使其與主庫中對應(yīng)的數(shù)據(jù)記錄保持一致。執(zhí)行上述數(shù)據(jù)操作之后,備庫的數(shù)據(jù)記錄與主庫的數(shù)據(jù)記錄保持一致,從而實現(xiàn)主備庫之間的差異數(shù)據(jù)的修復(fù)。對于主庫不存在對應(yīng)數(shù)據(jù)的數(shù)據(jù)差異類型,由于主庫在處理過程中進行了先插入后刪除的操作,在遵循上述特別制定的規(guī)則1之后,先插入的步驟不會作任何處理;而后刪除的操作則會根據(jù)中繼日志(relaylog)的操作記錄執(zhí)行,這樣就將備庫比主庫多出來的該條記錄刪除了。實施例四在上述的實施例中,提供了一種備庫的數(shù)據(jù)更新方法,與之相對應(yīng)的,本申請?zhí)峁┝艘环N備庫的數(shù)據(jù)更新裝置,由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關(guān)的部分請參見上述方法實施例對應(yīng)說明即可。下述描述的裝置實施例僅僅是示意性的。參照附圖4,其示出了根據(jù)本實施例提供的一種備庫的數(shù)據(jù)更新裝置示意圖。本申請?zhí)峁┑囊环N備庫的數(shù)據(jù)更新裝置,包括:數(shù)據(jù)操作記錄讀取單元401,用于讀取中繼日志中記錄的數(shù)據(jù)操作記錄;所述數(shù)據(jù)操作記錄包括:每個數(shù)據(jù)處理操作對應(yīng)的數(shù)據(jù)處理標(biāo)記,以及每個數(shù)據(jù)處理操作相關(guān)的數(shù)據(jù)記錄;操作執(zhí)行單元402,用于根據(jù)從中繼日志中讀取的數(shù)據(jù)操作記錄,執(zhí)行相應(yīng) 操作;同時,遵循以下特別制定的規(guī)則:若數(shù)據(jù)處理標(biāo)記為數(shù)據(jù)插入標(biāo)記,則在數(shù)據(jù)表中查詢對應(yīng)該數(shù)據(jù)插入標(biāo)記的數(shù)據(jù)記錄是否存在;若存在,則不作處理;若該中繼日志中記錄的數(shù)據(jù)處理標(biāo)記為數(shù)據(jù)更新標(biāo)記,則在數(shù)據(jù)表中查詢對應(yīng)該數(shù)據(jù)更新標(biāo)記的數(shù)據(jù)記錄是否存在;若不存在,則將該中繼日志中記錄的更新操作執(zhí)行后的數(shù)據(jù)記錄插入數(shù)據(jù)表中。實施例五在上述的實施例中,提供了一種主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法,以及一種備庫的數(shù)據(jù)更新方法實施例,在此基礎(chǔ)上,本申請還提供了一種主備庫數(shù)據(jù)修復(fù)的方法,該方法是基于上述主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法、備庫的數(shù)據(jù)更新方法實現(xiàn)。本實施例與上述主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法實施例,以及上述備庫的數(shù)據(jù)更新方法實施例的內(nèi)容基本相似,內(nèi)容相同的部分不再贅述,閱讀本實施例請參照上述實施例。以下結(jié)合附圖5對本申請?zhí)峁┑囊环N主備庫數(shù)據(jù)修復(fù)的方法進行說明,并且對該方法的各個步驟進行說明。本申請?zhí)峁┑闹鱾鋷鞌?shù)據(jù)修復(fù)的方法,包括:步驟S501,主庫以所述主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法進行差異數(shù)據(jù)的處理;該處理過程記錄在二進制日志中;步驟S502,將二進制日志中的數(shù)據(jù)操作記錄寫入對應(yīng)的中繼日志中;所述數(shù)據(jù)操作記錄包括:每個數(shù)據(jù)處理操作對應(yīng)的數(shù)據(jù)處理標(biāo)記,以及每個數(shù)據(jù)處理操作相關(guān)的數(shù)據(jù)記錄;步驟S503,備庫根據(jù)所述中繼日志,以所述備庫的數(shù)據(jù)更新方法進行數(shù)據(jù)更新。實施例六在上述的實施例中,提供了一種主備庫數(shù)據(jù)修復(fù)的方法,與之相對應(yīng)的,本申請?zhí)峁┝艘环N主備庫數(shù)據(jù)修復(fù)的裝置,由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關(guān)的部分請參見上述方法實施例對應(yīng)說明即可。下述描述的裝置實施例僅僅是示意性的。參照附圖6,其示出了根據(jù)本實施例提供的一種主備庫數(shù)據(jù)修復(fù)的裝置示意圖。本申請?zhí)峁┑囊环N主備庫數(shù)據(jù)修復(fù)的裝置,包括:上述主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理裝置601;主庫通過所述主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理裝置601進行差異數(shù)據(jù)的處理;該處理過程記錄在二進制日志中;日志數(shù)據(jù)復(fù)制單元602,用于將二進制日志中的數(shù)據(jù)操作記錄寫入對應(yīng)的中繼日志中;所述數(shù)據(jù)操作記錄包括:每個數(shù)據(jù)處理操作對應(yīng)的數(shù)據(jù)處理標(biāo)記,以及每個數(shù)據(jù)處理操作相關(guān)的數(shù)據(jù)記錄;上述備庫的數(shù)據(jù)更新裝置603;備庫通過所述備庫的數(shù)據(jù)更新裝置603進行數(shù)據(jù)更新。實施例七在上述的實施例中,提供了一種主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法,與之相對應(yīng)的,本申請?zhí)峁┝艘环N電子設(shè)備,基于所述電子設(shè)備可實現(xiàn)所述主備庫數(shù)據(jù)修復(fù)中主庫的數(shù)據(jù)處理方法。本實施例相關(guān)的部分請參見上述方法實施例對應(yīng)說明即可。下述描述的裝置實施例僅僅是示意性的。參照附圖7,其示出了根據(jù)本實施例提供的一種電子設(shè)備示意圖。本申請?zhí)峁┑囊环N電子設(shè)備,包括:顯示器701;存儲器702,用于存儲主庫和備庫的數(shù)據(jù)記錄;處理器703,用于讀取存儲器702存儲的主庫和備庫之間存在差異的差異數(shù)據(jù),每組差異數(shù)據(jù)在主庫和備庫至少存在一個對應(yīng)的數(shù)據(jù)記錄;確定每組差異數(shù)據(jù)的數(shù)據(jù)差異類型;所述數(shù)據(jù)差異類型包括第一數(shù)據(jù)差異類型和第二數(shù)據(jù)差異類型;所述第一數(shù)據(jù)差異類型包括:主庫存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;所述第二數(shù)據(jù)差異類型包括:在主庫不存在對應(yīng)數(shù)據(jù)記錄的差異數(shù)據(jù)的數(shù)據(jù)差異類型;若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第一數(shù)據(jù)差異類型,則針對所述差異數(shù)據(jù)在主庫中的數(shù)據(jù)記錄執(zhí)行更新操作;若所述差異數(shù)據(jù)的數(shù)據(jù)差異類型為第二數(shù)據(jù)差異類型,則在主庫中執(zhí)行插入所述差異數(shù)據(jù)的數(shù)據(jù)記錄的操作;然后,針對主庫中插入的所述差異數(shù)據(jù)的數(shù)據(jù)記錄執(zhí)行刪除操作。本申請雖然以較佳實施例公開如上,但其并不是用來限定本申請,任何本領(lǐng)域技術(shù)人員在不脫離本申請的精神和范圍內(nèi),都可以做出可能的變動和修改,因此本申請的保護范圍應(yīng)當(dāng)以本申請權(quán)利要求所界定的范圍為準(zhǔn)。在一個典型的配置中,計算設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flashRAM)。內(nèi)存是計算機可讀介質(zhì)的示例。1、計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括非暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。2、本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
石景山区| 盐山县| 大渡口区| 四川省| 大关县| 北碚区| 成安县| 高陵县| 五指山市| 瓮安县| 修武县| 华阴市| 万安县| 镇坪县| 桐柏县| 花莲县| 芜湖市| 广南县| 林州市| 毕节市| 临泉县| 安平县| 防城港市| 罗甸县| 商河县| 桑植县| 阳东县| 廉江市| 贵阳市| 陵水| 石嘴山市| 建德市| 嵊州市| 浏阳市| 漳浦县| 郎溪县| 农安县| 射阳县| 温泉县| 鄂伦春自治旗| 沂水县|