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

     

  • 相关阅读:
    hdu 2019 数列有序!
    hdu 2023 求平均成绩
    HDU 5805 NanoApe Loves Sequence (思维题) BestCoder Round #86 1002
    51nod 1264 线段相交
    Gym 100801A Alex Origami Squares (求正方形边长)
    HDU 5512 Pagodas (gcd)
    HDU 5510 Bazinga (字符串匹配)
    UVALive 7269 Snake Carpet (构造)
    UVALive 7270 Osu! Master (阅读理解题)
    UVALive 7267 Mysterious Antiques in Sackler Museum (判断长方形)
  • 原文地址:https://www.cnblogs.com/polestar/p/3051251.html
Copyright © 2011-2022 走看看