[發(fā)明專利]一種基于RAC的數(shù)據(jù)庫(kù)日志文件讀取方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201911156736.7 | 申請(qǐng)日: | 2019-11-22 |
| 公開(公告)號(hào): | CN111061690B | 公開(公告)日: | 2023-08-22 |
| 發(fā)明(設(shè)計(jì))人: | 孫峰;陳艷;余院蘭 | 申請(qǐng)(專利權(quán))人: | 武漢達(dá)夢(mèng)數(shù)據(jù)庫(kù)股份有限公司 |
| 主分類號(hào): | G06F16/17 | 分類號(hào): | G06F16/17;G06F16/176;G06F16/18 |
| 代理公司: | 深圳市六加知識(shí)產(chǎn)權(quán)代理有限公司 44372 | 代理人: | 向彬 |
| 地址: | 430000 湖北省武漢市東湖新技術(shù)開*** | 國(guó)省代碼: | 湖北;42 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 rac 數(shù)據(jù)庫(kù) 日志 文件 讀取 方法 裝置 | ||
1.一種基于RAC的數(shù)據(jù)庫(kù)日志文件讀取方法,其特征在于,包括:
將需讀取的日志文件分為連續(xù)的數(shù)據(jù)片,每個(gè)數(shù)據(jù)片中包含至少一個(gè)日志塊,每一個(gè)數(shù)據(jù)片的數(shù)據(jù)量小于等于預(yù)設(shè)閾值;其中,所述數(shù)據(jù)片的大小為:
其中,ORA_IO_READ_BUFFER為每個(gè)線程度讀取的數(shù)據(jù)塊大小,MAX_IO_READ為預(yù)設(shè)數(shù)據(jù)長(zhǎng)度閾值,LOG_BLOCK_SIZE為Direct?I/O讀寫限制的日志塊大小;
創(chuàng)建至少2個(gè)日志讀取線程,日志讀取線程數(shù)量小于等于每個(gè)數(shù)據(jù)片中包含的日志塊數(shù)量;
根據(jù)日志讀取線程的數(shù)量計(jì)算每個(gè)日志讀取線程需讀取的日志文件起始日志塊偏移值,根據(jù)日志塊偏移值為每個(gè)日志讀取線程分配需讀取的數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊包含至少一個(gè)日志塊;
建立日志緩存區(qū),所述日志緩存區(qū)的大小不小于劃分后的數(shù)據(jù)片大小,且以日志塊大小為標(biāo)準(zhǔn)對(duì)齊內(nèi)存地址,啟動(dòng)所有日志讀取線程,每個(gè)日志讀取線程按照被分配的需讀取的日志塊偏移值以日志塊為單位對(duì)數(shù)據(jù)片日志文件并行讀取;其中,并發(fā)讀取時(shí)所有線程一次讀取的日志大小為:
其中,REAL_LOG_SIZE為實(shí)際讀取的大小,?n為同時(shí)并發(fā)讀取的日志讀取線程數(shù)量,MAX_IO_READ為預(yù)設(shè)數(shù)據(jù)長(zhǎng)度閾值,LOG_BLOCK_SIZE為Direct?I/O讀寫限制的日志塊大小;
對(duì)每個(gè)日志讀取線程讀取到的每一個(gè)日志塊進(jìn)行數(shù)據(jù)校驗(yàn),判斷每一個(gè)日志塊是否讀取正確;若讀取正確,將讀取到的日志塊放入日志緩存區(qū);若讀取錯(cuò)誤,重新對(duì)讀取不正確的日志塊進(jìn)行讀取;將每個(gè)日志讀取線程讀取到的數(shù)據(jù)塊存入日志緩存區(qū)中相應(yīng)的偏移位置;直至將被分配的需讀取的數(shù)據(jù)塊讀取完成;
將每個(gè)日志讀取線程讀取到的數(shù)據(jù)塊按照原日志文件中的順序合并為讀取到的數(shù)據(jù)片;
對(duì)待讀取的日志文件中的每一個(gè)數(shù)據(jù)片依次進(jìn)行讀取,直至日志文件讀取完成。
2.根據(jù)權(quán)利要求1所述的基于RAC的數(shù)據(jù)庫(kù)日志文件讀取方法,其特征在于,所述將需讀取的日志文件分為連續(xù)的數(shù)據(jù)片之前,還包括:
創(chuàng)建日志讀取管理線程,所述日志讀取管理線程獲取日志文件讀取請(qǐng)求、完成日志文件讀取過程中的計(jì)算任務(wù),并對(duì)日志讀取線程進(jìn)行管理,所述計(jì)算任務(wù)包括將需讀取的日志文件分為連續(xù)的數(shù)據(jù)片、計(jì)算每個(gè)日志讀取線程需讀取的日志文件起始日志塊偏移值、將每個(gè)日志讀取線程讀取到的數(shù)據(jù)塊按照原日志文件中的順序合并為讀取到的數(shù)據(jù)片。
3.根據(jù)權(quán)利要求2所述的基于RAC的數(shù)據(jù)庫(kù)日志文件讀取方法,其特征在于,還包括:
進(jìn)行日志文件讀取前,日志讀取管理線程判斷需讀取的日志文件是否已被讀取;
若是,不進(jìn)行日志讀取;
若否,開始進(jìn)行日志讀取。
4.根據(jù)權(quán)利要求1所述的基于RAC的數(shù)據(jù)庫(kù)日志文件讀取方法,其特征在于,還包括:
需讀取的日志文件全部讀取并存入日志緩沖區(qū)后,讀取管理線程將日志緩沖區(qū)中的全部數(shù)據(jù)整體取出,保存為新的日志文件,或?qū)?shù)據(jù)提供給其它需要使用日志文件數(shù)據(jù)的功能模塊。
5.根據(jù)權(quán)利要求1所述的基于RAC的數(shù)據(jù)庫(kù)日志文件讀取方法,其特征在于,還包括:
存在已完成被分配的數(shù)據(jù)塊讀取任務(wù)的空閑日志讀取線程,且日志文件未讀取完成時(shí),讀取管理線程按順序?yàn)榭臻e日志讀取線程再次分配需讀取的數(shù)據(jù)塊。
6.根據(jù)權(quán)利要求5所述的基于RAC的數(shù)據(jù)庫(kù)日志文件讀取方法,其特征在于:
當(dāng)需讀取的日志文件中未被讀取的數(shù)據(jù)長(zhǎng)度小于讀取管理線程劃分的每個(gè)日志讀取線程的需讀取的日志塊總長(zhǎng)度時(shí),日志讀取線程需讀取的數(shù)據(jù)塊長(zhǎng)度與日志文件中未被讀取的數(shù)據(jù)長(zhǎng)度一致。
7.一種基于RAC的數(shù)據(jù)庫(kù)日志文件讀取裝置,其特征在于:
包括至少一個(gè)處理器和存儲(chǔ)器,所述至少一個(gè)處理器和存儲(chǔ)器之間通過數(shù)據(jù)總線連接,所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的指令,所述指令在被所述處理器執(zhí)行后,用于完成權(quán)利要求1-6任一所述的基于RAC的數(shù)據(jù)庫(kù)日志文件讀取方法。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于武漢達(dá)夢(mèng)數(shù)據(jù)庫(kù)股份有限公司,未經(jīng)武漢達(dá)夢(mèng)數(shù)據(jù)庫(kù)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911156736.7/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- Oracle RAC自動(dòng)添加刪除結(jié)點(diǎn)的方法
- 一種基于公鑰系統(tǒng)和數(shù)字水印的版權(quán)保護(hù)方法
- 一種鋰離子電池組剩余可用容量RAC的計(jì)算方法
- 多RAC集群系統(tǒng)、數(shù)據(jù)訪問方法及裝置
- 通過分組授權(quán)輔助接入(LAA)網(wǎng)絡(luò)中的小小區(qū)同步接入非授權(quán)介質(zhì)的方法
- 一種部署OracleRAC的方法及裝置
- 公有云上部署高性能Oracle RAC集群的方法
- 一種同時(shí)檢測(cè)母乳中九種重要位置異構(gòu)體的方法
- 一種HPLC-APCI/MS檢測(cè)母乳中rac-OPL對(duì)映異構(gòu)體的方法
- 治療與有害鳥嘌呤核苷酸交換因子活性相關(guān)的異常細(xì)胞生長(zhǎng)的方法和組合物
- 數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)管理系統(tǒng)及數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)構(gòu)筑裝置、數(shù)據(jù)庫(kù)檢索裝置、數(shù)據(jù)庫(kù)裝置、數(shù)據(jù)庫(kù)構(gòu)筑方法、以及數(shù)據(jù)庫(kù)檢索方法
- 數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)處理方法
- 數(shù)據(jù)庫(kù)系統(tǒng)、數(shù)據(jù)庫(kù)更新方法、數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)更新程序
- 容器數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)同步方法及數(shù)據(jù)庫(kù)
- 一種MongoDB數(shù)據(jù)庫(kù)對(duì)象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲(chǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)庫(kù)語(yǔ)句執(zhí)行方法及裝置
- 一種基于精簡(jiǎn)策略的集群系統(tǒng)的日志管理優(yōu)化方法
- 日志分離方法及裝置
- 日志服務(wù)器處理日志的方法和裝置
- 一種基于負(fù)載均衡的文件系統(tǒng)日志模型
- 日志生成方法、應(yīng)用服務(wù)器、日志服務(wù)器及日志生成系統(tǒng)
- 一種多線程日志輸出的方法及裝置
- 一種日志分析方法、系統(tǒng)、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 日志解析方法、裝置、設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 日志處理方法及設(shè)備
- 一種日志檢測(cè)方法、裝置、終端及服務(wù)器





