基于Oracle11g的集裝箱碼頭TOS系統(tǒng)
摘要:隨著集裝箱碼頭業(yè)務(wù)量的增長(zhǎng),在碼頭TOS(Tape Operating System)數(shù)據(jù)庫應(yīng)用中,經(jīng)常會(huì)有一些幾十GB,上百GB的數(shù)據(jù)表。年吞吐量越大的碼頭,TOS系統(tǒng)的數(shù)據(jù)增長(zhǎng)量越大。這些大數(shù)據(jù)量表的設(shè)計(jì),維護(hù)及其備份都是TOS系統(tǒng)數(shù)據(jù)庫管理中的重點(diǎn)及其難點(diǎn)。本文就從設(shè)計(jì)、維護(hù)及其備份方面探討一下大數(shù)據(jù)量表的管理,并利用Oracle11g的最新特性,為碼頭用戶提供更加智能、高效的大數(shù)據(jù)清理及轉(zhuǎn)儲(chǔ)解決方案。
關(guān)鍵詞:TOS;數(shù)據(jù)倉庫;數(shù)據(jù)清理;數(shù)據(jù)轉(zhuǎn)儲(chǔ)
一、引言
隨著集裝箱碼頭生產(chǎn)系統(tǒng)生產(chǎn)數(shù)據(jù)的增長(zhǎng),系統(tǒng)的運(yùn)行速度會(huì)隨之下降。數(shù)據(jù)量的增長(zhǎng),會(huì)降低數(shù)據(jù)庫檢索及插入新數(shù)據(jù)的效率。對(duì)于數(shù)據(jù)清理及轉(zhuǎn)儲(chǔ)的傳統(tǒng)方式,首先我們需要先把歷史數(shù)據(jù)先備份下來,然后在刪除對(duì)應(yīng)的數(shù)據(jù)庫表記錄。為了保證數(shù)據(jù)的一致性,我們?cè)谧鰯?shù)據(jù)清理前還需要將數(shù)據(jù)庫的表空間進(jìn)行鎖定;同時(shí)還要將需要清理及轉(zhuǎn)儲(chǔ)的表對(duì)應(yīng)的觸發(fā)器禁止掉。集裝箱碼頭是24小時(shí)運(yùn)營(yíng)的。停產(chǎn)將導(dǎo)致給碼頭帶來一定的經(jīng)濟(jì)損失。那么如何保證在不中斷用戶業(yè)務(wù)的前提下,能夠?qū)④浖到y(tǒng)的歷史數(shù)據(jù)進(jìn)行清理并保證數(shù)據(jù)可恢復(fù)呢?用戶對(duì)數(shù)據(jù)清理及轉(zhuǎn)儲(chǔ)的需求是什么?基于Oracle11g的轉(zhuǎn)儲(chǔ)原理,能給用戶帶來什么樣的好處?本文將圍繞這些問題進(jìn)行討論,并介紹采用這種方式后,數(shù)據(jù)轉(zhuǎn)儲(chǔ)的整個(gè)過程。
二、數(shù)據(jù)轉(zhuǎn)儲(chǔ)原理及方式
Oracle8i以后推出了分區(qū)選項(xiàng)。分區(qū)將表分離在若干不同的表空間上,用分而治之的方法來支撐元先膨脹的大表,組大表在物理一級(jí)的可管理性.將大表分割成較小的分區(qū)可以改善表的維護(hù)、備份、恢復(fù)、事務(wù)及查詢性能。采用表分區(qū)將數(shù)據(jù)按時(shí)間隔離。然后根據(jù)時(shí)間段,對(duì)歷史數(shù)據(jù)進(jìn)行清理。當(dāng)表中的數(shù)據(jù)量不斷增大,查詢數(shù)據(jù)的速度就會(huì)變慢,應(yīng)用程序的性能就會(huì)下降,這時(shí)就該考慮對(duì)表進(jìn)行分區(qū)。對(duì)表進(jìn)行分區(qū)之后,在邏輯上表仍然是一張完整的表,只是將表中的數(shù)據(jù)在物理上存放到多個(gè)表空間上,這樣查詢數(shù)據(jù)時(shí),不至于每次都掃描整張表。因此,我們只需要按表記錄時(shí)間做分區(qū)。清理及轉(zhuǎn)儲(chǔ)時(shí),只需要將不需要的歷史數(shù)據(jù)按年進(jìn)行drop即可。執(zhí)行的時(shí)間快,而且不需要對(duì)表空間進(jìn)行鎖定和禁止表觸發(fā)器。用戶完全體驗(yàn)不到數(shù)據(jù)庫有任何變化。用戶也無需中斷當(dāng)前生產(chǎn)作業(yè)。
我們?cè)跀?shù)據(jù)清理和轉(zhuǎn)儲(chǔ)前可以有選擇的對(duì)將被清理的數(shù)據(jù)進(jìn)行數(shù)據(jù)備份。本文建議可以采用以下2種方式:(1)將數(shù)據(jù)備份到磁帶機(jī)上或?qū)?yīng)的其它存儲(chǔ)設(shè)備上。在需要的時(shí)候,導(dǎo)入到臨時(shí)數(shù)據(jù)庫。(2)將需要轉(zhuǎn)儲(chǔ)數(shù)據(jù)遷移到數(shù)據(jù)倉庫。用戶可對(duì)數(shù)據(jù)倉庫的數(shù)據(jù)查詢、數(shù)據(jù)的挖掘、處理。(3)可以自動(dòng)化、智能化的對(duì)數(shù)據(jù)進(jìn)行清理及轉(zhuǎn)儲(chǔ)。對(duì)于非關(guān)鍵數(shù)據(jù)和關(guān)鍵數(shù)據(jù),可以分別根據(jù)月份、年份清理相關(guān)的數(shù)據(jù)。
三、數(shù)據(jù)分區(qū)
3.1分區(qū)的依據(jù)
單表輸入容量超過2GB的情況下應(yīng)該進(jìn)行分區(qū);對(duì)包含歷史數(shù)據(jù)輸入的表應(yīng)該進(jìn)行分區(qū),所謂包含歷史數(shù)據(jù)是指新的數(shù)據(jù)將會(huì)被放到最新的分區(qū)里面。一個(gè)典型的例子是一個(gè)表只有當(dāng)前月份的數(shù)據(jù)可以更新,但是其余月份的處于只讀狀態(tài)。
3.2分區(qū)的好處
增強(qiáng)可用性:如果表的一個(gè)分區(qū)由于系統(tǒng)故障而不能使用,表的其余分區(qū)可以使用;減少關(guān)閉時(shí)間:如果系統(tǒng)故障只影響表的一部份分區(qū),那么只有這部份分區(qū)需要修復(fù),可能比整個(gè)大表修復(fù)花的時(shí)間更少;維護(hù)輕松:如果需要得建表,獨(dú)產(chǎn)管理每個(gè)公區(qū)比管理單個(gè)大表要輕松得多;均衡I/O:可以把表的不同分區(qū)分配到不同的磁盤來平衡I/O改善性能;改善性能:對(duì)大表的查詢、增加、修改等操作可以分解到表的不同分區(qū)來并行執(zhí)行,可使運(yùn)行速度更快,在數(shù)據(jù)倉庫的TP查詢特別有用;分區(qū)對(duì)用戶透明:最終用戶感覺不到分區(qū)的存在。
3.3分區(qū)的方法
分區(qū)類型 |
分區(qū)依據(jù) |
應(yīng)用范圍 |
范圍分區(qū) |
使用數(shù)據(jù)表中某列或某幾列的值域作為分區(qū)條件。根據(jù)某個(gè)值的范圍,決定將該數(shù)據(jù)存儲(chǔ)在哪個(gè)分區(qū)上。 |
有明顯值域劃分的應(yīng)用。由于每個(gè)分區(qū)值域范圍的限定,每個(gè)分區(qū)的數(shù)據(jù)命中率可能不盡相同。 |
列表分區(qū) |
使用表中某列或某幾列的值作為分區(qū)條件。每個(gè)分區(qū)的值等于一個(gè)或多個(gè)特定的離散值。 |
適用于無明顯排序規(guī)律,但可根據(jù)某離散值進(jìn)行分組的應(yīng)用 |
Hash分區(qū) |
將存儲(chǔ)的數(shù)據(jù)對(duì)某列或某幾列進(jìn)行條帶化分割,按照哈希算法將數(shù)據(jù)打散,使其均勻地分布在若干個(gè)存儲(chǔ)分區(qū)中,優(yōu)化存儲(chǔ)。 |
用在既無明顯排序規(guī)律,又無離散值分組規(guī)律,但又希望使用分區(qū)技術(shù)特性的應(yīng)用。 |
復(fù)合分區(qū) |
用兩個(gè)數(shù)據(jù)分布辦法來創(chuàng)建分區(qū),首先通過第一個(gè)數(shù)據(jù)分布辦法進(jìn)行初始化分區(qū),然后每個(gè)分區(qū)再通過第二個(gè)辦法分成子分區(qū)
|
典型的復(fù)合分區(qū)包括:范圍-哈希,范圍-列表,范圍-范圍,列表-范圍,列表-列表,列表-哈希
|
四、TOS歷史數(shù)據(jù)的清理及轉(zhuǎn)儲(chǔ)過程
TOS歷史數(shù)據(jù)的清理及轉(zhuǎn)儲(chǔ)過程分為四步:(1)選擇需要轉(zhuǎn)儲(chǔ)的數(shù)據(jù)。可以按年或按月進(jìn)行清理。非關(guān)鍵數(shù)據(jù)建議按月進(jìn)行清理,關(guān)鍵生產(chǎn)數(shù)據(jù)建議按年進(jìn)行清理。比如:當(dāng)前是2014年1月份。用戶希望碼頭生產(chǎn)系統(tǒng)只保留12個(gè)月的數(shù)據(jù)。因此,我們可以把時(shí)間小于2013年01月之前的數(shù)據(jù)清除掉。(2)導(dǎo)出轉(zhuǎn)儲(chǔ)數(shù)據(jù)在刪除前,使用oracle自帶的expdp和exp工具導(dǎo)出對(duì)應(yīng)的數(shù)據(jù)。如果出現(xiàn)誤操作或用戶希望對(duì)清理后的數(shù)據(jù)查詢時(shí),對(duì)數(shù)據(jù)進(jìn)行恢復(fù)。(3)數(shù)據(jù)清理(4)數(shù)據(jù)恢復(fù),用戶如果希望對(duì)轉(zhuǎn)儲(chǔ)后的數(shù)據(jù)進(jìn)行查詢,可以利用oracle數(shù)據(jù)庫自帶的工具Impdp和Imp,在服務(wù)端或客戶端兩種方式將備份出來的數(shù)據(jù)導(dǎo)入指定數(shù)據(jù)庫進(jìn)行數(shù)據(jù)恢復(fù)。
參考文獻(xiàn)
[1]Jujay.一個(gè)利用傳輸表空間和分區(qū)交換技術(shù)進(jìn)行數(shù)據(jù)遷移的案例.ATAGURE.2012,(12)
[2]Luocs.Oracle分區(qū)擴(kuò)展-3分區(qū)表的索引維護(hù).LuocusTechnologyBlog.2013,(1)
[3]KarenReliford.OracleDatabase11gNewFeaturesforTablePartitioning.DatabaseJournal.2010,(1)
欄目分類
- 再論AI對(duì)人的異化
- 人工智能時(shí)代算法傳播的倫理失范問題及其治理對(duì)策研究
- 鋼鐵行業(yè)成本預(yù)算系統(tǒng)開發(fā)應(yīng)用實(shí)踐
- 基于區(qū)塊鏈的零信任網(wǎng)絡(luò)安全架構(gòu)
- 新時(shí)期CDN帶寬預(yù)測(cè)及運(yùn)營(yíng)部署方案研究
- 電動(dòng)汽車充電站智能監(jiān)控系統(tǒng)的質(zhì)量控制標(biāo)準(zhǔn)和實(shí)施策略
- 裝載機(jī)怠速提升動(dòng)臂抖動(dòng)故障的分析與解決措施
- 測(cè)量技術(shù)與測(cè)繪技術(shù)在公路橋梁工程中的應(yīng)用分析
- 基于物聯(lián)網(wǎng)的建筑電氣設(shè)備安全智能監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
- 5G ToB行業(yè)專網(wǎng)規(guī)劃設(shè)計(jì)方法研究
- 官方認(rèn)定!CSSCI南大核心首批191家“青年學(xué)者友好期刊名單”
- 2023JCR影響因子正式公布!
- 國(guó)內(nèi)核心期刊分級(jí)情況概覽及說明!本篇適用人群:需要發(fā)南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的學(xué)者
- 我用了一個(gè)很復(fù)雜的圖,幫你們解釋下“23版最新北大核心目錄有效期問題”。
- 重磅!CSSCI來源期刊(2023-2024版)最新期刊目錄看點(diǎn)分析!全網(wǎng)首發(fā)!
- CSSCI官方早就公布了最新南核目錄,有心的人已經(jīng)拿到并且投入使用!附南核目錄新增期刊!
- 北大核心期刊目錄換屆,我們應(yīng)該熟知的10個(gè)知識(shí)點(diǎn)。
- 注意,最新期刊論文格式標(biāo)準(zhǔn)已發(fā)布,論文寫作規(guī)則發(fā)生重大變化!文字版GB/T 7713.2—2022 學(xué)術(shù)論文編寫規(guī)則
- 盤點(diǎn)那些評(píng)職稱超管用的資源,1,3和5已經(jīng)“絕種”了
- 職稱話題| 為什么黨校更認(rèn)可省市級(jí)黨報(bào)?是否有什么說據(jù)?還有哪些機(jī)構(gòu)認(rèn)可黨報(bào)?