[發明專利]一種日志的記錄方法、日志的恢復方法及日志管理器有效
| 申請號: | 201310752894.5 | 申請日: | 2013-12-31 |
| 公開(公告)號: | CN103744939B | 公開(公告)日: | 2017-07-14 |
| 發明(設計)人: | 文繼軍;李健;張學富 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;G06F11/34;G06F11/14 |
| 代理公司: | 北京中博世達專利商標代理有限公司11274 | 代理人: | 申健 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 日志 記錄 方法 恢復 管理器 | ||
技術領域
本發明涉及數據壓縮領域,尤其涉及一種日志的記錄方法、日志的恢復方法及日志管理器。
背景技術
如圖1所示,在數據庫系統中,日志模塊包括日志管理器和日志文件兩部分,當數據庫系統出現故障之后,數據庫系統通過使用日志模塊來重建對數據庫所做的更新過程,從而保證數據庫的一致性。
現有技術中,通常將修改操作之后的元組數據存儲在日志文件中,在系統需要進行恢復時,日志管理器直接從日志文件中讀取修改操作之后的元組數據,然后將修改操作之后的元組數據通過緩沖區重新寫入數據文件,在現有的方案中,當修改(update)操作比較頻繁,或者修改操作只更改元組數據的部分屬性的情況下,日志文件中會存儲大量的重復冗余數據,使得日志文件的數據量很大,導致占用大量磁盤IO資源。
發明內容
本發明的實施例提供一種日志的記錄方法、日志的恢復方法及日志管理器,用于解決日志文件的數據量很大,導致占用大量磁盤IO資源的問題。
為達到上述目的,本發明的實施例采用如下技術方案:
一方面,提供一種日志的記錄方法,所述方法包括:
日志管理器獲取修改操作之后的第一元組數據,所述第一元組數據包括多個子數據;
將所述第一元組數據與所述修改操作之前的第二元組數據進行數據匹配;
若所述第一元組數據中存在第一數據串與所述第二元組數據中的第二數據串相同,則獲取所述第二數據串在所述第二元組數據中的位置信息;所述數據串包括至少兩個連續的子數據;
將所述第一元組數據中除所述第一數據串之外的子數據、以及各個所述第二數據串在所述第二元組數據中的位置信息生成所述修改操作的日志記錄。
在第一方面的第一種可能的實現方式中,在將所述第一元組數據與修改操作之前的第二元組數據進行數據匹配之前,所述方法還包括:
從事務管理器獲取第二元組數據的存儲地址,并按照所述第二元組數據的存儲地址獲取所述第二元組數據。
在第一方面的第一種可能的實現方式中,還提供了第一方面的第二種可能的實現方式,在所述生成所述修改操作的日志記錄之后,所述方法還包括:
設置所述日志記錄對應的結構信息,所述結構信息包括:控制字符;所述控制字符中的控制位依次表示所述日志記錄中的數據是所述位置信息還是所述第一元組數據中除所述第一數據串之外的一個子數據;
將所述日志記錄、所述結構信息和所述第二元組數據的存儲地址存儲在日志文件中。
在第一方面的第二種可能的實現方式中,還提供了第一方面的第三種可能的實現方式,所述結構信息還包括:頭部信息,所述頭部信息包括所述日志記錄的長度信息。
在第一方面或第一方面的前三種任一可能的實現方式中,還提供了第一方面的第四種可能的實現方式,所述將所述第一元組數據與所述修改操作之前的第二元組數據進行數據匹配,具體包括:
將所述第一元組數據中的子數據按照正序或倒序方式依次與所述第二元組數據全部或部分子數據進行數據匹配。
在第一方面或第一方面的前三種任一可能的實現方式中,還提供了第一方面的第五種可能的實現方式,將所述第一元組數據中除所述第一數據串之外的子數據、以及各個所述第二數據串在所述第二元組數據中的位置信息生成所述修改操作的日志記錄,具體包括:
按照所述進行數據匹配的順序,依次排列各個所述位置信息和所述第一元組數據中除所述第一數據串之外的各個子數據,得到所述修改操作的日志記錄,其中,所述位置信息占用第一預定數目的字節;所述第一元組數據中除所述第一數據串之外的每個子數據占用第二預定數目的字節。
在第一方面或第一方面的前三種任一可能的實現方式中,還提供了第一方面的第五種可能的實現方式,所述位置信息包括:在所述第二元組數據中的起始位置和所述第二數據串的長度;或者,在所述第二元組數據中的起始位置和結束位置;或者,在所述第二元組數據中的結束位置和所述第二數據串的長度。
第二方面,提供一種日志管理器,所述日志管理器包括:第一獲取單元、計算單元和第一生成單元;
所述第一獲取單元,用于獲取修改操作之后的第一元組數據,所述第一元組數據包括多個子數據;
所述計算單元,用于將所述第一獲取單元所獲取的所述第一元組數據與所述修改操作之前的第二元組數據進行數據匹配;若所述第一元組數據中存在第一數據串與所述第二元組數據中的第二數據串相同,則獲取所述第二數據串在所述第二元組數據中的位置信息;所述數據串包括至少兩個連續的子數據;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310752894.5/2.html,轉載請聲明來源鉆瓜專利網。





