您好,欢迎访问一九零五行业门户网

Oracle OMF 功能详解

omf,全称是oracle_managed files,即oracle文件管理,使用omf可以简化管理员的管理工作,不用指定文件的名字、大
omf,全称是oracle_managed files,即oracle文件管理,使用omf可以简化管理员的管理工作,不用指定文件的名字、大小、路径,其名字,大小,路径由oracle 自动分配。在删除不再使用的日志、数据、控制文件时,omf也可以自动删除其对应的os文件。
omf支持下列文件的自动管理:
    表空间
    日志文件(联机)
    控制文件
前提条件:需要为这些类型文件设定相关参数。
一.数据文件的omf管理
  数据文件管理参数:db_create_file_dest
  db_create_file_dest:oracle创建数据文件、临时文件时,在未明确指定路径的情况下的缺省路径,当db_create_online_log_dest_n未指定时,
                      也作为联机日志文件和控制文件的缺省路径。
假定需要创建表空间s及数据文件
sql> create tablespace s;  /*收到了错误信息*/
      create tablespace s
                      *
      error at line 1:
      ora-02199: missing datafile/tempfile clause
sql> show parameter db_create_file  /*查看db_create_file_dest参数*/
name                                type        value
      ------------------------------------ ----------- ------------------------------
      db_create_file_dest                  string
--设定db_create_file_dest参数
    sql> alter system set db_create_file_dest = '/u01/app/oracle/oradata/orcl';
system altered.
--设定参数后,创建成功
    sql> create tablespace s;
tablespace created.
sql> select name from v$datafile;  /*可以看到orcl/datafile/o1_mf_s_5vrl1t7h_.dbf是oralce自动创建的数据文件*/
name
      --------------------------------------------------------------------------------
      /u01/app/oracle/oradata/orcl/system01.dbf
      /u01/app/oracle/oradata/orcl/undotbs01.dbf
      /u01/app/oracle/oradata/orcl/sysaux01.dbf
      /u01/app/oracle/oradata/orcl/users01.dbf
      /u01/app/oracle/oradata/orcl/example01.dbf
      /u01/app/oracle/oradata/orcl/test.dbf
      /u01/app/oracle/oradata/orcl/orcl/datafile/o1_mf_s_5vrl1t7h_.dbf
/*查看物理文件,,缺省为mb*/
    sql> ho ls -lh /u01/app/oracle/oradata/orcl/orcl/datafile/o1_mf_s_5vrl1t7h_.dbf 
      -rw------- 1 oracle oinstall 101m apr  7 16:54 /u01/app/oracle/oradata/orcl/orcl/datafile/o1_mf_s_5vrl1t7h_.dbf
sql> create tablespace t datafile size 10m;  /*也可指定数据文件的大小为mb*/
tablespace created.
sql> select name from v$datafile;
name
      --------------------------------------------------------------------------------
      /u01/app/oracle/oradata/orcl/system01.dbf
      /u01/app/oracle/oradata/orcl/undotbs01.dbf
      /u01/app/oracle/oradata/orcl/sysaux01.dbf
      /u01/app/oracle/oradata/orcl/users01.dbf
      /u01/app/oracle/oradata/orcl/example01.dbf
      /u01/app/oracle/oradata/orcl/test.dbf
      /u01/app/oracle/oradata/orcl/orcl/datafile/o1_mf_s_5vrl1t7h_.dbf
      /u01/app/oracle/oradata/orcl/orcl/datafile/o1_mf_t_5vrlgqtl_.dbf
sql> ho ls -lh /u01/app/oracle/oradata/orcl/orcl/datafile/o1_mf_t_5vrlgqtl_.dbf
      -rw------- 1 oracle oinstall 11m apr  7 17:01 /u01/app/oracle/oradata/orcl/orcl/datafile/o1_mf_t_5vrlgqtl_.dbf
--删除表空间时,对于使用了omf生成的数据文件将随着表空间的删除一起被删除
    sql> drop tablespace t;
tablespace dropped.
--查看物理文件,已经不存在
    sql> ho ls -lh /u01/app/oracle/oradata/orcl/orcl/datafile/o1_mf_t_5vrlgqtl_.dbf 
      ls: /u01/app/oracle/oradata/orcl/orcl/datafile/o1_mf_t_5vrlgqtl_.dbf: no such file or directory
--对于未采用omf来创建的表空间,在删除表空间之后,其数据文件并没有删除,v$datafile视图中被删除
    --下面是未使用omf创建的x表空间及数据文件
    sql> create tablespace x datafile '/u01/app/oracle/oradata/orcl/x.dbf' size 10m;
tablespace created.
sql> select name from v$datafile;
name
      --------------------------------------------------------------------------------
      /u01/app/oracle/oradata/orcl/system01.dbf
      /u01/app/oracle/oradata/orcl/undotbs01.dbf
      /u01/app/oracle/oradata/orcl/sysaux01.dbf
      /u01/app/oracle/oradata/orcl/users01.dbf
      /u01/app/oracle/oradata/orcl/example01.dbf
      /u01/app/oracle/oradata/orcl/test.dbf
      /u01/app/oracle/oradata/orcl/orcl/datafile/o1_mf_s_5vrl1t7h_.dbf
      /u01/app/oracle/oradata/orcl/x.dbf
sql> drop tablespace x;
tablespace dropped.
sql> select name from v$datafile; /*视图中已不存在x.dbf的数据文件*/
name
      --------------------------------------------------------------------------------
      /u01/app/oracle/oradata/orcl/system01.dbf
      /u01/app/oracle/oradata/orcl/undotbs01.dbf
      /u01/app/oracle/oradata/orcl/sysaux01.dbf
      /u01/app/oracle/oradata/orcl/users01.dbf
      /u01/app/oracle/oradata/orcl/example01.dbf
      /u01/app/oracle/oradata/orcl/test.dbf
      /u01/app/oracle/oradata/orcl/orcl/datafile/o1_mf_s_5vrl1t7h_.dbf
sql> ho ls /u01/app/oracle/oradata/orcl/x.dbf  /*操作系统中依然存在*/
      /u01/app/oracle/oradata/orcl/x.dbf
--注意:使用omf的时候会将物理文件删除,应特别注意使用
    --使用下面的方法重建x表空间,然后使用including contents and datafiles 彻底删除表空间及物理文件
    sql> create tablespace x datafile '/u01/app/oracle/oradata/orcl/x.dbf' reuse;
tablespace created.
sql> drop tablespace x including contents and datafiles;
tablespace dropped.
sql> ho ls /u01/app/oracle/oradata/orcl/x.dbf
      ls: /u01/app/oracle/oradata/orcl/x.dbf: no such file or directory
总结:使用omf管理文件的方法
  1.使用alter system set db_create_file_dest = ''设置路径
  2.查看刚刚的设置show parameter db_create_file_dest;
  3.创建表空间及数据文件create tablespace tablespace_name
  4.单独创建表空间create tablespace datafile '' size ;
  5.也可以创建undo和temporary tablespace 。create undo tablespace tablespace_name ;create temporary tablespace tablespace_name;
  6.删除表空间drop tablespace tablespace_name ;omf情况下则删除物理文件,等效于未使用omf创建,使用including contents and datafiles 删除方式
更多详情见请继续阅读下一页的精彩内容:
相关阅读:
oracle表空间创建删除,omf,分区表创建
其它类似信息

推荐信息