專利名稱:基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分區(qū)表的維護(hù)方法和系統(tǒng),特別地,涉及一種基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)方法和系統(tǒng)。
背景技術(shù):
分區(qū)(partitioning)是oracle數(shù)據(jù)庫(kù)的一個(gè)組件,數(shù)據(jù)分區(qū)技術(shù)最早是在 Oracle 8. O中引入的,分區(qū)是將一個(gè)表或索引物理地分解為多個(gè)更小、更可管理的部分。就訪問數(shù)據(jù)庫(kù)的應(yīng)用而言,從邏輯上講只有一個(gè)表或一個(gè)索引,但在物理上這個(gè)表或索引可能由數(shù)十個(gè)物理分區(qū)組成,每個(gè)分區(qū)都是一個(gè)獨(dú)立的對(duì)象,可以獨(dú)自處理,也可以作為一個(gè)更大對(duì)象的一部分進(jìn)行處理。
目前,oracle關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)已發(fā)展到IlG R2,分區(qū)的方式有范圍分區(qū)(range分區(qū))、列表分區(qū)(list分區(qū))、哈希分區(qū)(hash分區(qū))以及上述三種分區(qū)組合的復(fù)合分區(qū)。其中,range分區(qū)是oracle最早推出的分區(qū)方式,在決策支持型的海量數(shù)據(jù) oracle數(shù)據(jù)庫(kù)系統(tǒng)(如數(shù)據(jù)挖掘、數(shù)據(jù)倉(cāng)庫(kù)等)中,大量使用著range分區(qū)技術(shù)。range分區(qū)的最顯著特點(diǎn)就是分區(qū)表的分區(qū)鍵是按照時(shí)間順序或者數(shù)值順序作為分區(qū)的標(biāo)準(zhǔn),數(shù)據(jù)按日期時(shí)間軸或者數(shù)值順序遞增。這種類型的數(shù)據(jù)表在數(shù)據(jù)庫(kù)中占用量巨大,對(duì)于oracle 數(shù)據(jù)庫(kù)管理員(DBA)來(lái)說(shuō),維護(hù)Range分區(qū)表的工作量是非常大的。
當(dāng)range分區(qū)技術(shù)應(yīng)用于海量數(shù)據(jù)的相關(guān)領(lǐng)域時(shí),由于分區(qū)表的數(shù)量眾多(少則幾十來(lái)張,多則上百?gòu)?,維護(hù)這些range分區(qū)表的工作量是非常大的,每個(gè)技術(shù)細(xì)節(jié)的的失誤都有可能導(dǎo)致整個(gè)oracle數(shù)據(jù)庫(kù)系統(tǒng)的性能下降,甚至導(dǎo)致某些業(yè)務(wù)嚴(yán)重積壓而無(wú)法正常處理。其中,Range分區(qū)表的維護(hù)內(nèi)容包括單個(gè)range分區(qū)表中分區(qū)數(shù)量的維護(hù),比如分區(qū)的新增和刪除;單個(gè)range分區(qū)表中過期數(shù)據(jù)的清理,比如按照不同的存儲(chǔ)策略來(lái)清理分區(qū),其中存儲(chǔ)策略可根據(jù)分區(qū)表的業(yè)務(wù)特性和數(shù)據(jù)需求來(lái)設(shè)定,比如分區(qū)表按天來(lái)分區(qū)的,可將其存儲(chǔ)策略設(shè)定為保留20天內(nèi)的數(shù)據(jù),比如分區(qū)表按月來(lái)分區(qū)的,可將其存儲(chǔ)策略設(shè)定為保留6個(gè)月以內(nèi)的數(shù)據(jù);單個(gè)range分區(qū)表中實(shí)效索引的重建;單個(gè)range分區(qū)表統(tǒng)計(jì)信息的更新,其中統(tǒng)計(jì)信息主要是描述數(shù)據(jù)庫(kù)中表,索引的大小,規(guī)模,數(shù)據(jù)分布狀況等的一類信息,比如,表的行數(shù),塊數(shù),平均每行的大小,索引的leaf blocks,索引字段的行數(shù),不同值的大小,都屬于統(tǒng)計(jì)信息。
此外在oracle IlG R2還推出了 Interval分區(qū),即range分區(qū)根據(jù)分區(qū)鍵值自動(dòng)添加新的分區(qū),但I(xiàn)nterval分區(qū)技術(shù)只能做到按時(shí)間或范圍自動(dòng)新增range分區(qū)表,不能做到分區(qū)表內(nèi)的數(shù)據(jù)自動(dòng)刪除及索引自動(dòng)維護(hù)、統(tǒng)計(jì)信息的實(shí)時(shí)更新等,這些都還需要 oracle DBA進(jìn)行手動(dòng)維護(hù)。
總之,需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問題就是如何實(shí)現(xiàn)由自動(dòng)維護(hù) oracle數(shù)據(jù)庫(kù)中的range分區(qū)表來(lái)代替oracle DBA手動(dòng)維護(hù)oracle數(shù)據(jù)庫(kù)中的range分區(qū)表,從而達(dá)到range分區(qū)表的自動(dòng)運(yùn)維。
發(fā)明內(nèi)容
為了解決上述問題,本發(fā)明提供了基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)方法和系統(tǒng),可實(shí)現(xiàn)由自動(dòng)維護(hù)oracle數(shù)據(jù)庫(kù)中的range分區(qū)表來(lái)代替oracle DBA手動(dòng)維護(hù)oracle數(shù)據(jù)庫(kù)中的range分區(qū)表,從而有效解決現(xiàn)有技術(shù)中DBA復(fù)雜、枯燥的手動(dòng)維護(hù)且易因誤操作給oracle數(shù)據(jù)庫(kù)帶來(lái)性能隱患的問題。本發(fā)明一方面提供了一種基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)方法,其包括至少一次的維護(hù)過程,所述維護(hù)過程包括
獲取ー個(gè)需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù);
根據(jù)所述需要維護(hù)的range分區(qū)表的元數(shù)據(jù)和當(dāng)前日期,獲得所述當(dāng)前日期所對(duì)應(yīng)分區(qū)的上個(gè)周期的分區(qū)名稱及下個(gè)周期的分區(qū)名稱、表空間值、分區(qū)鍵劃分值;
若上個(gè)周期的分區(qū)存在,則刪除上個(gè)周期的分區(qū);
若下個(gè)周期的分區(qū)不存在,則增加下個(gè)周期的分區(qū);
根據(jù)分區(qū)的刪除和/或增加重新建立range分區(qū)表索引;
更新元數(shù)據(jù),并將更新后的元數(shù)據(jù)進(jìn)行存儲(chǔ);
將增加的下個(gè)周期分區(qū)的統(tǒng)計(jì)信息存儲(chǔ)到所述range分區(qū)表的統(tǒng)計(jì)信息中。其中,獲取ー個(gè)需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù)的步驟,具體為通過當(dāng)前日期和表存儲(chǔ)策略來(lái)獲取需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù)。優(yōu)選的,在進(jìn)行維護(hù)過程之前,還包括創(chuàng)建用于存儲(chǔ)所有range分區(qū)表的元數(shù)據(jù)的元數(shù)據(jù)表。其中,所述兀數(shù)據(jù)包括表基本信息、表分區(qū)信息、表存儲(chǔ)策略和表數(shù)據(jù)報(bào)告日期。具體的,所述表基本信息包括表名、表屬主;所述表分區(qū)信息包括分區(qū)鍵、分區(qū)序號(hào)和當(dāng)前數(shù)據(jù)分區(qū)值;所述表存儲(chǔ)策略包括當(dāng)前表空間大小、存點(diǎn)類型、保留數(shù)值;所述表數(shù)據(jù)報(bào)告日期包括數(shù)據(jù)報(bào)告日志的日期、數(shù)據(jù)更新日期。優(yōu)選的,所述維護(hù)過程可通過調(diào)度工具觸發(fā)或通過任務(wù)定時(shí)器定時(shí)觸發(fā)。本發(fā)明同時(shí)還提出了一種基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)系統(tǒng),包括
分區(qū)表獲取單元,用于獲取ー個(gè)需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù);
分區(qū)信息獲取單元,用于根據(jù)所述需要維護(hù)的range分區(qū)表的元數(shù)據(jù)和當(dāng)前日期,獲得所述當(dāng)前日期所對(duì)應(yīng)分區(qū)的上個(gè)周期的分區(qū)名稱及下個(gè)周期的分區(qū)名稱、表空間值、分區(qū)鍵劃分值;
分區(qū)刪除單元,用于當(dāng)上個(gè)周期的分區(qū)存在時(shí),刪除上個(gè)周期的分區(qū);
分區(qū)增加單元,用于當(dāng)下個(gè)周期的分區(qū)不存在時(shí),増加下個(gè)周期的分區(qū);
索引重建単元,用于根據(jù)分區(qū)的刪除和/或增加重新建立range分區(qū)表索引;
元數(shù)據(jù)更新単元,用于更新元數(shù)據(jù),并將更新后的元數(shù)據(jù)進(jìn)行存儲(chǔ);
統(tǒng)計(jì)信息更新単元,用于將增加的下個(gè)周期分區(qū)的統(tǒng)計(jì)信息存儲(chǔ)到所述range分區(qū)表的統(tǒng)計(jì)信息中。優(yōu)選的,所述系統(tǒng)還包括元數(shù)據(jù)表創(chuàng)建単元,用于創(chuàng)建存儲(chǔ)所有分區(qū)表的元數(shù)據(jù)的元數(shù)據(jù)表。優(yōu)選的,所述兀數(shù)據(jù)包括表基本信息、表分區(qū)信息、表存儲(chǔ)策略和表數(shù)據(jù)報(bào)告日期。具體的,所述表基本信息包括表名、表屬主;所述表分區(qū)信息包括分區(qū)鍵、分區(qū)序號(hào)和當(dāng)前數(shù)據(jù)分區(qū)值;所述表存儲(chǔ)策略包括當(dāng)前表空間大小、存點(diǎn)類型、保留數(shù)值;所述表數(shù)據(jù)報(bào)告日期包括數(shù)據(jù)報(bào)告日志的日期、數(shù)據(jù)更新日期。
其中,分區(qū)表獲取單元,具體為通過當(dāng)前日期和表存儲(chǔ)策略來(lái)獲取需要維護(hù)的 range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù)。
優(yōu)選的,所述系統(tǒng)還包括調(diào)度工具或任務(wù)定時(shí)器,用于觸發(fā)所述維護(hù)系統(tǒng)。
通過本發(fā)明提供的基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)方法和系統(tǒng),可實(shí)現(xiàn)由自動(dòng)維護(hù)oracle數(shù)據(jù)庫(kù)中的range分區(qū)表來(lái)代替oracle DBA手動(dòng)維護(hù)oracle數(shù)據(jù)庫(kù)中的range分區(qū)表,從而有效解決現(xiàn)有技術(shù)中oracle DBA復(fù)雜、枯燥的手動(dòng)維護(hù)且易因誤操作給oracle數(shù)據(jù)庫(kù)帶來(lái)性能隱患的問題。
圖I是本發(fā)明基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)方法實(shí)施例的流程圖;圖2是本發(fā)明基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)系統(tǒng)實(shí)施例的示意圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
參照?qǐng)D1,示出了本發(fā)明一種基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)方法實(shí)施例的流程圖,其包括至少一次的維護(hù)過程,所述維護(hù)過程為一個(gè)oracle的存儲(chǔ)過程, 可通過調(diào)度工具觸發(fā)或通過任務(wù)定時(shí)器定時(shí)觸發(fā)。優(yōu)選的,還可以包括一個(gè)判斷是否適合使用本發(fā)明的維護(hù)方法的步驟,若不適合使用,則采用DBA手工維護(hù)的方式進(jìn)行維護(hù);若適合使用,則采用本發(fā)明提供的維護(hù)過程。
所述維護(hù)過程包括S1,獲取一個(gè)需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù),作為后續(xù)步驟的依據(jù),具體為通過當(dāng)前日期和表存儲(chǔ)策略來(lái)獲取需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù),其中,表存儲(chǔ)策略可如以下方式但不限于如下方式制定,比如,分區(qū)表按天來(lái)分區(qū)的,業(yè)務(wù)需要保留20天內(nèi)的數(shù)據(jù);分區(qū)表按月來(lái)分的,業(yè)務(wù)需要保留6個(gè)月以內(nèi)的數(shù)據(jù)等;S2,根據(jù)所述需要維護(hù)的range分區(qū)表的元數(shù)據(jù)和當(dāng)前日期,獲得所述當(dāng)前日期所對(duì)應(yīng)分區(qū)的上個(gè)周期的分區(qū)名稱及下個(gè)周期的分區(qū)名稱、表空間值、分區(qū)鍵劃分值;S3, 判斷上個(gè)周期的分區(qū)是否存在,若上個(gè)周期的分區(qū)不存在,則無(wú)需任何操作,若上個(gè)周期的分區(qū)存在,則通過sql語(yǔ)句刪除上個(gè)周期的分區(qū),以進(jìn)行分區(qū)內(nèi)數(shù)據(jù)的清理;S4,判斷下個(gè)周期的分區(qū)是否存在,若下個(gè)周期的分區(qū)不存在,則通過sql語(yǔ)句增加下個(gè)周期的分區(qū),若下個(gè)周期的分區(qū)存在,則無(wú)需任何操作;S5,根據(jù)分區(qū)的刪除和/或增加,建立索引維護(hù)sql 腳本,使用for循環(huán)重新建立分區(qū)表索引,以解決分區(qū)表的分區(qū)刪除和/或增加后分區(qū)表索引的變化問題,當(dāng)然,對(duì)于本地分區(qū)表索引除外;S6,更新元數(shù)據(jù),并將更新的元數(shù)據(jù)進(jìn)行存儲(chǔ),例如將每次更新的數(shù)據(jù)報(bào)告日期、數(shù)據(jù)更新時(shí)間、分區(qū)信息等更新到元數(shù)據(jù)表中,以便于下次維護(hù);S7,將增加的下個(gè)周期分區(qū)的統(tǒng)計(jì)信息進(jìn)行收集、統(tǒng)計(jì),并生成相應(yīng)的sql腳本,通過執(zhí)行sql腳本將增加的下個(gè)周期的統(tǒng)計(jì)信息存儲(chǔ)到所述分區(qū)表的統(tǒng)計(jì)信息中,以解決分區(qū)表的統(tǒng)計(jì)信息中沒有新增的下個(gè)周期的統(tǒng)計(jì)信息的問題,從而完成range分區(qū)表維護(hù)。
上述維護(hù)過程可進(jìn)行多次,例如通過for循環(huán)進(jìn)行,直到維護(hù)完成數(shù)據(jù)庫(kù)所有需要維護(hù)的range分區(qū)表。
優(yōu)選的,在進(jìn)行上述維護(hù)過程之前,還包括創(chuàng)建用于存儲(chǔ)所有range分區(qū)表的元數(shù)據(jù)的元數(shù)據(jù)表的步驟,可將數(shù)據(jù)庫(kù)中所有range分區(qū)表的元數(shù)據(jù)通過sql語(yǔ)句初始化到元數(shù)據(jù)表中,以便于對(duì)數(shù)據(jù)庫(kù)中所有range分區(qū)表的元數(shù)據(jù)進(jìn)行統(tǒng)一管理。其中,分區(qū)表信息包括表基本信息、表分區(qū)信息、表存儲(chǔ)策略和表數(shù)據(jù)報(bào)告日期等信息,更詳細(xì)的,所述表基本信息包括表名、表屬主等信息;所述表分區(qū)信息包括分區(qū)鍵、分區(qū)序號(hào)和當(dāng)前數(shù)據(jù)分區(qū)值等信息;所述表存儲(chǔ)策略包括當(dāng)前表空間大小、存點(diǎn)類型、保留數(shù)值等信息;所述表數(shù)據(jù)報(bào)告日期包括數(shù)據(jù)報(bào)告日志的日期、數(shù)據(jù)更新日期等信息。
通過本發(fā)明提供的基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)方法,可實(shí)現(xiàn)由自動(dòng)維護(hù)oracle數(shù)據(jù)庫(kù)中的range分區(qū)表來(lái)代替oracle DBA手動(dòng)護(hù)oracle數(shù)據(jù)庫(kù)中的range分區(qū)表,從而有效解決現(xiàn)有技術(shù)中oracle DBA復(fù)雜、枯燥的手動(dòng)維護(hù)且易因誤操作給oracle數(shù)據(jù)庫(kù)帶來(lái)性能隱患的問題。
同時(shí),還提出一種與上述數(shù)據(jù)庫(kù)分區(qū)表的維護(hù)方法相對(duì)應(yīng)的維護(hù)系統(tǒng),所述系統(tǒng)包括調(diào)度工具或任務(wù)定時(shí)器,用于觸發(fā)所述維護(hù)系統(tǒng)。參看圖2為本發(fā)明基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)系統(tǒng)實(shí)施例的示意圖,包括分區(qū)表獲取單元21,用于獲取需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù),作為后續(xù)步驟的依據(jù),具體為通過當(dāng)前日期和表存儲(chǔ)策略來(lái)獲取需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù),其中,表存儲(chǔ)策略可以如下方式但不限于如下方式制定,比如,若分區(qū)表按天來(lái)分區(qū)的,業(yè)務(wù)需要保留20天內(nèi)的數(shù)據(jù),分區(qū)表按月來(lái)分的,業(yè)務(wù)需要保留6個(gè)月以內(nèi)的數(shù)據(jù)等;分區(qū)信息獲取單元22,用于根據(jù)所述需要維護(hù)的range分區(qū)表的元數(shù)據(jù)和當(dāng)前日期,獲取所述當(dāng)前日期所對(duì)應(yīng)分區(qū)的上個(gè)周期的分區(qū)名稱及下個(gè)周期的分區(qū)名稱、表空間值、分區(qū)鍵劃分值;分區(qū)刪除單元23,用于當(dāng)上個(gè)周期的分區(qū)存在時(shí),通過sql語(yǔ)句刪除上個(gè)周期的分區(qū),以進(jìn)行分區(qū)內(nèi)數(shù)據(jù)的清理,若上個(gè)周期的分區(qū)不存在,則無(wú)需任何操作;分區(qū)增加單元24,用于當(dāng)下個(gè)周期的分區(qū)不存在時(shí),通過sql語(yǔ)句增加下個(gè)周期的分區(qū),若下個(gè)周期的分區(qū)存在,則無(wú)需任何操作; 索引重建單元25,用于根據(jù)分區(qū)的刪除和/或增加重新建立分區(qū)表索引,以解決分區(qū)的刪除和/或增加而導(dǎo)致的分區(qū)表索引變化的問題,根據(jù)分區(qū)的刪除和/或增加,建立索引維護(hù) sql腳本,使用for循環(huán)重新建立分區(qū)表索引,以解決range分區(qū)表的分區(qū)刪除和/或增加后分區(qū)表索引的變化問題,當(dāng)然,對(duì)于本地分區(qū)表索引除外;元數(shù)據(jù)更新單元26,用于更新元數(shù)據(jù),并將更新的元數(shù)據(jù)進(jìn)行存儲(chǔ),例如將每次更新的數(shù)據(jù)報(bào)告日期、數(shù)據(jù)更新時(shí)間、分區(qū)信息等更新到元數(shù)據(jù)表中,以便于下次維護(hù);統(tǒng)計(jì)信息更新單元27,用于將增加的下個(gè)周期分區(qū)的統(tǒng)計(jì)信息進(jìn)行收集、統(tǒng)計(jì),并生成相應(yīng)的sql腳本,通過執(zhí)行sql腳本將增加的下個(gè)周期的統(tǒng)計(jì)信息存儲(chǔ)到所述range分區(qū)表的統(tǒng)計(jì)信息中,以解決range分區(qū)表的統(tǒng)計(jì)信息中沒有新增的下個(gè)周期的統(tǒng)計(jì)信息的問題,從而完成range分區(qū)表維護(hù)。
優(yōu)選的,所述系統(tǒng)還包括元數(shù)據(jù)表創(chuàng)建單元20,用于創(chuàng)建存儲(chǔ)所有range分區(qū)表的元數(shù)據(jù)的元數(shù)據(jù)表,通過元數(shù)據(jù)表來(lái)實(shí)現(xiàn)對(duì)所有元數(shù)據(jù)的統(tǒng)一管理。其中,所述分區(qū)表信息包括表基本信息、表分區(qū)信息、表存儲(chǔ)策略和表數(shù)據(jù)報(bào)告日期等信息,更詳細(xì)的,所述表7基本信息包括表名、表屬主等信息;所述表分區(qū)信息包括分區(qū)鍵、分區(qū)序號(hào)和當(dāng)前數(shù)據(jù)分區(qū)值等信息;所述表存儲(chǔ)策略包括當(dāng)前表空間大小、存點(diǎn)類型、保留數(shù)值等信息;所述表數(shù)據(jù)報(bào)告日期包括數(shù)據(jù)報(bào)告日志的日期、數(shù)據(jù)更新日期等信息。通過本發(fā)明提供的基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)系統(tǒng),可實(shí)現(xiàn)由自動(dòng)維護(hù)oracle數(shù)據(jù)庫(kù)中的range分區(qū)表來(lái)代替oracle DBA手動(dòng)維護(hù)oracle數(shù)據(jù)庫(kù)中的range分區(qū)表,從而有效解決現(xiàn)有技術(shù)中oracle DBA復(fù)雜、枯燥的手動(dòng)維護(hù)且易因誤操作給oracle數(shù)據(jù)庫(kù)帶來(lái)性能隱患的問題。本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。對(duì)于系統(tǒng)實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說(shuō)明即可。以上對(duì)本發(fā)明所提供的ー種數(shù)據(jù)庫(kù)分區(qū)表的維護(hù)方法和系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同吋,對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)方法,其特征在于,包括至少一次的維護(hù)過程,所述維護(hù)過程包括 獲取一個(gè)需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù); 根據(jù)所述需要維護(hù)的range分區(qū)表的元數(shù)據(jù)和當(dāng)前日期,獲得所述當(dāng)前日期所對(duì)應(yīng)分區(qū)的上個(gè)周期的分區(qū)名稱及下個(gè)周期的分區(qū)名稱、表空間值、分區(qū)鍵劃分值; 若上個(gè)周期的分區(qū)存在,則刪除上個(gè)周期的分區(qū); 若下個(gè)周期的分區(qū)不存在,則增加下個(gè)周期的分區(qū); 根據(jù)分區(qū)的刪除和/或增加重新建立range分區(qū)表索引; 更新元數(shù)據(jù),并將更新后的元數(shù)據(jù)進(jìn)行存儲(chǔ); 將增加的下個(gè)周期分區(qū)的統(tǒng)計(jì)信息存儲(chǔ)到所述range分區(qū)表的統(tǒng)計(jì)信息中。
2.如權(quán)利要求I所述的方法,其特征在于,在進(jìn)行維護(hù)過程之前,還包括創(chuàng)建用于存儲(chǔ)所有range分區(qū)表的元數(shù)據(jù)的元數(shù)據(jù)表。
3.如權(quán)利要求I或2所述的方法,其特征在于,所述元數(shù)據(jù)包括表基本信息、表分區(qū)信息、表存儲(chǔ)策略和表數(shù)據(jù)報(bào)告日期。
4.如權(quán)利要求3所述的方法,其特征在于,獲取一個(gè)需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù)的步驟,具體為通過當(dāng)前日期和表存儲(chǔ)策略來(lái)獲取需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù)。
5.如權(quán)利要求I所述的方法,其特征在于,所述維護(hù)過程可通過調(diào)度工具觸發(fā)或通過任務(wù)定時(shí)器定時(shí)觸發(fā)。
6.如權(quán)利要求3所述的方法,其特征在于,所述表基本信息包括表名、表屬主;所述表分區(qū)信息包括分區(qū)鍵、分區(qū)序號(hào)和當(dāng)前數(shù)據(jù)分區(qū)值;所述表存儲(chǔ)策略包括當(dāng)前表空間大小、存點(diǎn)類型、保留數(shù)值;所述表數(shù)據(jù)報(bào)告日期包括數(shù)據(jù)報(bào)告日志的日期、數(shù)據(jù)更新日期。
7.—種基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)系統(tǒng),其特征在于,包括 分區(qū)表獲取單元,用于獲取一個(gè)需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù); 分區(qū)信息獲取單元,用于根據(jù)所述需要維護(hù)的range分區(qū)表的元數(shù)據(jù)和當(dāng)前日期,獲得所述當(dāng)前日期所對(duì)應(yīng)分區(qū)的上個(gè)周期的分區(qū)名稱及下個(gè)周期的分區(qū)名稱、表空間值、分區(qū)鍵劃分值; 分區(qū)刪除單元,用于當(dāng)上個(gè)周期的分區(qū)存在時(shí),刪除上個(gè)周期的分區(qū); 分區(qū)增加單元,用于當(dāng)下個(gè)周期的分區(qū)不存在時(shí),增加下個(gè)周期的分區(qū); 索引重建單元,用于根據(jù)分區(qū)的刪除和/或增加重新建立range分區(qū)表索引; 元數(shù)據(jù)更新單元,用于更新元數(shù)據(jù),并將更新后的元數(shù)據(jù)進(jìn)行存儲(chǔ); 統(tǒng)計(jì)信息更新單元,用于將增加的下個(gè)周期分區(qū)的統(tǒng)計(jì)信息存儲(chǔ)到所述range分區(qū)表的統(tǒng)計(jì)信息中。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括元數(shù)據(jù)表創(chuàng)建單元,用于創(chuàng)建存儲(chǔ)所有分區(qū)表的元數(shù)據(jù)的元數(shù)據(jù)表。
9.如權(quán)利要求7或8所述的系統(tǒng),其特征在于,所述元數(shù)據(jù)包括表基本信息、表分區(qū)信息、表存儲(chǔ)策略和表數(shù)據(jù)報(bào)告日期。
10.如權(quán)利要求7所述的系統(tǒng),其特征在于,分區(qū)表獲取單元,具體為通過當(dāng)前日期和表存儲(chǔ)策略來(lái)獲取需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù)。
11.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括調(diào)度工具或任務(wù)定時(shí)器,用于觸發(fā)所述維護(hù)系統(tǒng)。
12.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述表基本信息包括表名、表屬主;所述表分區(qū)信息包括分區(qū)鍵、分區(qū)序號(hào)和當(dāng)前數(shù)據(jù)分區(qū)值;所述表存儲(chǔ)策略包括當(dāng)前表空間大小、存點(diǎn)類型、保留數(shù)值;所述表數(shù)據(jù)報(bào)告日期包括數(shù)據(jù)報(bào)告日志的日期、數(shù)據(jù)更新日期。
全文摘要
本發(fā)明提供了一種基于oracle數(shù)據(jù)庫(kù)系統(tǒng)的range分區(qū)表的維護(hù)方法和系統(tǒng),其中維護(hù)方法包括至少一次的維護(hù)過程,維護(hù)過程包括獲取一個(gè)需要維護(hù)的range分區(qū)表及其對(duì)應(yīng)的元數(shù)據(jù);根據(jù)需要維護(hù)的range分區(qū)表的元數(shù)據(jù)和當(dāng)前日期,獲得當(dāng)前日期所對(duì)應(yīng)分區(qū)的上個(gè)周期的分區(qū)名稱及下個(gè)周期的分區(qū)名稱、表空間值、分區(qū)鍵劃分值;若上個(gè)周期的分區(qū)存在,刪除上個(gè)周期的分區(qū);若下個(gè)周期的分區(qū)不存在,增加下個(gè)周期的分區(qū);根據(jù)分區(qū)的刪除和/或增加重新建立range分區(qū)表索引;更新元數(shù)據(jù),并將更新的元數(shù)據(jù)進(jìn)行存儲(chǔ);將增加的下個(gè)周期分區(qū)的統(tǒng)計(jì)信息存儲(chǔ)到分區(qū)表統(tǒng)計(jì)信息中;通過本發(fā)明的方法和系統(tǒng),可實(shí)現(xiàn)oracle數(shù)據(jù)庫(kù)的range分區(qū)表由自動(dòng)維護(hù)來(lái)代替oracleDBA的手動(dòng)維護(hù)。
文檔編號(hào)G06F17/30GK102982186SQ20121057361
公開日2013年3月20日 申請(qǐng)日期2012年12月26日 優(yōu)先權(quán)日2012年12月26日
發(fā)明者余有能, 莊進(jìn)發(fā), 吳鴻偉 申請(qǐng)人:廈門市美亞柏科信息股份有限公司