[發(fā)明專利]一種基于InnoDB的碎片文件恢復(fù)方法、裝置及存儲介質(zhì)有效
| 申請?zhí)枺?/td> | 201811225169.1 | 申請日: | 2018-10-19 |
| 公開(公告)號: | CN109408290B | 公開(公告)日: | 2021-02-26 |
| 發(fā)明(設(shè)計)人: | 梁德榮;田慶宜;黃建邦;沈長達(dá);吳少華;張學(xué)君 | 申請(專利權(quán))人: | 廈門市美亞柏科信息股份有限公司 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14;G06F16/28 |
| 代理公司: | 廈門福貝知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 35235 | 代理人: | 郝學(xué)江 |
| 地址: | 361000 福建省廈門市*** | 國省代碼: | 福建;35 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 innodb 碎片 文件 恢復(fù) 方法 裝置 存儲 介質(zhì) | ||
1.一種基于InnoDB的碎片文件恢復(fù)方法,其特征在于,該方法包括:
讀取步驟,從基于InnoDB的初始位置Offset=0開始讀取n字節(jié)數(shù)據(jù)作為InnoDB數(shù)據(jù)文件的一個數(shù)據(jù)頁,所述碎片文件是ibdata和/或ibd碎片文件;
匹配步驟,讀取所述數(shù)據(jù)頁的前4個字節(jié)記為校驗值CheckSum1,使用數(shù)據(jù)頁的折疊和校驗算法計算出所述數(shù)據(jù)頁的校驗值CheckSum2,判斷CheckSum1是否等于CheckSum2,如果否,則Offset=Offset+m,重新執(zhí)行讀取步驟,如果是,則執(zhí)行恢復(fù)步驟,所述使用數(shù)據(jù)頁的折疊和校驗算法計算出所述數(shù)據(jù)頁的校驗值CheckSum2的操作為:從所述數(shù)據(jù)頁的第4個字節(jié)開始取長度為22字節(jié)的一段數(shù)據(jù)進(jìn)行折疊異或計算得到檢驗值為sum1,從所述數(shù)據(jù)頁的第38個字節(jié)開始取長度為n-46字節(jié)的一段數(shù)據(jù)進(jìn)行折疊異或計算得到檢驗值為sum2,則該數(shù)據(jù)頁的校驗值Checksum2=sum1+sum2;
恢復(fù)步驟,讀取所述數(shù)據(jù)頁的頁號PageNo和該數(shù)據(jù)頁所屬文件的文件標(biāo)識FileId,根據(jù)所述FileId進(jìn)行數(shù)據(jù)頁的合并,并根據(jù)頁號PageNo在所屬文件內(nèi)從小到大進(jìn)行排序,然后令Offset=Offset+n,重新執(zhí)行讀取步驟;
其中,m為一個數(shù)據(jù)偏移單位,n為一個數(shù)據(jù)頁的大小。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,
定義兩個整型數(shù)異或值算法,操作符設(shè)為**:設(shè)兩個4字節(jié)整型數(shù)a和b,異或值算法為:
a**b=(((((a^b^RANDOM_MASK)8)+a)^RANDOM_MASK2)+b);
即a異或b異或RANDOM_MASK的值左移8加a再異或RANDOM_MASK2加b;
所述折疊異或計算的操作為:設(shè)置折疊數(shù)fold初始值為0,按字節(jié)順序遍歷該段數(shù)據(jù),設(shè)遍歷結(jié)構(gòu)為數(shù)據(jù)集N{N1,N2,N3,..,Nm},依次按整型數(shù)異或值算法與fold進(jìn)行計算,返回值更新到fold,即fold=fold**Ni,其中,1=i=m,RANDOM_MASK=1653893711,RANDOM_MASK2=1463735687。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,按字節(jié)順序遍歷該段數(shù)據(jù)形成數(shù)據(jù)集N{N1,N2,N3,..,Nm}的操作為:從該段數(shù)據(jù)的起始位置按照每四個字節(jié)讀出生成一個4字節(jié)整型數(shù),如果最后剩余的數(shù)據(jù)小于4個字節(jié),將剩余的字節(jié)數(shù)形成一個整數(shù)作為Nm。
4.一種基于InnoDB的碎片文件恢復(fù)裝置,其特征在于,該裝置包括:
讀取單元,用于從基于InnoDB的初始位置Offset=0開始讀取n字節(jié)數(shù)據(jù)作為InnoDB數(shù)據(jù)文件的一個數(shù)據(jù)頁,所述碎片文件是ibdata和/或ibd碎片文件;
匹配單元,用于讀取所述數(shù)據(jù)頁的前4個字節(jié)記為校驗值CheckSum1,使用數(shù)據(jù)頁的折疊和校驗算法計算出所述數(shù)據(jù)頁的校驗值CheckSum2,判斷CheckSum1是否等于CheckSum2,如果否,則Offset=Offset+m,重新執(zhí)行讀取單元的操作,如果是,則執(zhí)行恢復(fù)單元的操作,所述使用數(shù)據(jù)頁的折疊和校驗算法計算出所述數(shù)據(jù)頁的校驗值CheckSum2的操作為:從所述數(shù)據(jù)頁的第4個字節(jié)開始取長度為22字節(jié)的一段數(shù)據(jù)進(jìn)行折疊異或計算得到檢驗值為sum1,從所述數(shù)據(jù)頁的第38個字節(jié)開始取長度為n-46字節(jié)的一段數(shù)據(jù)進(jìn)行折疊異或計算得到檢驗值為sum2,則該數(shù)據(jù)頁的校驗值Checksum2=sum1+sum2;
恢復(fù)單元,用于讀取所述數(shù)據(jù)頁的頁號PageNo和該數(shù)據(jù)頁所屬文件的文件標(biāo)識FileId,根據(jù)所述FileId進(jìn)行數(shù)據(jù)頁的合并,并根據(jù)頁號PageNo在所屬文件內(nèi)從小到大進(jìn)行排序,然后令Offset=Offset+n,重新執(zhí)行讀取單元的操作;
其中,m為一個數(shù)據(jù)偏移單位,n為一個數(shù)據(jù)頁的大小。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廈門市美亞柏科信息股份有限公司,未經(jīng)廈門市美亞柏科信息股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811225169.1/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)更新的加鎖方法和設(shè)備
- 數(shù)據(jù)庫中數(shù)據(jù)備份方法、裝置及游戲系統(tǒng)
- 基于結(jié)構(gòu)化數(shù)據(jù)的SaaS模式內(nèi)容管理系統(tǒng)
- innodb引擎刪除記錄的離線恢復(fù)方法、存儲介質(zhì)
- 一種基于InnoDB的碎片文件恢復(fù)方法、裝置及存儲介質(zhì)
- 一種恢復(fù)MySQL數(shù)據(jù)庫的innodb壓縮數(shù)據(jù)的方法
- 一種基于圖論的雕復(fù)mysql-innodb數(shù)據(jù)庫的方法
- 一種MySQL數(shù)據(jù)庫由主從模式熱切換到集群模式的方法
- 一種基于硬件保護(hù)的事務(wù)處理方法
- 帶MySQL一體機性能監(jiān)控圖形用戶界面的電腦





