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

 

你可能感兴趣的:(oracle)