[發明專利]一種數據庫溢出頁異常的檢測方法、裝置及存儲介質有效
| 申請號: | 201811186772.3 | 申請日: | 2018-10-12 |
| 公開(公告)號: | CN109446022B | 公開(公告)日: | 2022-08-12 |
| 發明(設計)人: | 陳明輝;張輝極;黃加紅;連洲紅 | 申請(專利權)人: | 廈門市美亞柏科信息股份有限公司 |
| 主分類號: | G06F11/30 | 分類號: | G06F11/30;G06F16/22;G06F16/28 |
| 代理公司: | 廈門福貝知識產權代理事務所(普通合伙) 35235 | 代理人: | 郝學江 |
| 地址: | 361000 福建省廈門市*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據庫 溢出 異常 檢測 方法 裝置 存儲 介質 | ||
本發明提供了一種數據庫溢出頁異常的檢測方法、裝置及存儲介質,該方法包括獲取一個數據庫溢出頁單元,然后讀出數據庫溢出頁單元的鏈表的一個節點,從所述節點中讀取下一個節點的頁號RN,獲取所述數據溢出頁單元的鏈表的總長度TL,計算所述數據庫溢出頁單元的鏈表頭到當前節點的長度RL,根據RN、TL和RL檢測數據庫溢出頁單元是否異常,從而實現了自動讀取B+tree中溢出頁單元的鏈表節點,并且自動判斷溢出頁單元的鏈表節點是否異常,為后續的數據異常修復奠定基礎,且具有很強的通用性。
技術領域
本發明涉及數據庫技術領域,特別是一種數據庫溢出頁異常的檢測方法、裝置及存儲介質。
背景技術
SQLite,是一款輕型的數據庫,是遵守ACID的關系型數據庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源的世界著名數據庫管理系統來講,它的處理速度比他們都快。因此,SQLite數據庫的使用越來越廣泛,特別是在便攜式設備中。
但是,由于便攜式設備的穩定性相對較差,比如在進行數據寫入時,突然斷電,導致SQLite的數據異常,目前,對于SQLite的數據異常的檢測,國內外研究比較少,現有技術中一般是通過一條條查詢出來并寫入到新的數據庫,但是這種方法的弊端是無法判斷數據庫異常類型,無法準確找到數據庫異常點,并且遇到異常的數據,查詢過程可能會中斷,導致數據庫修復過程不完整,經常出現修復完的數據庫記錄差異很大的情況,從而影響了數據庫修復的準確性和全面性。因此,如何準確的進行SQLite的數據異常的檢測是現有技術中的一個技術難題。
發明內容
本發明針對上述現有技術中的缺陷,提出了如下技術方案。
一種數據庫溢出頁異常的檢測方法,該方法包括:
獲取步驟,獲取一個數據庫溢出頁單元;
檢測步驟,讀出數據庫溢出頁單元的鏈表的一個節點,從所述節點中讀取下一個節點的頁號RN,獲取所述數據溢出頁單元的鏈表的總長度TL,計算所述數據庫溢出頁單元的鏈表頭到當前節點的長度RL,根據RN、TL和RL檢測數據庫溢出頁單元是否異常。
更進一步地,所述方法還包括:記錄步驟,記錄所述數據庫溢出頁異常的錯誤信息,所述錯誤信息包括數據庫溢出頁單元的鏈表的第一個節點的頁號、單元起始地址、下一單元起始地址和數據庫溢出頁出現異常的節點的頁號、節點序號。
更進一步地,所述數據庫為SQLite數據庫,所述數據庫包括多個SQLite頁面,所述SQLite頁面采用B+tree進行管理,其中,在B+tree中存放數據的SQLite頁面稱為葉子頁。
更進一步地,所述獲取步驟的操作為:從所述B+tree讀取一個葉子頁page,對一條數據記錄進行查找,若查找結果為空,表示當前頁查找結束,則繼續開始下一頁的查找,若查找結果不為空,將所述數據記錄在葉子頁的偏移記為r_offset;判斷r_size≤usable_size-r_offset是否成立,如果是,表示所述數據記錄不是數據庫溢出頁單元,然后繼續查詢下一條數據記錄,如果否,則表示所述數據記錄是數據庫溢出頁單元;其中,r_size為所述數據記錄的大小,usable_size為SQLite頁面的可用大小。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廈門市美亞柏科信息股份有限公司,未經廈門市美亞柏科信息股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811186772.3/2.html,轉載請聲明來源鉆瓜專利網。





