在没有OMF(托管文件)之前,数据库管理员在创建数据文件的时候,需要关心两个问题。一是该为这个数据文件取一个什么样的名字,二是需要考虑新创建的数据文件会不会与已经存在的数据文件重复。当企业的数据库比较大,有数百个数据文件时,这项工作就会变得非常的困难。为此需要采用一种机制,对数据文件进行自动管理。在Oracle数据库中就提供了OMF托管文件这种机制。
  一、使用过程中的相关配置。
  OMF托管文件机制相当于是一个批处理。当用户在建立数据文件的时候,只要输入一个命令,不需要带名字、存储位置等参数,系统就会自动根据一定的规则来创建数据文件。故在使用这个托管文件功能之前,管理员需要先在数据库中建立好相关的规则。虽然系统有时候也会采用默认的配置,但是笔者不建议这么做。对于一个复杂的数据库系统来说,根据企业的实际情况,预先创建好数据文件的体系,是一个很好的习惯。系统的默认设置往往针对的是中小型的应用,无法满足大型数据库的要求。所以管理员需要根据实际情况来配置相关的规则。具体的来说,主要涉及到以下几个参数。
  一是DB_CREATE_FILE_DEST参数。顾名思义,这个参数主要用来指定数据文件默认的存储位置。设置好这个参数之后,管理员在创建数据文件时就不需要再输入具体的文件位置。这里需要注意的是,这个地址还跟临时文件、重做日志文件、控制文件等等相关。
  二是DB_RECOVERY_FILE_DEST参数。这个参数主要用来定义重做日志、控制文件、RMAN备份文件、归档日志和闪回日志的默认位置。当管理员设置了这个参数之后,系统将会重写其默认设置。
  三是DB_CREATE_ONLINE_LOG_DEST_N参数。这个参数也是用来定义重做日志文件和控制文件的默认位置。这里也许有人会问,如果这个参数与前面的参数定义的位置不同,那该如何处理呢?这里就涉及到一个优先级的问题。通常情况下,如果设置了这个参数,那么前面两个参数的设置就会被覆盖掉。最终系统使用的是这个参数所定义的位置。也许有人会问,这个参数后面为什么会带一个字符N呢?其实这主要是为了建立副本的需要。具体的内容,笔者会在下面的内容中进行详细叙述。
  二、使用OMF来创建数据文件。
  以上相关的规则配置完毕之后,就可以使用OMF托管文件功能来创建数据文件。只需要运行命令ALTER Tablespace ADD DATAFILE命令即可。注意在这个命令中,没有指定所需要创建的数据文件的路径与名字。这些都是系统根据预先定义的规则来自动补充的。在使用这个命令的时候,笔者认为还需要注意以下几点内容。
  一是如何来实现归档日志与控制文件的多个副本?在手工创建归档日志文件和控制文件的时候,我们总会在不同的位置创建多个相同名字的归档日志文件或者控制文件的副本。如此的话,当某个归档日志文件或者控制文件出现问题,还可以通过副本来弥补。通过OMF托管文件来自动创建数据文件时,该如何实现这个功能呢?其实实现的方法也很简单。只需要在设置DB_CREATE_ONLINE_LOG_DEST_N这个参数的时候,多建几个,系统就会自动创建相关文件的副本。这就是最后一个字符N的作用。
  二是如果创建表空间,则数据文件该如何处理?在没有OMF托管文件功能之前,创建表空间与创建数据文件是两个独立的事项。也就是说,创建表空间之后,管理员还需要根据实际情况来来手工创建数据文件。不过在有了OMF托管文件功能之后,这种情况发生了根本性的变化。换句话说,只需要使用命令 Create Tablespace命令,而完全不需要制定涉及的实际数据文件,系统会自动创建相关的数据文件。如果有指定多个镜像位置的话,还会自动创建重做日志文件或者控制文件的副本。
  三、OMF托管文件的局限性以及应对措施。
  虽然OMF文件可以提高创建数据文件的自动化能力,如自动命名、自动判断重名问题等等。但是其在具体的使用过程中,也具有一定的局限性。总的来说,OMF托管文件其主要的优势在于挂你院不用担心会创建已经存在的文件(包括数据文件、重做日志文件、控制文件等等)。而其主要的局限在与,通过OMF托管文件创建的文件,没有容量管理和平衡I/O方面的优点。为此对后续系统的性能等等方面会有一定的影响。在实际工作中,OMF托管文件往往不是单独使用,而是结合Oracle的另一项功能ASM来使用。ASM(自动存储管理)是对OMF托管文件管理功能的一个有效补充。
  四、OMF与ASM结合使用的注意点。
  通常情况下,OMF无法平衡I/O和容量管理的功能。这方面的缺陷可以通过ASM自动存储管理机制来弥补。两者在结合使用的过程中,需要关注如下内容。
  第一裸设备的相关问题。裸设备指的是没有使用文件系统的存储设备。在这种设备上保存数据,其好处是可以提高系统的性能。而其权限就是维护比较困难。这里需要注意的是,ASM自动存储管理其是支持裸设备的,为此就不存在异步I/O或者直接I/O等问题。而对于OMF来说,其大部分情况下还是在文件系统的背景下操作的。所以从应用范围来说,ASM要比OMF功能来的大。在具体配置时,这需要特别注意的。
  第二是跨平台的问题。Oracle数据库是一个跨平台的管理系统,其即可以在微软的操作系统上运行,也可以在Linux等操作系统上部署。但是由于不同操作系统之间,其内核等方面存在着比较大的差异,在实际配制过程中也会遇到很多不同的地方。在使用OMF功能于ASM功能的时候,也会遇到这种问题。这里需要注意的是,ASM是专门构建用于简化DBA工作的管理工具。其提供了跨越所有服务器和存储平台的存储管理界面。也就是说,ASM其可以支持多个操作系统平台。或者说,在不同的平台上,在操作上其基本是相同的。而对于OMF托管文件来说,则没有这么简单。因为OMF过关文件这个功能,更像是在跟操作系统打交道,如指定文件存储位置等等,所以受操作系统的影响比较大。最简单的一个例子,就是Unix等操作系统与Windows等操作系统在文件路径的表示上,就有很大的差异。在具体配置时,需要注意这方面的差异,并选择合适的配置方法。
  第三两者分工不同。在实际工作中,笔者发现很多管理员,特别是第一次接触Oracle数据库的管理人员(如从SQLServer转到 Oracle),他们在这方面会有一个误解。OMF托管文件,其具有自动管理数据文件的功能。但是这个自动管理数据文件,并不是说管理其容量。也就是说,OMF托管文件只涉及到数据文件的存储路径、数据文件的命名等等。而与存储管理无关。更精确的说,只涉及到存储管理的一小部分。存储管理从大的范围来说,包含存储的路径、存储的名字、存储容量、I/O等问题。而OMF托管文件只涉及到存储的路径、存储的名字;OMF则涉及到存储容量、I/O等方面的内容。所以这两个功能之间有明显的差异。两者是分工合作,相互补充。为此在实际工作中,往往这两项功能需要同时实现,才能够发挥最佳的效果。

测试:

1.查询数据库是否支持OMF

SQL> show parameter db_create%

NAME                            TYPE     VALUE

------------------------------------ ----------- ------------------------------

db_create_file_dest             string   /disk/oracle/oradata

db_create_online_log_dest_1      string

db_create_online_log_dest_2      string

db_create_online_log_dest_3      string

db_create_online_log_dest_4      string

db_create_online_log_dest_5      string

Value值不为空就支持OMF

 

2.设置数据库支持OMF

A.修改初始化参数文件

[oracle@itc-test9 dbs]more initOCM.ora
.......

*.user_dump_dest='/disk/oracle/admin/OCM/udump'

db_create_file_dest = '/disk/oracle/oradata'

B.使用 ALTER SYSTEM 命令动态设置

SQL> alter system set db_create_file_dest='/disk/oracle/oradata ;

System altered.

3.创建Tablespace 是不需要写数据文件名称和大小(default 100M,自动增长, Autoextend 为unlimited)

SQL> create tablespace omf;

Tablespace created.

[oracle@db datafile]$ ll

-rw-r----- 1 oracle oinstall 104865792 10-11 23:39 o1_mf_omf_798rr8bc_.dbf

4.向Tablespace 添加文件是只使用adddatafile 就可以了

SQL> alter tablespace omf add datafile;

Tablespace altered.

[oracle@db datafile]$ ll

-rw-r----- 1 oracle oinstall 104865792 10-11 23:39 o1_mf_omf_798rr8bc_.dbf

-rw-r----- 1 oracle oinstall 104865792 10-11 23:39 o1_mf_omf_4zj3wj0v_.dbf

 

5.删除Tablespace 时,后面对应的Datafile 在OS一并删除

SQL> create tablespace omf;

Tablespace created.

 

 

总结:

文件创建之后,Oracle就可以分配和命名这些文件。Oracle OMF使用如下的命名转换惯例。默认的文件大小为100M,并按如下格式命名:

where
%u is a unique 8 digit code
%g is the log file group number
%t is the tablespace name

Controlfilesora_%u.ctl
Redo Log Files ora_%g_%u.log
Datafiles ora_%t_%u.dbf
Temporary Datafilesora_%t_%u.tmp

Oracle9i OMF工具还有一个新的警告日志消息(alert log message),它用来告诉我们OMF数据文件何时发生了改动。下面是关于警告日志的一个例子。

Fri Mar 23 01:44:462001
CREATE TABLESPACE omf1 DATAFILE SIZE 10M AUTOEXTEND OFF
Fri Mar 23 01:44:47 2001
Created Oracle managed file /databases/ed25/OMF1/ora_omf1_xcp6rg84.dbf
Completed: CREATE TABLESPACE omf1 DATAFILE SIZE 10M AUTOEXTE
Fri Mar 23 01:45:45 2001
drop tablespace omf1
Fri Mar 23 01:45:45 2001
Deleted Oracle managed file /databases/ed25/OMF1/ora_omf_xcp6rg84.dbf
Completed: drop tablespace omf1

OMF(Oracle Managed Files)详解及测试相关推荐

  1. Oracle OMF(Oracle Managed Files ) 说明

    一.官网说明 Using Oracle Managed Files http://docs.oracle.com/cd/E11882_01/server.112/e25494/omf.htm#ADMI ...

  2. oracle asm omf,Oracle Managed Files,OMF

    OMF相关参数: DB_CREATE_FILE_DEST Defines the location of the default file system directory or Oracle ASM ...

  3. OMF(Oracle Managed Files,Oracle管理的文件)介绍

    Oracle Managed Files是一个文件命名策略,让你可以按照数据库对象而不是文件名来指定操作.Oracle 管理的文件简化了Oracle数据库的管理,减少错误和降低浪费的磁盘空间. 使用O ...

  4. Oracle cursor_sharing 参数 详解

    一. 官网的说明 http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams042.htm#REFRN10025 ...

  5. Oracle建立全文索引详解

    Oracle建立全文索引详解 1.全文检索和普通检索的区别 不使用Oracle text功能,当然也有很多方法可以在Oracle数据库中搜索文本,比如INSTR函数和LIKE操作: SELECT *F ...

  6. oracle语句中dual什么意思,oracle中dual详解

    oracle中dual详解 基本上oracle引入dual为的就是符合语法 1. 我们先从名称来说,dual不是缩写词,本身就是完整的单词.dual名词意思是对数,做形容词时是指二重的,二元的. 2. ...

  7. oracle -- Oracle初始化参数详解

    oracle -- Oracle初始化参数详解 Oracle数据库系统根据初始化参数文件init.ora中设置的参数来配置自身的启动,每个实例在启动之前,首先读取这些参数文件中设置的不同参数. Ora ...

  8. Linux系统安装oracle客户端步骤详解

    Linux系统安装oracle客户端步骤详解 项目需要在linux系统上安装oracle客户端访问windows下安装的数据库,所以写了这篇文章,在安装时候搜索了很多博客,但是我发现大部分都是有问题的 ...

  9. oracle11 share pool,Oracle Shared pool 详解

    . Shared Pool概述 在之前的blog对的内存也做了一个概述,参考: Oracle内存架构详解 在网上搜到一篇介绍shared pool非常详细的pdf资料. 原文链接以找不到,但还是要感谢 ...

最新文章

  1. ie6 css :hover 和 select遮挡问题、和z-index失效问题
  2. iphone11返回上一级手势怎么设置_苹果iphone12怎么关闭程序appp 怎么返回上一步
  3. python scatter 简书_【挖掘模型】:Python-DBSCAN算法 - 简书
  4. STM32F0使用LL库实现MS5536C通讯
  5. 数据在内存中的存储(二进制形式存储)
  6. WPS Office 2019 For Linux 8722 发布,引入pdf组件
  7. PySide 简易教程二-------工欲善其事,必先利其器
  8. 文件描述符(0、1、2)的用法
  9. 第四次作业——04树
  10. 文字处理技术:表格与形状的布局差异
  11. (转)用Wineskin 让Windows 的程序在Mac 上运行
  12. Selenium无法定位元素的九种解决方案
  13. 在龙芯3A3000上安装Debian 10
  14. 关于Quartus+Modelsim 门级仿真 Warning (vopt-2216) Cannot find instance 'NA' specified in sdf.的解决办法...
  15. Dev-C++5.11游戏创作之躺平发育
  16. 他看了几千份技术简历,愿意把技术简历的秘籍传授给你
  17. 用户画像中怎么给用户打标签
  18. Python中next()函数、iter()以及next(iter())函数的用法详解
  19. Eclipse——全局搜索
  20. 更改服务器网站默认端口,更改服务器默认端口号

热门文章

  1. MSCRM2011 Current User has Role 【判定当前用户角色方法】
  2. Vue项目中使用svg文件
  3. Shell - 文件运算符
  4. hdu 4717 The Moving Points(三分+计算几何)
  5. M2第五天DailyScrum——PM(李忠)
  6. poj 1011 Sticks 搜索
  7. 安卓笔记之配置第一个程序
  8. Vimium插件让键盘党像操作Vim一样操作Chrome
  9. dbus-glib-0.108 arm交叉编译
  10. bcb异常处理显示错误行号_SpringBoot系列(七)- springboot 错误异常处理统一办法