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.
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
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 为鸡肋,玩玩可以在生产环境使用就有点儿戏了。