[發明專利]數據庫修復方法及裝置有效
| 申請號: | 201710237241.1 | 申請日: | 2017-04-12 |
| 公開(公告)號: | CN107193871B | 公開(公告)日: | 2018-10-16 |
| 發明(設計)人: | 張三華;何俊偉 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;G06F11/14 |
| 代理公司: | 北京勵誠知識產權代理有限公司 11647 | 代理人: | 賈玉姣 |
| 地址: | 518057 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據庫 數據庫修復 元數據 備份 用戶數據 計算機技術領域 可靠性和實用性 修復 解析數據 修復條件 錯誤碼 根節點 文件頭 成功率 上報 | ||
1.一種數據庫修復方法,其特征在于,所述方法包括:
根據數據庫上報的損壞錯誤碼,確定所述數據庫滿足修復條件;
獲取已備份的元數據,其中,所述已備份的元數據中,包括第一表名組,和與第一表名組分別對應的第一根節點組;
根據所述已備份的元數據,獲取所述數據庫中包括的第一用戶數據組;
根據所述第一表名組和第一用戶數據組,對所述數據庫進行修復處理。
2.根據權利要求1所述的方法,其特征在于,所述獲取已備份的元數據之前,還包括:
在所述數據庫啟動后,以預設的時間間隔對所述數據庫中的元數據進行備份;
或者,
在確定所述數據庫有新的葉子頁數據寫入時,對所述葉子頁數據進行備份。
3.根據權利要求2所述的方法,其特征在于,所述確定所述數據庫有新的葉子頁數據寫入,包括:
截獲數據庫發送的回調函數,所述回調函數中包括頁數據的類型;
判斷所述頁數據的類型,是否為葉子頁;
若是,則確定所述數據庫有新的葉子頁數據寫入。
4.根據權利要求3所述的方法,其特征在于,所述回調函數中還包括:表名;
所述對所述葉子頁數據進行備份,包括:
將所述葉子頁數據存儲在所述表名對應的表中。
5.根據權利要求1-4任一所述的方法,其特征在于,所述對所述數據庫進行修復處理之前,還包括:
獲取所述數據庫的系統表;
根據所述系統表,確定所述數據庫中包括的第二表名組和與第二表名組分別對應的第二根節點組;
根據所述第二表名組和第二根節點組,獲取第二用戶數據組;
所述對所述數據庫進行修復處理,包括:
根據所述第二表名組和第二用戶數據組、及第一表名組和第一用戶數據組,對所述數據庫進行修復處理。
6.根據權利要求5所述的方法,其特征在于,所述獲取所述數據庫的系統表,包括:
根據所述數據庫的文件頭,獲取所述數據庫的系統表;
或者,
根據預設的默認值,獲取所述數據庫的系統表。
7.根據權利要求5所述的方法,其特征在于,所述對所述數據庫進行修復處理,包括:
根據所述第一表名組和第二表名組的并集,創建所述數據庫對應的表結構和索引;
根據所述創建的所述數據庫的表結構和索引,將所述第一用戶數據組和第二用戶數據組的并集,分別寫入創建的數據庫中。
8.根據權利要求1-4任一所述的方法,其特征在于,所述根據數據庫上報的損壞錯誤碼,確定所述數據庫滿足修復條件,包括:
根據所述數據庫上報的損壞錯誤碼的數量和/或類型,確定所述數據庫滿足修復條件。
9.一種數據庫修復裝置,其特征在于,所述裝置包括:
第一確定模塊,用于根據數據庫上報的損壞錯誤碼,確定所述數據庫滿足修復條件;
第一獲取模塊,用于獲取已備份的元數據,其中,所述已備份的元數據中,包括第一表名組,和與第一表名組分別對應的第一根節點組;
第二獲取模塊,用于根據所述已備份的元數據,獲取所述數據庫中包括的第一用戶數據組;
處理模塊,用于根據所述第一表名組和第一用戶數據組,對所述數據庫進行修復處理。
10.根據權利要求9所述的裝置,其特征在于,還包括:
第一備份模塊,用于在所述數據庫啟動后,以預設的時間間隔對所述數據庫中的元數據進行備份,其中,元數據包括表名和根節點;
或者,
第二備份模塊,用于在確定所述數據庫有新的葉子頁數據寫入時,對所述葉子頁數據進行備份。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710237241.1/1.html,轉載請聲明來源鉆瓜專利網。





