Oracle數(shù)據(jù)庫使用OMF來簡化數(shù)據(jù)文件的管理
OMF托管文件是Oracle數(shù)據(jù)庫提供的一種對數(shù)據(jù)文件進行自動管理的機制。當企業(yè)的數(shù)據(jù)庫比較大,有數(shù)百個數(shù)據(jù)文件時,對數(shù)據(jù)庫文件的管理就會變得非常的困難。但是采用OMF文件托管機制就可以很方便地解決這一問題,本文主要就OMF使用過程中的相關(guān)配置以及OMF與ASM結(jié)合使用的問題進行了詳細地論述。
一、使用過程中的相關(guān)配置。
OMF托管文件機制相當于是一個批處理。當用戶在建立數(shù)據(jù)文件的時候,只要輸入一個命令,不需要帶名字、存儲位置等參數(shù),系統(tǒng)就會自動根據(jù)一定的規(guī)則來創(chuàng)建數(shù)據(jù)文件。故在使用這個托管文件功能之前,管理員需要先在數(shù)據(jù)庫中建立好相關(guān)的規(guī)則。雖然系統(tǒng)有時候也會采用默認的配置,但是筆者不建議這么做。對于一個復雜的數(shù)據(jù)庫系統(tǒng)來說,根據(jù)企業(yè)的實際情況,預先創(chuàng)建好數(shù)據(jù)文件的體系,是一個很好的習慣。系統(tǒng)的默認設(shè)置往往針對的是中小型的應用,無法滿足大型數(shù)據(jù)庫的要求。所以管理員需要根據(jù)實際情況來配置相關(guān)的規(guī)則。具體的來說,主要涉及到以下幾個參數(shù)。
一是DB_CREATE_FILE_DEST參數(shù)。顧名思義,這個參數(shù)主要用來指定數(shù)據(jù)文件默認的存儲位置。設(shè)置好這個參數(shù)之后,管理員在創(chuàng)建數(shù)據(jù)文件時就不需要再輸入具體的文件位置。這里需要注意的是,這個地址還跟臨時文件、重做日志文件、控制文件等等相關(guān)。
二是DB_RECOVERY_FILE_DEST參數(shù)。這個參數(shù)主要用來定義重做日志、控制文件、RMAN備份文件、歸檔日志和閃回日志的默認位置。當管理員設(shè)置了這個參數(shù)之后,系統(tǒng)將會重寫其默認設(shè)置。
三是DB_CREATE_ONLINE_LOG_DEST_N參數(shù)。這個參數(shù)也是用來定義重做日志文件和控制文件的默認位置。這里也許有人會問,如果這個參數(shù)與前面的參數(shù)定義的位置不同,那該如何處理呢?這里就涉及到一個優(yōu)先級的問題。通常情況下,如果設(shè)置了這個參數(shù),那么前面兩個參數(shù)的設(shè)置就會被覆蓋掉。最終系統(tǒng)使用的是這個參數(shù)所定義的位置。也許有人會問,這個參數(shù)后面為什么會帶一個字符N呢?其實這主要是為了建立副本的需要。具體的內(nèi)容,筆者會在下面的內(nèi)容中進行詳細敘述。
二、使用OMF來創(chuàng)建數(shù)據(jù)文件。
以上相關(guān)的規(guī)則配置完畢之后,就可以使用OMF托管文件功能來創(chuàng)建數(shù)據(jù)文件。只需要運行命令ALTER Tablespace ADD DATAFILE命令即可。注意在這個命令中,沒有指定所需要創(chuàng)建的數(shù)據(jù)文件的路徑與名字。這些都是系統(tǒng)根據(jù)預先定義的規(guī)則來自動補充的。在使用這個命令的時候,筆者認為還需要注意以下幾點內(nèi)容。
一是如何來實現(xiàn)歸檔日志與控制文件的多個副本?在手工創(chuàng)建歸檔日志文件和控制文件的時候,我們總會在不同的位置創(chuàng)建多個相同名字的歸檔日志文件或者控制文件的副本。如此的話,當某個歸檔日志文件或者控制文件出現(xiàn)問題,還可以通過副本來彌補。通過OMF托管文件來自動創(chuàng)建數(shù)據(jù)文件時,該如何實現(xiàn)這個功能呢?其實實現(xiàn)的方法也很簡單。只需要在設(shè)置DB_CREATE_ONLINE_LOG_DEST_N這個參數(shù)的時候,多建幾個,系統(tǒng)就會自動創(chuàng)建相關(guān)文件的副本。這就是***一個字符N的作用。
二是如果創(chuàng)建表空間,則數(shù)據(jù)文件該如何處理?在沒有OMF托管文件功能之前,創(chuàng)建表空間與創(chuàng)建數(shù)據(jù)文件是兩個獨立的事項。也就是說,創(chuàng)建表空間之后,管理員還需要根據(jù)實際情況來來手工創(chuàng)建數(shù)據(jù)文件。不過在有了OMF托管文件功能之后,這種情況發(fā)生了根本性的變化。換句話說,只需要使用命令 Create Tablespace命令,而完全不需要制定涉及的實際數(shù)據(jù)文件,系統(tǒng)會自動創(chuàng)建相關(guān)的數(shù)據(jù)文件。如果有指定多個鏡像位置的話,還會自動創(chuàng)建重做日志文件或者控制文件的副本。
#p#
三、OMF托管文件的局限性以及應對措施。
雖然OMF文件可以提高創(chuàng)建數(shù)據(jù)文件的自動化能力,如自動命名、自動判斷重名問題等等。但是其在具體的使用過程中,也具有一定的局限性。總的來說,OMF托管文件其主要的優(yōu)勢在于你不用擔心會創(chuàng)建已經(jīng)存在的文件(包括數(shù)據(jù)文件、重做日志文件、控制文件等等)。而其主要的局限在與,通過OMF 托管文件創(chuàng)建的文件,沒有容量管理和平衡I/O方面的優(yōu)點。為此對后續(xù)系統(tǒng)的性能等等方面會有一定的影響。在實際工作中,OMF托管文件往往不是單獨使用,而是結(jié)合Oracle的另一項功能ASM來使用。ASM(自動存儲管理)是對OMF托管文件管理功能的一個有效補充。
四、OMF與ASM結(jié)合使用的注意點。
通常情況下,OMF無法平衡I/O和容量管理的功能。這方面的缺陷可以通過ASM自動存儲管理機制來彌補。兩者在結(jié)合使用的過程中,需要關(guān)注如下內(nèi)容。
***是裸設(shè)備的相關(guān)問題。裸設(shè)備指的是沒有使用文件系統(tǒng)的存儲設(shè)備。在這種設(shè)備上保存數(shù)據(jù),其好處是可以提高系統(tǒng)的性能。而其權(quán)限就是維護比較困難。這里需要注意的是,ASM自動存儲管理其是支持裸設(shè)備的,為此就不存在異步I/O或者直接I/O等問題。而對于OMF來說,其大部分情況下還是在文件系統(tǒng)的背景下操作的。所以從應用范圍來說,ASM要比OMF功能來的大。在具體配置時,這需要特別注意的。
第二是跨平臺的問題。Oracle數(shù)據(jù)庫是一個跨平臺的管理系統(tǒng),其即可以在微軟的操作系統(tǒng)上運行,也可以在Linux等操作系統(tǒng)上部署。但是由于不同操作系統(tǒng)之間,其內(nèi)核等方面存在著比較大的差異,在實際配制過程中也會遇到很多不同的地方。在使用OMF功能與ASM功能的時候,也會遇到這種問題。這里需要注意的是,ASM是專門構(gòu)建用于簡化DBA工作的管理工具。其提供了跨越所有服務器和存儲平臺的存儲管理界面。
也就是說,ASM其可以支持多個操作系統(tǒng)平臺。或者說,在不同的平臺上,在操作上其基本是相同的。而對于OMF托管文件來說,則沒有這么簡單。因為OMF過關(guān)文件這個功能,更像是在跟操作系統(tǒng)打交道,如指定文件存儲位置等等,所以受操作系統(tǒng)的影響比較大。最簡單的一個例子,就是Unix等操作系統(tǒng)與Windows等操作系統(tǒng)在文件路徑的表示上,就有很大的差異。在具體配置時,需要注意這方面的差異,并選擇合適的配置方法。
第三兩者分工不同。在實際工作中,筆者發(fā)現(xiàn)很多管理員,特別是***次接觸Oracle數(shù)據(jù)庫的管理人員(如從SQLServer轉(zhuǎn)到 Oracle),他們在這方面會有一個誤解。OMF托管文件,其具有自動管理數(shù)據(jù)文件的功能。但是這個自動管理數(shù)據(jù)文件,并不是說管理其容量。也就是說,OMF托管文件只涉及到數(shù)據(jù)文件的存儲路徑、數(shù)據(jù)文件的命名等等。而與存儲管理無關(guān)。更精確的說,只涉及到存儲管理的一小部分。
存儲管理從大的范圍來說,包含存儲的路徑、存儲的名字、存儲容量、I/O等問題。而OMF托管文件只涉及到存儲的路徑、存儲的名字;ASM則涉及到存儲容量、I/O等方面的內(nèi)容。所以這兩個功能之間有明顯的差異。兩者是分工合作,相互補充。為此在實際工作中,往往這兩項功能需要同時實現(xiàn),才能夠發(fā)揮***的效果,以使我們的數(shù)據(jù)庫管理員對數(shù)據(jù)庫文件全面、高效的管理。
【編輯推薦】