一、OMF的概述
Oracle managed files,也叫OMF,翻译成中文即是Oracle文件管理,使用OMF简化dba的管理工作,我们在创建oracle物理文件时候不用指定文件的名字、大小、路径,oracle 会为其自动分配。但是这项技术虽然为dba提供了便利,但同时也有一些不好的方面。下面我们就看下OMF的作用吧
二、开启OMF特性
Oracle中通过db_create_file_dest,决定是否开启OMF特性,若是改参数为空则是不开启(默认为空),若是该参数有值则是开启。该参数的值是指定开启OMF特性,并将创建的文件放到该路径下。
SQL> show parameter db_create_file_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string
SQL> alter system set db_create_file_dest='/u01/app/oracle/oradata/TOMATO' scope=both;
System altered.
SQL> show parameter db_create_file_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string /u01/app/oracle/oradata/TOMATO
三、使用OMF特性
创建表空间,不指定数据文件路径,名字等。
SQL> create tablespace lala;
Tablespace created.
在之前设置的目录下,自动产生了下面这个数据文件
[oracle@LINFAN datafile]$ ls
o1_mf_lala_dc7v3r8f_.dbf
-rw-r----- 1 oracle oinstall 20979712 Feb 27 16:48 mgmt_ecm_depot1.db
[oracle@LINFAN datafile]$ pwd
/u01/app/oracle/oradata/TOMATO/TOMATO/datafile
注意:它不是直接在之前的目录下就产生了数据文件,而是在该目录下先建立一个以实例名为名的目录,再在这个目录下建立datafile目录,数据文件就产生在datafile目录
通过dbms_metadata查看该表空间的建立语句
SQL> select dbms_metadata.get_ddl('TABLESPACE','LALA')from dual;
DBMS_METADATA.GET_DDL('TABLESPACE','LALA')
--------------------------------------------------------------------------------
CREATE TABLESPACE "LALA" DATAFILE
SIZE 104857600
AUTOEXTEND ON NEXT 1
可见该OMF自动为该表空间建立初始大小为100M的数据文件,且自动扩展。
也可以直接为表空间添加数据文件
SQL> alter tablespace lala add datafile;
Tablespace altered.
删除表空间的时候,会直接删除数据文件,如:
SQL> drop tablespace lala;
Tablespace dropped.
[oracle@LINFAN datafile]$ ls
该目录下是空的,说明数据文件已经被删除了。
该特性不仅对数据文件有效,也对其他文件有效,比如日志文件
建立日志文件组4,且不用指定文件路径等。。
SQL> alter database add logfile group 4;
Database altered.
四、OMF的弊端
既然OMF这么便利,那么为什么还是有很多公司没有使用该特性呢?原因如下
1.生成的文件名是自动分配的, 表空间名字与数据文件名字很难快速建立起对应关系
2.生成的文件大小,是否自动增长都由Oracle都固定,无法每时每刻都达到自己的需求。
以及还有一些其他的原因。
所以你的数据库到底启不启用该特性,就需要你自己考虑一下利弊咯!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31386161/viewspace-2134384/,如需转载,请注明出处,否则将追究法律责任。