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