Oralce OMF 功能详解

2023-10-10 22:18
文章标签 详解 功能 oralce omf

本文主要是介绍Oralce OMF 功能详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    OMF,全称是Oracle_Managed Files,Oracle文件管理,使用OMF可以简化管理员的管理工作,不用指定文件的名字、大小、路径,其名字,大小,

路径由oracle 自动分配。在删除不再使用的日志、数据、控制文件时,OMF也可以自动删除其对应的OS文件。

 

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

    表空间

    日志文件(联机)

    控制文件

前提条件:需要为这些类型文件设定相关参数。

 

.数据文件的OMF管理

  数据文件管理参数:db_create_file_dest

  db_create_file_destOracle创建数据文件、临时文件时,在未明确指定路径的情况下的缺省路径,当db_create_online_log_dest_n未指定时,

                       也作为联机日志文件和控制文件的缺省路径。

 

  假定需要创建表空间s及数据文件

 

    SQL> CREATE TABLESPACE s;  /*收到了错误信息*/

       create tablespace s

                       *

       ERROR at line 1:

       ORA-02199: missing DATAFILE/TEMPFILE clause

 

    SQL> show parameter db_create_file   /*查看db_create_file_dest参数*/

 

       NAME                                 TYPE        VALUE

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

       db_create_file_dest                  string

 

    --设定db_create_file_dest参数

    SQL> ALTER SYSTEM SET db_create_file_dest = '/u01/app/oracle/oradata/orcl';

 

       System altered.

 

    --设定参数后,创建成功

    SQL> CREATE TABLESPACE s; 

 

       Tablespace created.

 

    SQL> SELECT NAME FROM v$datafile;  /*可以看到ORCL/datafile/o1_mf_s_5vrl1t7h_.dbfOralce自动创建的数据文件*/

 

       NAME

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

       /u01/app/oracle/oradata/orcl/system01.dbf

       /u01/app/oracle/oradata/orcl/undotbs01.dbf

       /u01/app/oracle/oradata/orcl/sysaux01.dbf

       /u01/app/oracle/oradata/orcl/users01.dbf

       /u01/app/oracle/oradata/orcl/example01.dbf

       /u01/app/oracle/oradata/orcl/Test.dbf

       /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_s_5vrl1t7h_.dbf

 

    /*查看物理文件,缺省为MB*/

    SQL> ho ls -lh /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_s_5vrl1t7h_.dbf 

       -rw------- 1 oracle oinstall 101M Apr  7 16:54 /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_s_5vrl1t7h_.dbf

 

    SQL> CREATE TABLESPACE t DATAFILE SIZE 10m;  /*也可指定数据文件的大小为MB*/

 

       Tablespace created.

 

    SQL> SELECT NAME FROM v$datafile;

 

       NAME

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

       /u01/app/oracle/oradata/orcl/system01.dbf

       /u01/app/oracle/oradata/orcl/undotbs01.dbf

       /u01/app/oracle/oradata/orcl/sysaux01.dbf

       /u01/app/oracle/oradata/orcl/users01.dbf

       /u01/app/oracle/oradata/orcl/example01.dbf

       /u01/app/oracle/oradata/orcl/Test.dbf

       /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_s_5vrl1t7h_.dbf

       /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_t_5vrlgqtl_.dbf

 

    SQL> ho ls -lh /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_t_5vrlgqtl_.dbf

       -rw------- 1 oracle oinstall 11M Apr  7 17:01 /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_t_5vrlgqtl_.dbf

 

    --删除表空间时,对于使用了OMF生成的数据文件将随着表空间的删除一起被删除

    SQL> DROP TABLESPACE t;

 

    Tablespace dropped.

 

    --查看物理文件,已经不存在

    SQL> ho ls -lh /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_t_5vrlgqtl_.dbf 

       ls: /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_t_5vrlgqtl_.dbf: No such file or directory

 

    --对于未采用OMF来创建的表空间,在删除表空间之后,其数据文件并没有删除,v$datafile视图中被删除

    --下面是未使用OMF创建的x表空间及数据文件

    SQL> CREATE TABLESPACE x DATAFILE '/u01/app/oracle/oradata/orcl/x.dbf' SIZE 10m;

 

       Tablespace created.

 

    SQL> SELECT NAME FROM v$datafile;     

 

       NAME

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

       /u01/app/oracle/oradata/orcl/system01.dbf

       /u01/app/oracle/oradata/orcl/undotbs01.dbf

       /u01/app/oracle/oradata/orcl/sysaux01.dbf

       /u01/app/oracle/oradata/orcl/users01.dbf

       /u01/app/oracle/oradata/orcl/example01.dbf

       /u01/app/oracle/oradata/orcl/Test.dbf

       /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_s_5vrl1t7h_.dbf

       /u01/app/oracle/oradata/orcl/x.dbf

 

    SQL> DROP TABLESPACE x;

 

       Tablespace dropped.

 

    SQL> SELECT NAME FROM v$datafile; /*视图中已不存在x.dbf的数据文件*/

 

       NAME

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

       /u01/app/oracle/oradata/orcl/system01.dbf

       /u01/app/oracle/oradata/orcl/undotbs01.dbf

       /u01/app/oracle/oradata/orcl/sysaux01.dbf

       /u01/app/oracle/oradata/orcl/users01.dbf

       /u01/app/oracle/oradata/orcl/example01.dbf

       /u01/app/oracle/oradata/orcl/Test.dbf

       /u01/app/oracle/oradata/orcl/ORCL/datafile/o1_mf_s_5vrl1t7h_.dbf

 

    SQL> ho ls /u01/app/oracle/oradata/orcl/x.dbf   /*操作系统中依然存在*/

       /u01/app/oracle/oradata/orcl/x.dbf

 

    --注意:使用OMF的时候会将物理文件删除,应特别注意使用

    --使用下面的方法重建x表空间,然后使用including contents and datafiles 彻底删除表空间及物理文件

    SQL> CREATE TABLESPACE X DATAFILE '/u01/app/oracle/oradata/orcl/x.dbf' REUSE;  

 

       Tablespace created.

 

    SQL> DROP TABLESPACE x INCLUDING CONTENTS AND DATAFILES;

 

       Tablespace dropped.

 

    SQL> ho ls /u01/app/oracle/oradata/orcl/x.dbf

       ls: /u01/app/oracle/oradata/orcl/x.dbf: No such file or directory

 

总结:使用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.也可以创建undotemporary tablespace CREATE UNDO TABLESPACE tablespace_name ;CREATE TEMPORARY TABLESPACE tablespace_name;

  6.删除表空间DROP TABLESPACE tablespace_name ;OMF情况下则删除物理文件,等效于未使用OMF创建,使用INCLUDING CONTENTS AND DATAFILES 删除方式

 

 

.日志文件的OMF管理

  日志文件管理参数:db_create_online_log_dest_n

  db_create_online_log_dest_n:Oracle创建联机日志文件和控制文件时,在未明确指定路径的情况下的缺省路径

 

--查看日志文件的参数,下面是未作设置的db_create_online参数

    SQL> SHOW PARAMETER db_create_online

 

       NAME                                 TYPE        VALUE

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

       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,一般情况下我们仅仅需要个成员即可。因为在此设定个参数文件

    --下面是未设定的情况下创建日志文件,则默认为在数据文件路径及闪回区各放一个文件,因为上述两个路径都是OMF路径,如下:

 

    SQL> SELECT MEMBER FROM v$logfile;

 

       MEMBER

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

       /u01/app/oracle/oradata/orcl/redo03.log

       /u01/app/oracle/oradata/orcl/redo02.log

       /u01/app/oracle/oradata/orcl/redo01.log

       /u01/app/oracle/oradata/orcl/ORCL/onlinelog/o1_mf_4_5vtgzjyz_.log

       /u01/app/oracle/flash_recovery_area/ORCL/onlinelog/o1_mf_4_5vtgzlhb_.log

 

    SQL> SHOW PARAMETER db_create_file_dest

 

       NAME                                 TYPE        VALUE

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

       db_create_file_dest                  string      /u01/app/oracle/oradata/orcl

 

       SQL> show parameter db_recovery_file_dest

 

       NAME                                 TYPE        VALUE

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

       db_recovery_file_dest                string      /u01/app/oracle/flash_recovery

                                                  _area

       db_recovery_file_dest_size           big integer 2G

 

    --将日志文件存放到指定的disk1,disk2下面

    SQL> ho mkdir /u01/app/oracle/disk1

 

    SQL> ho mkdir /u01/app/oracle/disk2

 

    SQL> ALTER SYSTEM SET db_create_online_log_dest_1 = '/u01/app/oracle/disk1';

 

       System altered.

 

    SQL> ALTER SYSTEM SET db_create_online_log_dest_2 = '/u01/app/oracle/disk2';

 

       System altered.

 

    SQL> ALTER DATABASE ADD logfile;

 

       Database altered.

 

    SQL> SELECT * FROM v$logfile; /*可以看到新的日志文件放到disk1,disk2下面*/

 

       GROUP# STATUS  TYPE    MEMBER                                   IS_

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

            3         ONLINE  /u01/app/oracle/oradata/orcl/redo03.log  NO

            2         ONLINE  /u01/app/oracle/oradata/orcl/redo02.log  NO

            1         ONLINE  /u01/app/oracle/oradata/orcl/redo01.log  NO

            4         ONLINE  /u01/app/oracle/oradata/orcl/ORCL/online NO

                            log/o1_mf_4_5vtgzjyz_.log

 

            4         ONLINE  /u01/app/oracle/flash_recovery_area/ORCL YES

                            /onlinelog/o1_mf_4_5vtgzlhb_.log

 

            5         ONLINE  /u01/app/oracle/disk1/ORCL/onlinelog/o1_ NO

                            mf_5_5vtlpxo0_.log

 

       GROUP# STATUS  TYPE    MEMBER                                   IS_

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

 

            5         ONLINE  /u01/app/oracle/disk2/ORCL/onlinelog/o1_ NO

                            mf_5_5vtlpz4d_.log

 

                            SQL> alter database drop logfile group 5;

 

    Database altered.

 

    /*删除日志文件组*/

    SQL> ALTER DATABASE DROP logfile GROUP 4;

 

       Database altered.

 

    SQL> SELECT group#,member FROM v$logfile;

 

       GROUP# MEMBER

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

            3 /u01/app/oracle/oradata/orcl/redo03.log

            2 /u01/app/oracle/oradata/orcl/redo02.log

            1 /u01/app/oracle/oradata/orcl/redo01.log

            

    SQL> ho ls /u01/app/oracle/disk1/ORCL/onlinelog/o1_mf_5_5vtlpxo0_.log;

       ls: /u01/app/oracle/disk1/ORCL/onlinelog/o1_mf_5_5vtlpxo0_.log: No such file or directory

        

总结:

  1.当定义了db_recovery_file_dest db_create_file_dest路径,且没有定义db_create_online_log_dest_n的时候,

    OMF将日志文件存放在db_recovery_file_destdb_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_1db_create_online_log_dest_2则存放到

    db_create_online_log_dest_1db_create_online_log_dest_2

  4.当定义了多个db_create_online_log_dest_n,则为每个组n个日志成员,且多路复用

  5.增加日志文件的方法;

    alter database add logfile;

    alter database add logfile [group n];

    alter database add logfile member '<dir>' to group [n]

    /*add logfile member这个方法仅使用未使用OMF的日志文件,对于已经运用了OMF的日志组,无法使用该功能添加日志文件*/

  6.删除日志文件组时,对于OMF的日志文件组,其对应的物理文件同时被删除

    alter database drop logfile group [n]

 

 

.使用OMF管理控制文件

  使用OMF管理控制文件同管理日志文件类似,主要涉及到的也是db_create_online_log_dest_n参数

  即控制文件默认存放在db_create_online_log_dest_n下,当定义了一个db_create_online_log_dest_n

  则生成一个控制文件,当定义了多了则生成多个控制文件。

  前提条件:去掉control_files参数

  alter system reset control_files scope = spfile sid = '*';

 

  以下是预留的OMF路径:

    SQL> SHOW PARAMETER db_create

 

       NAME                                 TYPE        VALUE

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

       db_create_file_dest                  string      /u01/app/oracle/oradata/orcl

       db_create_online_log_dest_1          string      /u01/app/oracle/disk1

       db_create_online_log_dest_2          string      /u01/app/oracle/disk2

       db_create_online_log_dest_3          string

       db_create_online_log_dest_4          string

       db_create_online_log_dest_5          string

    SQL> show parameter db_recovery_file

 

       NAME                                 TYPE        VALUE

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

       db_recovery_file_dest                string      /u01/app/oracle/flash_recovery

                                               _area

       db_recovery_file_dest_size           big integer 2G

 

总结

    参数                                         适用范围

    db_create_file_dest_size          datafilecreate tablespace<>

    db_create_online_log_dest_n       logfile ,controlfile

    db_recovery_file_dest             rman, archivelog,onlinelog

 

.更多

   VmWare6.5.2下安装RHEL 5.4(配置Oracle安装环境)  

 

   Linux (RHEL 5.4)下安装Oracle 10g R2

 

   使用Uniread实现SQLplus翻页功能

  

   Oracle 相关

   Using Oracle-Managed Files

 

  

 

这篇关于Oralce OMF 功能详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/183460

相关文章

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF