Oracle OMF特性试验

本文详细介绍了Oracle从9i版本开始提供的OMF(Oracle Manage File)特性,该特性实现了文件系统命名自动化,简化了数据文件和在线日志文件的管理。文中通过对比传统方式与OMF方式创建表空间的过程,展示了OMF如何减轻数据库管理员的工作负担。

Oracle 9i开始,Oracle提供了OMFOracleManage File)特性,实现了文件系统命名自动化。目前的Oracle版本中,已经可以支持对数据文件(DataFile)和在线日志文件(Online LogFile)的OMF处理。

1、OMF特性与相关参数

传统的方式下,我们建立数据文件或者日志文件要明确的确定出建立文件的名称和路径。而使用OMF特性的时候,是不需要明确指定出文件名称路径,Oracle会通过预先设定参数建立符合规范的文件名称。

DataFileOnline RedoLog而言,Oracle提供了参数进行目录指定。

SQL> select * fromv$version where rownum<2;

BANNER

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

Oracle Database11gEnterpriseEditionRelease11.2.0.1.0 - Production

SQL> show parametercreate

NAME                                               TYPE                VALUE

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

create_bitmap_area_size                     integer               8388608

create_stored_outlines                         string

db_create_file_dest                             string              /u01/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

其中,标注红色的内容为使用OMF所涉及到的参数。db_create_file_dest指定的就是在创建数据文件时,如果语句命令不指定数据文件的位置,就在db_create_file_dest总目录下进行创建。同样,db_create_online_log_destn就表示当创建一个日志文件时,同时在多个位置进行的多重备份OnlineRedo Log File通常是成组出现,每个日志组中包括很多相同的Redo Log File)。

下面的实验中,我们通过数据文件的OMF创建,来掩饰其特性。

2、传统表空间Tablespace创建与相关选项参数

首先,我们查看一下传统方式建立Tablespace和数据文件的方法和参数。

SQL>createtablespace tradway datafile '/u01/oradata/WILSON/datafile/trad.dbf'size100m     autoextendoff extent management local uniform.size1m   segment space management manual;

Tablespace created

SQL> selecttablespace_name, extent_management, allocation_type,SEGMENT_SPACE_MANAGEMENT from dba_tablespaces;

TABLESPACE_NAME      EXTENT_MANAGEMENT    ALLOCATION_TYPE      SEGMENT_SPACE_MANAGEMENT

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

(篇幅原因,有省略

TRADWAY                                             LOCAL                       UNIFORM                            MANUAL

9 rows selected

在传统方式下,我们需要明确指定数据文件的位置和命名。

SQL> col file_namefor a60;

SQL> selectfile_name,tablespace_name,bytes/1024/1024,AUTOEXTENSIBLE,INCREMENT_BY from dba_data_files;

FILE_NAME                             TABLESPACE_NAME   BYTES/1024/1024   AUTOEXTENSIBLE      INCREMENT_BY

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

(篇幅原因,有省略……

/u01/oradata/WILSON/datafile/trad.dbf   TRADWAY                100                                     NO                                0

7 rows selected

传统方式下,如果我们直接进行表空间的删除,对应的数据文件是不会自动随之删除的。

SQL> drop tablespacetradway;

Tablespace dropped

//表空间被删除,但是数据文件依然存在

[oracle@oracle11gdatafile]$pwd

/u01/oradata/WILSON/datafile

[oracle@oracle11gdatafile]$ ls -l |grep trad

-rw-r----- 1 oracle oinstall104865792 Jun 5 07:59 trad.dbf

[oracle@oracle11gdatafile]$

当然,也可以使用命令droptablespace xxx including contents anddatafiles;来实现直接删除。

此处,我们需要注意一下与数据文件相关的参数。在Oracle中,数据文件相关常见参数选项包括下面几个:

ü 数据文件大小size:表示创建文件时刻的初始大小;

ü 自动拓展功能autoextend开关:该数据文件在使用尽预设值空间之后,是否允许进行自动拓展;

ü 拓展体积参数increasment by:如果数据文件是允许进行自动拓展(autoextendon),那么每次拓展的空间大小是多大。如果数据文件增加频繁,建议设置略大的拓展体积参数,避免操作系统OS进行过于频繁的拓展操作;

ü 最大文件体积maxsize:生产环境下,所有的文件和磁盘空间都是受控制的,不会允许无限制的增长。max size就是设置数据文件增长的上限;

3OMF效用实现

首先,我们检查一下默认下,OMF使用情况。

SQL>createtablespace defaulttbs;

Tablespace created

SQL> selecttablespace_name, extent_management,allocation_type,SEGMENT_SPACE_MANAGEMENT fromdba_tablespaces;

TABLESPACE_NAME    EXTENT_MANAGEMENT    ALLOCATION_TYPE    SEGMENT_SPACE_MANAGEMENT

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

(篇幅原因,有省略

DEFAULTTBS                                       LOCAL                           SYSTEM                           AUTO

9 rows selected

没有指定数据文件的位置和名称,检查自动生成的效果。

SQL> selectfile_name,tablespace_name,bytes/1024/1024,AUTOEXTENSIBLE,INCREMENT_BY from dba_data_files;

FILE_NAME          TABLESPACE_NAME            BYTES/1024/1024            AUTOEXTENSIBLE        INCREMENT_BY

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

(篇幅原因,有省略

/u01/oradata/WILSON/datafile/o1_mf_defaultt_6yoksxvd_.dbf           DEFAULTTBS        100         YES           12800

7 rows selected

可见,在不指定数据文件相关参数的情况下,OracleOMF数据文件命名是采用系统内部命名方式。创建的数据文件大小为100M,支持自动文件拓展,每次增加大小为10m

说明:在数据字典中的increment_by列列出的12800为每次拓展时候分配的数据块数量。计算公式:10*1024*1024/(8*1024)=1280,也就是10m数据库空间在每个数据块8k大小的数据库中,对应1280个块。

此时,如果我们删除表空间,Oracle会连带负责的将文件删除。

//删除表空间

SQL> drop tablespacedefaulttbs;

Tablespace dropped

[oracle@oracle11gdatafile]$ls

o1_mf_example_6bcsrj44_.dbfo1_mf_temp_6bcsr6d8_.tmp perfstatdata.dbf

o1_mf_sysaux_6bcsnqjb_.dbfo1_mf_undotbs1_6bcsnqjt_.dbf perfstattemp.dbf

o1_mf_system_6bcsnqfc_.dbfo1_mf_users_6bcsnql5_.dbf

如果我们在创建文件时指定参数,方式是如何呢?

--设置参数实验

SQL> createtablespace customfdatafile size150mautoextend offextent managementlocal uniform. size1msegment space management manual;

Tablespace created

SQL> selectfile_name,tablespace_name,bytes/1024/1024,AUTOEXTENSIBLE,INCREMENT_BY from dba_data_files;

FILE_NAME          TABLESPACE_NAME          BYTES/1024/1024           AUTOEXTENSIBLE       INCREMENT_BY

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

(篇幅原因,有省略

/u01/oradata/WILSON/datafile/o1_mf_customf_6yol3wr2_.dbf          CUSTOMF         150          NO             0

7 rows selected

我们通过datafile字句不带路径名称的参数size等,实现了自定义OMF数据文件。

4、结论

从网络中的一些反映看,OMF在生产环境下使用的情况还是有限的。

OMF的核心就是将文件存储透明化。实现DBA和数据库配置人员不需要关注文件具体名称和位置,通过OracleOMFOFA体系实现规范化。但是目前的很多数据库系统部署,特别是生产部署,是需要将文件级别列入到部署规范中的。所以,从目前的OMF来看,实际应用还是相对较窄。

不过伴随着ASM、裸设备等存储技术的发展和透明化,OMF的发展应用还是值得关注的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值