Oracle Managed Files OMF概述

   OMF全称是Oracle Managed Files,即Oracle文件管理。简单的说,OMF能够自动的创建文件和删除文件,能够遵循一个规则自动的为文件命名,从而减少DBA的管理任务。

OMF支持下列文件的自动管理:

1 Tablespaces
2 Redo log files
3 Control files
4 Archived logs
5 Block change tracking files
6 Flashback logs
7 RMAN backups

建议不要在裸设备上使用OMF,因为没有操作系统负责管理裸设备存储空间的分配。

 

OMF的使用

使用OMF前提条件:必须设置3个相关参数。分别如下:

1.1数据文件OMF管理参数:db_create_file_dest

  此参数是用来定义一个缺省的目录。当创建数据文件,临时表空间文件时,如果没有明确指明文件路径和名称,新的文件就会被创建在这个目录下。如果定义了这个参数,而没有定义DB_CREATE_ONLINE_LOG_DEST_n参数,则联机日志和控制文件也会被创建在这个目录下。

  支持文件:Datafiles   Tempfiles    Redo log files     Control files    Block change tracking files

 1 --查看参数db_create_file_dest
 2 SQL> show parameter db_create_file_
 3 
 4 NAME                                 TYPE        VALUE
 5 ------------------------------------ ----------- ------------------------------
 6 db_create_file_dest                  string      +DATA01
 7 SQL> 
 8 
 9 --此参数已被我定义。文件,临时文件等会被自动创建到DATA01磁盘组。
10 --设置参数db_create_file_dest:alter system set db_create_file_dest='+DATA01' scope=spfile;
11 
12 --创建表空间sun_tb
13 SQL> create tablespace sun_tb;  --没有指定参数db_create_file_dest时,语句会报错。
14 
15 Tablespace created.
16 
17 --查看表空间对应的文件
18 SQL> select tablespace_name,file_name,bytes/1024/1024
19   2  from dba_data_files
20   3  where tablespace_name='SUN_TB'; 
21 
22 TABLESPACE_NAME FILE_NAME                                     BYTES/1024/1024
23 --------------- --------------------------------------------- ---------------
24 SUN_TB          +DATA01/sun/datafile/sun_tb.273.814042949                 100  --创建表空间时,数据文件被自动创建,大小默认为100m。文件大小可以自行指定
25 
26 --删除表空间
27 SQL> drop tablespace SUN_TB; --在使用OMF情况下,删除表空间时其包含的数据文件会一并被除(物理删除,相当:rm -f)
28 
29 --alter_xxx.log 日志
30 ......
31 drop tablespace SUN_TB
32 Mon Apr 29 19:14:59 2013
33 Deleted Oracle managed file +DATA01/sun/datafile/sun_tb.273.814042949
34 Completed: drop tablespace SUN_TB
35 
36 --查看+DATA01/sun/datafile/sun_tb.273.814042949文件是否被删除
37 -bash-3.00$ export ORACLE_SID=+ASM
38 -bash-3.00$ asmcmd
39 ASMCMD> ls -l DATA01/sun/datafile/     --文件已经被物理删除
40 Type      Redund  Striped  Time             Sys  Name
41 DATAFILE  MIRROR  COARSE   APR 29 18:00:00  Y    EXAMPLE.263.812809507
42 DATAFILE  MIRROR  COARSE   APR 29 18:00:00  Y    SUN01.260.812809551
43 DATAFILE  MIRROR  COARSE   APR 29 18:00:00  Y    SUN02.258.812809553
44 DATAFILE  MIRROR  COARSE   APR 29 18:00:00  Y    SUN03.257.812809557
45 DATAFILE  MIRROR  COARSE   APR 29 18:00:00  Y    SYSAUX.264.812809463
46 DATAFILE  MIRROR  COARSE   APR 29 18:00:00  Y    SYSTEM.265.812809377
47 DATAFILE  MIRROR  COARSE   APR 29 18:00:00  Y    UNDOTBS1.261.812809543
48 DATAFILE  MIRROR  COARSE   APR 29 18:00:00  Y    USERS.256.812809561
49 DATAFILE  MIRROR  COARSE   APR 29 18:00:00  Y    USERS.259.812809559
50 DATAFILE  MIRROR  COARSE   APR 29 18:00:00  Y    USERS.262.812809557
51 ASMCMD>

总结:使用OMF管理文件的方法

1.使用ALTER SYSTEM SET db_create_file_dest = '<path>'设置路径
2.查看刚刚的设置SHOW PARAMETER db_create_file_dest;
3.创建表空间及数据文件CREATE TABLESPACE tablespace_name;   
4.单独创建表空间CREATE TABLESPACE
<> DATAFILE '<path>' 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 删除方式

 

1.2日志文件的OMF管参数:db_create_online_log_dest_n

  这是一组参数,共有5个,也就是最多可以定义5个缺省目录。如果创建联机日志,控制文件时没有明确定义文件路径和名称,则文件就会在这些目录下创建;如果定义了多个目录,则自动实现了复用(Multiplexed)的功能。如果没有设置这些参数,而是设置了db_create_file_dest,则联机日志,控制文件就会被创建在参数db_create_file_dest指定的目录下

  支持文件:Redo log files    Control files

 1 --查看日志文件的参数
 2 SQL> show parameter db_create_online
 3 
 4 NAME                                 TYPE        VALUE
 5 ------------------------------------ ----------- -----------
 6 db_create_online_log_dest_1          string      +DATA01    --联机日志,控制文件被指定在DATA01磁盘组下,没有使用复用
 7 db_create_online_log_dest_2          string
 8 db_create_online_log_dest_3          string
 9 db_create_online_log_dest_4          string
10 db_create_online_log_dest_5          string
11 
12 --实现复用
13 SQL> alter system set db_create_online_log_dest_2='+DATA02' scope=both; --增加一个联机日志,控制文件存储位置,实现复用
14 
15 System altered.
16 
17 SQL> show parameter db_create_online
18 
19 NAME                                 TYPE        VALUE
20 ------------------------------------ ----------- ------------------------------
21 db_create_online_log_dest_1          string      +DATA01
22 db_create_online_log_dest_2          string      +DATA02
23 db_create_online_log_dest_3          string
24 db_create_online_log_dest_4          string
25 db_create_online_log_dest_5          string
26 SQL> 
27 
28 --查看当前联机日志目录
29 SQL> select group#,member from v$logfile;  --3组,每组一个日志文件
30 
31     GROUP# MEMBER
32 ---------- ---------------------------------------------
33          1 +DATA01/sun/onlinelog/group_1.268.812811035
34          2 +DATA01/sun/onlinelog/group_2.269.812811077
35          3 +DATA01/sun/onlinelog/group_3.270.812811139
36 
37 --增加一组联机日志
38 SQL> ALTER DATABASE ADD logfile;--现在一组是两个日志文件
39 
40 Database altered.
41 
42 SQL> select group#,member from v$logfile;
43 
44     GROUP# MEMBER
45 ---------- ---------------------------------------------
46          4 +DATA01/sun/onlinelog/group_4.273.814050091  
47          4 +DATA02/sun/onlinelog/group_4.257.814050107
48          1 +DATA01/sun/onlinelog/group_1.268.812811035
49          2 +DATA01/sun/onlinelog/group_2.269.812811077
50          3 +DATA01/sun/onlinelog/group_3.270.812811139
51 
52 --删除日志组文件
53 SQL> alter database drop logfile group 4; --DATA01 DATA02中的日志文件都会被物理删除
54 
55 Database altered.
56 
57 --alert_XXX.log日志
58 .............
59 alter database drop logfile group 4
60 Mon Apr 29 21:07:43 2013
61 Deleted Oracle managed file +DATA01/sun/onlinelog/group_4.273.814050091
62 Deleted Oracle managed file +DATA02/sun/onlinelog/group_4.257.814050107

总结:日志文件的OMF管理

1.当定义了db_recovery_file_dest 和db_create_file_dest路径,且没有定义db_create_online_log_dest_n的时候,则OMF将日志文件存放在db_recovery_file_dest和db_create_file_dest路径下,而且日志组下为个成员
2.当定义了db_create_online_log_dest_1则将日志文件存放到db_create_online_log_dest_1和db_create_file_dest路径下,且日志组下为个成员
3.当定义了db_create_online_log_dest_1和db_create_online_log_dest_2则存放到db_create_online_log_dest_1和db_create_online_log_dest_2下
3.当定义了多个db_create_online_log_dest_n,则为每个组n个日志成员,且多路复用
4.增加日志文件的方法;
  alter database add logfile;
  alter database add logfile [group n];
  alter database add logfile member '<dir>' to group [n]
  /*add logfile member这个方法仅使用未使用OMF的日志文件,对于已经运用了OMF的日志组,无法使用该功能添加日志文件*/
5.删除日志文件组时,对于OMF的日志文件组,其对应的物理文件同时被删除
  alter database drop logfile group [n]

 

1.2.1使用OMF管理控制文件

  使用OMF管理控制文件同管理日志文件类似,其默认参数也是:db_create_online_log_dest_n,也可以实现复用。

  但前提条件:去掉control_files参数 alter system reset control_files scope = spfile sid = '*';

 1 --查看control_files
 2 SQL> show parameter control    
 3 
 4 NAME                                 TYPE        VALUE
 5 ------------------------------------ ----------- ------------------------------
 6 control_file_record_keep_time        integer     7
 7 control_files                        string      +DATA01/sun/controlfile/contro
 8                                                  l01, +DATA02/sun/controlfile/c
 9                                                  ontrol02
10 --人为手动对控制文件操作的相对比较少,建议不要使用OMF管理

1.3 恢复文件OMF管理参数:DB_RECOVERY_FILE_DEST

  在使用RMAN进行备份时,如果没有明确指明备份集的格式,则备份文件保存在这个目录下;归档日志文件也是使用这个目录。同参数db_create_file_dest
相同,在没有定义db_create_online_log_dest_n时,则联机日志和控制文件也会在这个目录下创建。

提示:在定义三个参数时,其目录最好区分开,避免混乱

--alter_xxx.log

WARNING: db_create_online_log_dest_2 is same as db_recovery_file_dest

 

posted @ 2013-04-29 22:05  PoleStar  阅读(2852)  评论(0编辑  收藏  举报