Oracle OMF 為雞肋

壹頁書發表於2013-12-24
Oracle OMF 為雞肋
 
又聽到有人說Oracle OMF 能減輕DBA 的工作量,Oracle 資料庫伺服器自己建立資料檔案和自動銷燬不再需要的檔案。
 
作為一個真正意義上的DBA 來看,Oracle OMF 無非是一個雞肋產品,對DBA 來說根本就沒有實際意義,更無法減輕DBA 的工作負擔(如果少打幾個字元也算的話),反而在後面維護增加的負擔,更有甚者會對資料庫造成危害。
 
先看Oracle 官方解釋
Oracle managed file (OMF)
A file that is created automatically by the Oracle database server when it is needed and automatically deleted when it is no longer needed.
 
如何判斷你的資料庫是否為支援OMF

SQL> show parameter db_create_file_dest;
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string

如果Value 為空則不支援,有值則支援。
 
如何設定DB 支援?
 
 修改初始化引數檔案
[oracle@itc-test9 dbs]more initOCM.ora
.......
*.user_dump_dest='/disk/oracle/admin/OCM/udump'
 db_create_file_dest = '/disk/oracle/oradata'

 使用 ALTER SYSTEM 命令動態設定

SQL> alter system set db_create_file_dest='/disk/oracle/oradata ;
 
System altered.
 
OMF有些用呢?
我大體總結一個一下就下面幾點:
 
1: 建立Tablespace 是不需要寫資料檔名稱和大小 (default 100M,自動增長,Autoextend 為unlimited)
 
SQL> create tablespace omf;
Tablespace created.
 
Os:

[oracle@itc-test9 datafile]pwd
/disk/oracle/oradata/OCM/datafile
[oracle@itc-test9 datafile]ll
total 102512
-rw-r-----  1 oracle dba 104865792 Apr 29 16:13 o1_mf_omf_4zj30b2p_.dbf
 
  建立資料檔案屬性:
 

Name  /disk/oracle/oradata/OCM/datafile/o1_mf_omf_4zj30b2p_.dbf
Tablespace  OMF
Status  Online
File Size (KB)  102400
AutoExtend  Yes
Increment  100MB
Maximum File Size  32767MB
 
 
2:  向Tablespace 新增檔案是隻適用add datafile 就可以了,引數如1.

SQL> alter tablespace omf add datafile;
 
Tablespace altered.
 
Os
 
[oracle@itc-test9 datafile]ll
total 205024
-rw-r-----  1 oracle dba 104865792 Apr 29 16:13 o1_mf_omf_4zj30b2p_.dbf
-rw-r-----  1 oracle dba 104865792 Apr 29 16:28 o1_mf_omf_4zj3wj0v_.dbf
 
 
3: 可動態修改資料庫建立檔案的位置。

SQL> alter system set db_create_file_dest='/disk/oracle/oradata/OCM' ;
 
System altered.
不做測試了,和前面一樣。
 
4: 刪除Tablespace 時,後面對應的Datafile 在OS一併刪除
 
SQL> drop tablespace omf;
 
Tablespace dropped.

[oracle@itc-test9 datafile]ll
total 0
 
  檔案一併刪除。
 
下面來說明一下我認為Oracle OMF 為雞肋的原因:
 
1: 建立Tablespace 是不需要寫資料檔名稱和大小
   作為一個DBA 在維護DB 時就應該規劃好資料檔案存放的位置,命名規則和初始大小。
o1_mf_omf_4zj30b2p_.dbf 這樣的檔案你能看懂和那個Tablespace有關係嘛,更何況生產環境一般都幾十個tablesapce 以上。找對應關係也會在日常維護過程中浪費很多時間。
2:向Tablespace 新增檔案是隻適用add datafile 就可以了
   觀點如1.
3:動態調整檔案存放位置
  如果你的資料檔案存放位置一直要改的話,還是建議你好好規劃一下。
4:連帶刪除資料檔案
   
SQL> drop tablespace noomf including contents and datafiles;
 
Tablespace dropped.
  使用上面的語句一樣能安全快捷的刪除。
 
 以上幾點我認為Oracle OMF 為雞肋,玩玩可以在生產環境使用就有點兒戲了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1064174/,如需轉載,請註明出處,否則將追究法律責任。

相關文章