摘 要:隨著oracle數(shù)據(jù)的市場(chǎng)份額逐年增加,oracle日常維護(hù)與優(yōu)化的課題也成了數(shù)據(jù)庫(kù)研究的重要組成。Oracle數(shù)據(jù)庫(kù)在使用時(shí)有諸多優(yōu)點(diǎn),尤其是靈活性,但是正是由于其靈活性,如果沒(méi)有專(zhuān)業(yè)人士進(jìn)行維護(hù)與優(yōu)化,oracle數(shù)據(jù)庫(kù)表現(xiàn)出來(lái)的穩(wěn)定性并不讓人滿(mǎn)意,甚至有些人認(rèn)為oracle數(shù)據(jù)庫(kù)不如其他數(shù)據(jù)庫(kù),然而專(zhuān)業(yè)的數(shù)據(jù)庫(kù)需要專(zhuān)業(yè)的維護(hù)與優(yōu)化人員,本文著重探討oracle數(shù)據(jù)庫(kù)的日程維護(hù)與優(yōu)化策略,提高oracle數(shù)據(jù)庫(kù)性能與數(shù)據(jù)安全性。
關(guān)鍵詞:oracle數(shù)據(jù)庫(kù);日程維護(hù);優(yōu)化;策略
中圖分類(lèi)號(hào):TP311.138
1 oracle數(shù)據(jù)庫(kù)的日常維護(hù)
Oracle數(shù)據(jù)庫(kù)日常維護(hù)工作是非常重要的,數(shù)據(jù)庫(kù)要認(rèn)真對(duì)待。本文從以下幾個(gè)方面敘述如何對(duì)oracle數(shù)據(jù)庫(kù)進(jìn)行日常維護(hù),維護(hù)策略中一些具體命令不在本文提及,需要DBA去查詢(xún)執(zhí)行。
1.1 檢查與監(jiān)控
(1)及時(shí)檢查數(shù)據(jù)庫(kù)文件狀態(tài)。數(shù)據(jù)庫(kù)文件狀態(tài)需要DBA及時(shí)檢查,保證數(shù)據(jù)庫(kù)文件狀態(tài)正常。如果出現(xiàn)異常,DBA應(yīng)當(dāng)更具實(shí)際情況采取相應(yīng)的措施,比如恢復(fù)出問(wèn)題的數(shù)據(jù)庫(kù)文件或者重建該數(shù)據(jù)庫(kù)文件所在的表空間;(2)檢查數(shù)據(jù)庫(kù)定時(shí)作業(yè)的完成情況。如果一些定時(shí)作業(yè)需要用到oracle的JOB,那么DBA需要對(duì)這些JOB進(jìn)行檢查,并根據(jù)檢查結(jié)果做進(jìn)一步處理;(3)監(jiān)控Oracle警告日志文件。Oracle警告日志文件十分有用,DBA日常要加大對(duì)警告日志文件的監(jiān)控,對(duì)于問(wèn)題的及時(shí)處理具有顯著作用。
1.2 數(shù)據(jù)庫(kù)壞塊的處理
在日常維護(hù)工作中,如果數(shù)據(jù)庫(kù)出現(xiàn)了壞塊,在警告日志文件中DBA能夠查到相關(guān)壞塊的信息,DBA要首先檢查是否出現(xiàn)了硬件故障或者是操作系統(tǒng)故障導(dǎo)致壞塊,如果不是,再對(duì)發(fā)生壞塊的數(shù)據(jù)庫(kù)對(duì)象采取相應(yīng)的處理措施,按照下述操作:(1)確定發(fā)生壞塊的數(shù)據(jù)庫(kù)對(duì)象;(2)根據(jù)具體情況,決定修復(fù)方法;第一,如果壞塊對(duì)象是可以根據(jù)表重建的,那么我們刪掉它重建;第二,如果數(shù)據(jù)庫(kù)備份策略完善,可以使用恢復(fù)數(shù)據(jù)庫(kù)的方式修復(fù);第三,如果某個(gè)表的記錄沒(méi)有其他辦法進(jìn)行修復(fù),壞塊的記錄丟失,我們使用原始方法將其他數(shù)據(jù)塊的記錄讀出來(lái),然后對(duì)表進(jìn)行重建;(3)標(biāo)記壞塊;(4)將表中其它塊上的記錄保存到另一張表上;(5)刪除有壞塊的表;(6)恢復(fù)原來(lái)的表;(7)如果表上存在索引,則要重建表上的索引。
1.3 數(shù)據(jù)庫(kù)備份策略
DBA需要制定完善的備份策略,這對(duì)于數(shù)據(jù)安全具有重要意義,比如數(shù)據(jù)庫(kù)結(jié)構(gòu)的變化引發(fā)控制文件的變化,DBA需要對(duì)控制文件進(jìn)行及時(shí)的備份。
1.4 操作系統(tǒng)相關(guān)維護(hù)
除了數(shù)據(jù)庫(kù)本身的日常維護(hù),還需要對(duì)操作系統(tǒng)進(jìn)行相關(guān)維護(hù),主要包括:(1)維護(hù)文件系統(tǒng),根據(jù)需要清理相關(guān)日志和TRC文件;(2)對(duì)于需要提供網(wǎng)絡(luò)服務(wù)的oracle,需要保證網(wǎng)絡(luò)連接正常;(3)監(jiān)控操作系統(tǒng)的資源使用情況;(4)監(jiān)控相關(guān)硬件,保證出現(xiàn)故障時(shí)及時(shí)修復(fù),例如磁盤(pán)、內(nèi)存報(bào)錯(cuò)。
上述日常維護(hù)策略主要圍繞著數(shù)據(jù)安全問(wèn)題與性能問(wèn)題,在日常維護(hù)中還需要做到硬件環(huán)境的維護(hù),做好數(shù)據(jù)庫(kù)權(quán)限和安全方面的審計(jì)工作。
2 oracle數(shù)據(jù)庫(kù)的優(yōu)化策略
我們要對(duì)oracle數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化首先要有優(yōu)化指標(biāo)與優(yōu)化法則,優(yōu)化指標(biāo)主要是響應(yīng)時(shí)間,也就是性能的優(yōu)化,主要包括硬件的優(yōu)化、操作系統(tǒng)的優(yōu)化、數(shù)據(jù)庫(kù)系統(tǒng)的優(yōu)化等。
2.1 硬件的優(yōu)化
Oracle數(shù)據(jù)離不開(kāi)硬件的支持,因此我們也要對(duì)硬件進(jìn)行優(yōu)化。在應(yīng)用程序展開(kāi)的初期,硬件經(jīng)常需要調(diào)整優(yōu)化,許多性能瓶頸也得到很好的解決,但是隨著數(shù)據(jù)庫(kù)規(guī)模的不斷增長(zhǎng),我們需要把優(yōu)化手段集中到比較經(jīng)濟(jì)的軟優(yōu)化層面上來(lái)。
2.2 操作系統(tǒng)的優(yōu)化
操作系統(tǒng)的優(yōu)化還是要針對(duì)具體的操作系統(tǒng),以u(píng)nix操作系統(tǒng)為例,我們需要優(yōu)化以下方面:(1)共享內(nèi)存(Shared Memory);(2)信號(hào)燈(Semaphores)。
對(duì)于共享內(nèi)存的優(yōu)化,有三個(gè)核心參數(shù)的優(yōu)化對(duì)于oracle數(shù)據(jù)庫(kù)的優(yōu)化意義重大,包括:SHMMAX(單個(gè)共享內(nèi)存段最大值)、SHMSEG(能夠連到單個(gè)進(jìn)程上共享內(nèi)存段的最大值)、SHMALL(共享內(nèi)存段總數(shù)目),本文建議將單個(gè)oracle實(shí)例的SGA分配在一個(gè)共享內(nèi)存段。由于Oracle實(shí)例的內(nèi)存優(yōu)化對(duì)于性能的優(yōu)化有著顯著作用,如果不按最佳的方式為各種結(jié)構(gòu)分配內(nèi)存,性能會(huì)大打折扣,因此合理分配內(nèi)存至關(guān)重要。一般情況下,本文建議自動(dòng)管理PGA內(nèi)存和SGA內(nèi)存,使用Automatic Memory Management機(jī)制。
對(duì)于信號(hào)燈方面的優(yōu)化,本文認(rèn)為當(dāng)關(guān)注下面參數(shù)的優(yōu)化:SSEMMNI(系統(tǒng)里信號(hào)燈集合的最大數(shù)目)、SEMMSL(每個(gè)集合里信號(hào)燈的最大數(shù)目)、SEMMNS(系統(tǒng)范圍內(nèi)可用的信號(hào)燈的最大數(shù)目)。信號(hào)燈數(shù)要比進(jìn)程多,每個(gè)oracle進(jìn)程對(duì)應(yīng)一個(gè)信號(hào)燈,DBA需要根據(jù)實(shí)際情況進(jìn)行具體分析,做到最優(yōu)化取值。
2.3 數(shù)據(jù)庫(kù)系統(tǒng)的優(yōu)化
對(duì)于數(shù)據(jù)系統(tǒng),第一,我們需要合理分配內(nèi)存空間,表空間體系和內(nèi)部空間的參數(shù)設(shè)置要合理,盡量最優(yōu)化。第二,磁盤(pán)空間利用率應(yīng)當(dāng)盡可能提高,數(shù)據(jù)段的碎片應(yīng)當(dāng)減少。第三,減少I(mǎi)/O次數(shù),減少交互次數(shù),減少CPU開(kāi)銷(xiāo)和資源消耗。第四,合理配置環(huán)境參數(shù),使等待次數(shù)減少,鎖存器沖突幾率降低。為達(dá)到這些目的,需要采取創(chuàng)建并使用正確的索引、數(shù)據(jù)分頁(yè)處理以及查詢(xún)時(shí)只需返回需要的字段等具體操作手段。
數(shù)據(jù)庫(kù)系統(tǒng)的優(yōu)化對(duì)于相關(guān)人員的經(jīng)驗(yàn)要求較高,需要在不斷實(shí)踐中摸索優(yōu)化方式,在保障數(shù)據(jù)安全前提下,最大程度地提高oracle數(shù)據(jù)庫(kù)的性能是優(yōu)化的主題。
3 結(jié)束語(yǔ)
本文主要從硬件層面,操作系統(tǒng),數(shù)據(jù)庫(kù)管理系統(tǒng)本身等方面論述了oracle數(shù)據(jù)庫(kù)日常維護(hù)與優(yōu)化策略。維護(hù)好硬件環(huán)境與操作系統(tǒng)環(huán)境,專(zhuān)業(yè)的數(shù)據(jù)庫(kù)需要專(zhuān)業(yè)的人員來(lái)管理以確保oracle數(shù)據(jù)庫(kù)應(yīng)用時(shí)的數(shù)據(jù)安全與高性能,正確而且專(zhuān)業(yè)地對(duì)oracle進(jìn)行日常維護(hù)與優(yōu)化至關(guān)重要。
參考文獻(xiàn):
[1]李聰慧.試論數(shù)據(jù)庫(kù)系統(tǒng)的優(yōu)化舉措[J].信息安全與技術(shù),2012(06).
[2]曾德云.圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)的優(yōu)化設(shè)計(jì)及實(shí)現(xiàn)[J].黑龍江檔案,2011(05).
[3]周渝霞,劉道踐,郝玉清.基于Oracle的OLTP與OLAP數(shù)據(jù)庫(kù)設(shè)計(jì)及實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2012(10).
[4]魏琦,于林林,宋旭東.關(guān)系數(shù)據(jù)庫(kù)查詢(xún)優(yōu)化策略研究[J].電腦知識(shí)與技術(shù),2010(31).
[5]張桂燕.基于數(shù)據(jù)庫(kù)的語(yǔ)句優(yōu)化經(jīng)驗(yàn)之談[J].電腦知識(shí)與技術(shù),2011(17).
[6]杜剛強(qiáng);姜丹.數(shù)據(jù)庫(kù)系統(tǒng)的優(yōu)化[J].硅谷,2011(21).
[7]王玉瑋,王蘭.淺析Oracle數(shù)據(jù)庫(kù)性能優(yōu)化的方法[J].科技創(chuàng)新與應(yīng)用,2012(29).
[8]孫國(guó)社,李艷玲,李永峰.一種基于人工神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)查詢(xún)優(yōu)化方法[J];計(jì)算機(jī)與信息技術(shù),2010(10).
作者簡(jiǎn)介:曹亞寧(1983.02-),女,河北人,本科,中級(jí)職稱(chēng),研究方向:計(jì)算機(jī)數(shù)據(jù)庫(kù)、信息安全;馬立坤(1980.11-),男,河北人,本科,中級(jí)職稱(chēng),研究方向:財(cái)務(wù)信息化。
作者單位:武警天津市總隊(duì)醫(yī)院,天津 300162;武警天津總隊(duì)財(cái)務(wù)處,天津 300162