[發(fā)明專利]一種PostgreSQL數(shù)據(jù)庫(kù)的數(shù)據(jù)閃回查詢及恢復(fù)方法、裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201811181663.2 | 申請(qǐng)日: | 2018-10-11 |
| 公開(kāi)(公告)號(hào): | CN109299099B | 公開(kāi)(公告)日: | 2020-11-06 |
| 發(fā)明(設(shè)計(jì))人: | 田兵;黃永厚;盧健;范翊;楊杰 | 申請(qǐng)(專利權(quán))人: | 瀚高基礎(chǔ)軟件股份有限公司 |
| 主分類號(hào): | G06F16/22 | 分類號(hào): | G06F16/22;G06F16/245;G06F11/14 |
| 代理公司: | 濟(jì)南圣達(dá)知識(shí)產(chǎn)權(quán)代理有限公司 37221 | 代理人: | 楊哲 |
| 地址: | 250010 山東省濟(jì)南市高新*** | 國(guó)省代碼: | 山東;37 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 postgresql 數(shù)據(jù)庫(kù) 數(shù)據(jù) 查詢 恢復(fù) 方法 裝置 | ||
1.一種PostgreSQL數(shù)據(jù)庫(kù)的數(shù)據(jù)閃回查詢方法,其特征在于,該方法包括:
預(yù)設(shè)清理控制參數(shù),基于MVCC機(jī)制在用戶對(duì)數(shù)據(jù)庫(kù)表進(jìn)行更改或刪除操作時(shí),根據(jù)清理控制參數(shù)保留更改或刪除的舊行數(shù)據(jù);
接收閃回查詢語(yǔ)句,并根據(jù)預(yù)定義的語(yǔ)法解析規(guī)則進(jìn)行語(yǔ)法解析,獲得閃回查詢指定的查詢時(shí)間;
根據(jù)查詢時(shí)間在數(shù)據(jù)庫(kù)表中查詢,對(duì)保留的更改或刪除的舊行數(shù)據(jù)進(jìn)行可見(jiàn)性判斷,返回符合條件的閃回查詢數(shù)據(jù);
該方法還包括進(jìn)行閃回版本查詢:
接收閃回版本查詢語(yǔ)句,并根據(jù)預(yù)定義的語(yǔ)法解析規(guī)則進(jìn)行語(yǔ)法解析,獲得閃回版本查詢指定的查詢時(shí)間;
根據(jù)查詢時(shí)間在數(shù)據(jù)庫(kù)表中查詢,對(duì)保留的更改或刪除的舊行數(shù)據(jù)進(jìn)行可見(jiàn)性判斷,返回符合條件的閃回版本查詢數(shù)據(jù)。
2.如權(quán)利要求1所述的一種PostgreSQL數(shù)據(jù)庫(kù)的數(shù)據(jù)閃回查詢方法,其特征在于,所述清理控制參數(shù)包括舊行數(shù)據(jù)保存時(shí)間參數(shù)和舊行數(shù)據(jù)查詢保證參數(shù);
所述舊行數(shù)據(jù)保存時(shí)間參數(shù)為PostgreSQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)閃回查詢時(shí)數(shù)據(jù)庫(kù)表的舊行數(shù)據(jù)保存的最長(zhǎng)時(shí)間;
所述舊行數(shù)據(jù)查詢保證參數(shù)為PostgreSQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)閃回查詢時(shí)是否保證所述舊行數(shù)據(jù)可以被閃回查詢到。
3.如權(quán)利要求1所述的一種PostgreSQL數(shù)據(jù)庫(kù)的數(shù)據(jù)閃回查詢方法,其特征在于,所述保留的更改或刪除的舊行數(shù)據(jù)包括執(zhí)行自動(dòng)清理數(shù)據(jù)庫(kù)表的舊行數(shù)據(jù)時(shí)保留的更改或刪除的舊行數(shù)據(jù),具體方法步驟包括:
判斷所述清理控制參數(shù)中的舊行數(shù)據(jù)保存時(shí)間是否大于零,若是,進(jìn)入下一步,否則,閃回功能關(guān)閉;
對(duì)數(shù)據(jù)庫(kù)表的舊行數(shù)據(jù)進(jìn)行自動(dòng)清理,對(duì)待清理數(shù)據(jù)庫(kù)表的舊行數(shù)據(jù)進(jìn)行逐行遍歷,根據(jù)行數(shù)據(jù)的事物號(hào)獲得提交時(shí)間,根據(jù)提交時(shí)間是否在舊行數(shù)據(jù)保存時(shí)間內(nèi)判斷每個(gè)數(shù)據(jù)表的行數(shù)據(jù)是否可以被清理;
提交時(shí)間在舊行數(shù)據(jù)保存時(shí)間內(nèi),保留該行數(shù)據(jù),否則自動(dòng)清理該行數(shù)據(jù)。
4.如權(quán)利要求1所述的一種PostgreSQL數(shù)據(jù)庫(kù)的數(shù)據(jù)閃回查詢方法,其特征在于,所述保留的更改或刪除的舊行數(shù)據(jù)包括執(zhí)行手動(dòng)清理數(shù)據(jù)庫(kù)表的舊行數(shù)據(jù)時(shí)保留的更改或刪除的舊行數(shù)據(jù),具體方法步驟包括:
判斷所述清理控制參數(shù)中的舊行數(shù)據(jù)保存時(shí)間是否大于零,若是,進(jìn)入下一步,否則,閃回功能關(guān)閉;
對(duì)數(shù)據(jù)庫(kù)表的舊行數(shù)據(jù)進(jìn)行手動(dòng)清理,根據(jù)清理控制參數(shù)中的舊行數(shù)據(jù)查詢保證值判斷是否可進(jìn)行手動(dòng)清理操作,若是,進(jìn)行手動(dòng)清理操作,否則進(jìn)入下一步;
對(duì)待清理數(shù)據(jù)庫(kù)表的舊行數(shù)據(jù)進(jìn)行逐行遍歷,根據(jù)行數(shù)據(jù)的事物號(hào)獲得提交時(shí)間,根據(jù)提交時(shí)間是否在舊行數(shù)據(jù)保存時(shí)間內(nèi)判斷每個(gè)數(shù)據(jù)表的行數(shù)據(jù)是否可以被清理;
提交時(shí)間在舊行數(shù)據(jù)保存時(shí)間內(nèi),保留該行數(shù)據(jù),否則清理該行數(shù)據(jù)。
5.如權(quán)利要求1所述的一種PostgreSQL數(shù)據(jù)庫(kù)的數(shù)據(jù)閃回查詢方法,其特征在于,
所述根據(jù)預(yù)定義的語(yǔ)法解析規(guī)則進(jìn)行語(yǔ)法解析獲得事務(wù)號(hào)或查詢時(shí)間,當(dāng)獲得事務(wù)號(hào)時(shí),根據(jù)事務(wù)號(hào)獲取查詢時(shí)間;根據(jù)閃回查詢語(yǔ)句獲得的所述查詢時(shí)間包括閃回查詢中指定查詢的時(shí)間值,根據(jù)閃回版本查詢語(yǔ)句獲得的所述查詢時(shí)間包括閃回版本查詢中指定的開(kāi)始時(shí)間和結(jié)束時(shí)間。
6.如權(quán)利要求5所述的一種PostgreSQL數(shù)據(jù)庫(kù)的數(shù)據(jù)閃回查詢方法,其特征在于,在該方法中,獲得閃回查詢指定的查詢時(shí)間后,判斷該查詢時(shí)間是否在在舊行數(shù)據(jù)保存時(shí)間內(nèi),若是,進(jìn)入下一步,否則報(bào)錯(cuò)無(wú)法進(jìn)行閃回查詢;
遍歷數(shù)據(jù)庫(kù)表對(duì)象獲取數(shù)據(jù)庫(kù)表的行數(shù)據(jù),并從行數(shù)據(jù)中獲取插入新行時(shí)的事務(wù)號(hào)、修改行數(shù)據(jù)時(shí)的事務(wù)號(hào)和獲取不同事務(wù)號(hào)對(duì)應(yīng)的事務(wù)提交時(shí)間;
判斷返回符合條件的舊行數(shù)據(jù)是插入新行時(shí)的事務(wù)號(hào)已提交,且插入新行時(shí)的事務(wù)號(hào)對(duì)應(yīng)的事務(wù)提交時(shí)間不大于閃回查詢中指定查詢的時(shí)間值,以及修改行數(shù)據(jù)時(shí)的事務(wù)號(hào)已提交,且修改行數(shù)據(jù)時(shí)的事務(wù)號(hào)對(duì)應(yīng)的事務(wù)提交時(shí)間大于閃回查詢中指定查詢的時(shí)間值;
返回符合條件的舊行數(shù)據(jù)作為閃回查詢數(shù)據(jù)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于瀚高基礎(chǔ)軟件股份有限公司,未經(jīng)瀚高基礎(chǔ)軟件股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811181663.2/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 一種PostgreSQL塊
- 一種PostgreSQL塊存儲(chǔ)設(shè)備讀寫(xiě)模塊
- 一種基于PostgreSQL塊存儲(chǔ)設(shè)備的遷移方法
- 一種基于拓展PostgreSQL的語(yǔ)義軌跡數(shù)據(jù)庫(kù)構(gòu)建方法
- 一種數(shù)據(jù)存儲(chǔ)方法及裝置
- 清理日志的方法及裝置、存儲(chǔ)介質(zhì)、電子裝置
- PostgreSQL數(shù)據(jù)庫(kù)的DDL同步方法、裝置、設(shè)備和介質(zhì)
- 一種解決postgresql高可用節(jié)點(diǎn)宕機(jī)恢復(fù)的方法
- 基于SSL連接PostGreSQL數(shù)據(jù)庫(kù)審計(jì)的實(shí)現(xiàn)方法及系統(tǒng)
- 基于postgreSQL客戶端PSQL的數(shù)據(jù)交互方法及交互裝置
- 數(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í)行方法及裝置
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 帶有前處理和后處理的數(shù)據(jù)庫(kù)復(fù)合查詢系統(tǒng)及方法
- 數(shù)據(jù)庫(kù)查詢的方法和系統(tǒng)
- 查詢系統(tǒng)、查詢終端以及查詢方法
- 交易信息查詢方法、查詢裝置及查詢系統(tǒng)
- 數(shù)據(jù)查詢與結(jié)果生成方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 在RDF數(shù)據(jù)集上進(jìn)行OPTIONAL查詢的方法及存儲(chǔ)介質(zhì)
- 一種多表關(guān)聯(lián)查詢方法、裝置及設(shè)備
- 一種基于Impala的查詢方法和裝置
- 從查詢生成子查詢
- 一種基于通用查詢語(yǔ)言的查詢方法及查詢系統(tǒng)





