DBA必備知識(shí)|Oracle 托管文件 (OMF)詳解
一、 關(guān)于oracle的托管文件
1.1. 什么是OMF文件
Oracle Managed Files可以簡(jiǎn)化Oracle數(shù)據(jù)庫(kù)的管理,Oracle Managed Files 使 DBA 無(wú)需直接管理構(gòu)成 Oracle 數(shù)據(jù)庫(kù)的操作系統(tǒng)文件。使用 Oracle Managed Files,您可以指定文件系統(tǒng)目錄,數(shù)據(jù)庫(kù)在這些目錄中自動(dòng)創(chuàng)建、命名和管理數(shù)據(jù)庫(kù)對(duì)象級(jí)別的文件。比如你只需要指定你要?jiǎng)?chuàng)建一個(gè)表空間;您不需要使用DATAFILE子句指定表空間的數(shù)據(jù)文件的名稱和路徑。此功能可與邏輯卷管理器 (LVM) 配合使用。
數(shù)據(jù)庫(kù)內(nèi)部使用標(biāo)準(zhǔn)文件系統(tǒng)接口根據(jù)需要?jiǎng)?chuàng)建和刪除以下數(shù)據(jù)庫(kù)結(jié)構(gòu)的文件:
- Tablespaces
- Redo log files
- Control files
- Archived logs
- Block change tracking files
- Flashback logs
- RMAN backups
我們可以通過(guò)參數(shù)來(lái)指定用于存放特定類型文件的系統(tǒng)目錄,這樣確保數(shù)據(jù)庫(kù)在不再需要時(shí)創(chuàng)建和刪除唯一的文件,即oracle管理的文件。
友情提示:
OMF不影響管理以下文件的創(chuàng)建或命名,例如跟蹤文件、審計(jì)文件、警報(bào)日志和核心文件。
1.2. 哪種類型的數(shù)據(jù)庫(kù)適合使用 Oracle 托管文件?
Oracle Managed Files 對(duì)于以下類型的數(shù)據(jù)庫(kù)最有用:
受以下支持的數(shù)據(jù)庫(kù):
(1)支持條帶化/RAID 和動(dòng)態(tài)可擴(kuò)展邏輯卷的邏輯卷管理器。
(2)提供大型可擴(kuò)展文件的文件系統(tǒng)。
低端或測(cè)試數(shù)據(jù)庫(kù)。
注意事項(xiàng):
由于 Oracle Managed Files 要求您使用操作系統(tǒng)文件系統(tǒng),因此您無(wú)法控制文件在磁盤(pán)上的布局方式,從而失去了一些 I/O 調(diào)整能力。
1.3. 使用 Oracle Managed Files 的好處
考慮使用 Oracle Managed Files 得以下好處:
它們使數(shù)據(jù)庫(kù)的管理更容易。
無(wú)需發(fā)明文件名和定義特定的存儲(chǔ)要求。一組一致的規(guī)則用于命名所有相關(guān)文件。文件系統(tǒng)定義了存儲(chǔ)和分配存儲(chǔ)池的特性。
它們減少了由管理員指定錯(cuò)誤文件造成的損壞。
每個(gè) Oracle 管理的文件和文件名都是唯一的。在兩個(gè)不同的數(shù)據(jù)庫(kù)中使用相同的文件是一個(gè)常見(jiàn)的錯(cuò)誤,它會(huì)導(dǎo)致非常大的停機(jī)時(shí)間和已提交事務(wù)的丟失。使用引用同一個(gè)文件的兩個(gè)不同名稱是導(dǎo)致嚴(yán)重?fù)p壞的另一個(gè)錯(cuò)誤。
它們減少了過(guò)時(shí)文件消耗的浪費(fèi)的磁盤(pán)空間。
當(dāng)不再需要舊的 Oracle 托管文件時(shí),Oracle 數(shù)據(jù)庫(kù)會(huì)自動(dòng)刪除它們。在大型系統(tǒng)中浪費(fèi)了大量磁盤(pán)空間,僅僅是因?yàn)闆](méi)有人確定是否仍然需要特定文件。這也簡(jiǎn)化了刪除磁盤(pán)上不再需要的文件的管理任務(wù),并防止了刪除錯(cuò)誤文件的錯(cuò)誤。
它們簡(jiǎn)化了測(cè)試和開(kāi)發(fā)數(shù)據(jù)庫(kù)的創(chuàng)建。
您可以最大限度地減少做出有關(guān)文件結(jié)構(gòu)和命名的決定所花費(fèi)的時(shí)間,并且您的文件管理任務(wù)更少。您可以更好地專注于滿足測(cè)試或開(kāi)發(fā)數(shù)據(jù)庫(kù)的實(shí)際需求。
Oracle Managed Files 使便攜式第三方工具的開(kāi)發(fā)變得更加容易。
Oracle Managed Files 無(wú)需在 SQL 腳本中放置操作系統(tǒng)特定的文件名。
1.4. Oracle 托管文件和現(xiàn)有功能是否能共存?
使用 Oracle Managed Files 不會(huì)消除任何現(xiàn)有功能,OFM文件和手動(dòng)管理的oracle文件能夠共存,oracle數(shù)據(jù)庫(kù)可以混合管理他們。
二、 啟用 Oracle 托管文件的創(chuàng)建和使用
2.1. 啟用 Oracle 托管文件的初始化參數(shù)
提示:
- 這些參數(shù)指定的文件系統(tǒng)目錄必須已經(jīng)存在,數(shù)據(jù)庫(kù)不會(huì)創(chuàng)建它們。該目錄還必須具有允許數(shù)據(jù)庫(kù)在其中創(chuàng)建文件的權(quán)限。
- 只要沒(méi)有為創(chuàng)建文件的操作明確指定位置,就會(huì)使用默認(rèn)位置。數(shù)據(jù)庫(kù)創(chuàng)建文件名,這樣創(chuàng)建的文件就是Oracle管理的文件。
- 這兩個(gè)初始化參數(shù)都是動(dòng)態(tài)的,可以使用ALTER SYSTEMorALTER SESSION語(yǔ)句設(shè)置。
2.2. OMF的命令約定
參數(shù)說(shuō)明:
通配符%g、%t和%u具有以下定義:
- %g 重做日志文件組號(hào)。
- %t 表空間名稱,根據(jù)需要截?cái)嘁源_保它適合最大文件名。通過(guò)將表空間名稱放在唯一性字符串之前,您允許給定表空間的所有數(shù)據(jù)文件一起出現(xiàn)在按字母順序排列的文件列表中。
- %u 保證唯一性的八字符字符串。
- ora_ 表示該文件是 Oracle 托管文件。
三、 禁用OMF管理
1. 查詢omf是否啟用
- col name format a25
- col value format a10
- select x.ksppinm name, y.kspftctxvl value, y.kspftctxdf isdefault, decode(bitand(y.kspftctxvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE') ismod,
- decode(bitand(y.kspftctxvf,2),2,'TRUE','FALSE') isadj from sys.x$ksppi x, sys.x$ksppcv2 y where x.inst_id = userenv('Instance')
- and y.inst_id = userenv('Instance') and x.indx+1 = y.kspftctxpn
- and x.ksppinm like '%omf%' ;
- NAME VALUE ISDEFA ISMOD ISADJ
- ------------------------- ---------- ------ ---------- -----
- _omf enabled TRUE FALSE FALSE
注:value值為enabled表示omf功能已經(jīng)啟用
2. 禁用omf
- 在pfile/spfile中添加參數(shù)CONTROL_FILES
- 從參數(shù)文件(pfile/spfile)中移除參數(shù)DB_CREATE_FILE_DEST 和DB_CREATE_ONLINE_LOG_DEST_n
- 重啟數(shù)據(jù)庫(kù)