oracle 10g以后,在目录结构和文件管理方面推出两个特性ofa和omf。ofa(oracle flexiable architecture)是进行目录结构约束规范
oracle 10g以后,在目录结构和文件管理方面推出两个特性ofa和omf。ofa(oracle flexiable architecture)是进行目录结构约束规范的特性。诊断文件diag、日志、数据文件等目录结构分布都是由ofa进行固定下来。omf(oracle managed file)是针对文件结构,将原来用户负责文件命名和位置转变为oracle负责管理。
omf涉及的项目主要是数据文件和日志文件。我们在进行文件管理的过程中,比如添加、删除操作,是不需要关注文件名称位置细节的。简单的说,omf解决了三个问题:
ü 文件存放位置。omf和ofa是联动的。从oracle角度看,符合最佳实践的文件部署结构是成功数据库安装配置的要点。进入asm之后,oracle自身就有很强烈的“管理欲望”。借助omf,默认配置路径就可以满足大部分需要;
ü 文件命名和创建。传统文件管理中,我们需要显式的进行文件名称指定(包含路径)。借助omf,我们从这个工作中解放出来,只需要指定文件大小(甚至不指定),创建操作就可以实现;
ü 文件自动删除。我们传统数据文件创建之后,直接删除表空间drop tablespace xxx,,是不能将数据文件删除的,除非我们使用including子句。借助omf,drop tablespace就可以将数据文件自动删除;
在omf中,两个参数起到决定作用,为db_create_file_dest和db_create_online_log_dest_n。这两个参数在控制omf行为中起到决定性作用。下面我们通过一系列的参数实验,验证两个参数如何影响数据库行为。
oracle omf 功能详解
oracle表空间创建删除,omf,分区表创建
1、环境介绍
我们依然选择oracle 11gr2进行试验,具体版本为11.2.0.4。
sql> select * from v$version;
banner
----------------------------------------------------
oracle database 11g enterprise edition release 11.2.0.4.0 - production
pl/sql release 11.2.0.4.0 - production
core 11.2.0.4.0 production
tns for linux: version 11.2.0.4.0 - production
nlsrtl version 11.2.0.4.0 - production
默认系统参数情况如下:
sql> show parameter db_create;
name type value
------------------------------------ ----------- ------------------------------
db_create_file_dest string /u01/app/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
从官方解释看,db_create_file_dest是负责通用文件目录结构,包括数据文件和日志文件。db_create_online_log_dest_n是负责在线日志目录结构,n是online redo log单个组成员数目。n的取值和创建数据库时候的maxlogfile确定的数目。
当前数据文件和日志情况如下:
sql> select file_name, file_id, tablespace_name from dba_data_files;
file_name file_id tablespace_name
------------------------------------------------------------- ---------- ------------------------------
/u01/app/oradata/ora11g/datafile/o1_mf_users_9mnjs074_.dbf 4 users
/u01/app/oradata/ora11g/datafile/o1_mf_undotbs1_9mnjs068_.dbf 3 undotbs1
/u01/app/oradata/ora11g/datafile/o1_mf_sysaux_9mnjs04h_.dbf 2 sysaux
/u01/app/oradata/ora11g/datafile/o1_mf_system_9mnjrzty_.dbf 1 system
/u01/app/oradata/ora11g/datafile/o1_mf_system_9ppkjccb_.dbf 5 system
sql> select group#, member from v$logfile;
group# member
---------- --------------------------------------------------------------------
3 /u01/app/oradata/ora11g/onlinelog/o1_mf_3_9mnjx4n0_.log
3 /u01/app/fast_recovery_area/ora11g/onlinelog/o1_mf_3_9mnjx54c_.log
2 /u01/app/oradata/ora11g/onlinelog/o1_mf_2_9mnjwzpq_.log
2 /u01/app/fast_recovery_area/ora11g/onlinelog/o1_mf_2_9mnjx15f_.log
1 /u01/app/oradata/ora11g/onlinelog/o1_mf_1_9mnjwtj9_.log
1 /u01/app/fast_recovery_area/ora11g/onlinelog/o1_mf_1_9mnjwvdm_.log
6 rows selected
当前omf配置情况下,/u01/app/oradata为顶层文件结构。数据文件采用了omf自动命名机制。online redo log三组,每组两个成员,一个在/u01/app/oradata目录中的ofa架构体系下,另一个是在recovery area中。
注意:参数db_create_file_dest是file_dest,而不是datafile_dest。这个参数是一个统筹性的参数,位于omf参数体系上层。如果log没有指定另外目录。db_create_file_dest是负责数据文件和日志文件的。从实际情况看也的确如此。
更多详情见请继续阅读下一页的精彩内容:
