zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    C语言基本语法——函数
    C语言基本语法——数组
    iOS面试总结(待完善)
    iOS开发——蓝牙开发
    iOS开发——性能分析
    ios开发——runtime
    Extjs6的常见问题及解决办法
    会员信息布局,自动放缩
    LINQ关于NULL的怪现象
    [代码整洁]自我感悟
  • 原文地址:https://www.cnblogs.com/polestar/p/3051251.html
Copyright © 2011-2022 走看看