[發明專利]一種支持MySQL快速回滾數據的方法在審
| 申請號: | 201910904004.5 | 申請日: | 2019-09-23 |
| 公開(公告)號: | CN110674151A | 公開(公告)日: | 2020-01-10 |
| 發明(設計)人: | 劉小龍;唐軍;周文龍 | 申請(專利權)人: | 四川長虹電器股份有限公司 |
| 主分類號: | G06F16/23 | 分類號: | G06F16/23;G06F16/242;G06F16/21 |
| 代理公司: | 51213 四川省成都市天策商標專利事務所 | 代理人: | 胡慧東 |
| 地址: | 621000 四*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 回滾 數據庫 讀取文件 恢復過程 臨時文件 數據流 可執行 客戶端 誤操作 歸檔 日志 停機 語句 重做 拼接 捕獲 抽取 偽裝 輸出 恢復 | ||
1.一種支持MySQL快速回滾數據的方法,其特征在于,包括以下步驟:
A.抽取數據庫的歸檔日志,獲取需要回滾的數據的event初始值和結束值;
B.在程序客戶端偽裝成一個slave,不斷的獲取數據庫的重做數據流;
C.捕獲DML事件,分別將insert/update/delete語句進行重新拼接;
D.關閉臨時文件,讀取文件中回滾SQL內容并輸出。
2.如權利要求1所述的一種支持MySQL快速回滾數據的方法,其特征在于,所述步驟A中,在數據庫里誤操作數據之后,在歸檔日志文件里會記錄下所有的DML操作;通過抽取數據庫的歸檔二進制日志,形成一個可讀的數據庫操作日志,這里面包含了已執行的誤操作數據和SQL語句;由此定位到誤操作數據的范圍,并獲得需要回滾的數據的event初始值和結束值;event的位置均是由具體的file和position點位來確定。
3.如權利要求1所述的一種支持MySQL快速回滾數據的方法,其特征在于,所述步驟B中,對于數據庫的主從架構,主庫的數據會不斷同步到從庫,來達到從庫數據一致性;由此可以用程序來實現一個客戶端,把自己偽裝成一個slave從庫,不斷的獲取主庫的binlog文件并解析;在步驟A中獲得的event區間內,啟動一個循環遍歷獲取binlog的event信息;若當前處理的event位置大于獲取的結束值,則退出循環;通過event初始值和結束值,在循環體內獲取到范圍內的event數據。
4.如權利要求1所述的一種支持MySQL快速回滾數據的方法,其特征在于,所述步驟C中,首先通過具體的數據庫和表名稱,來進行第一步過濾誤操作的數據;在每一次循環的event事件中,對各種DML操作做不同的處理;把delete型的改寫成insert型,insert型的改為delete型,update型的改前的值和改后的值調換;然后把改寫后的語句拼接成可執行的SQL,這些SQL腳本就是對之前誤操作的反向操作語句;把拼接好的回滾SQL語句寫入到一個臨時文件,直到最后循環體結束。
5.如權利要求1所述的一種支持MySQL快速回滾數據的方法,其特征在于,所述步驟D中,若當前處理的event位置大于獲取的結束值,則退出循環,并關閉打開的臨時文件;由此文件內已經寫入了處理過的回滾SQL語句,最后讀取文件中回滾SQL內容并輸出;打印出的回滾SQL語句可以直接在數據庫的客戶端執行,用于恢復范圍內的誤操作數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川長虹電器股份有限公司,未經四川長虹電器股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910904004.5/1.html,轉載請聲明來源鉆瓜專利網。





