OMF(Oracle_Managed Files)

使用OMF可以简化管理,不用指定文件的名字、路径(仍然可指定如autoextend, size, next,  maxsize的数据文件属性),删除时OMF会自动删除对应OS文件,不用指定including contents and datafiles

表空间或数据文件的相关语法没什么变化:

create tablespace omftest datafile size 10m;

Alter tablespace add datefile;

create TEMPORARY tablespace omftemp tempfile size 10m;

使用OMF并不会对之前创建的数据文件产生影响,它们还是按原来方式操作,新建的文件将以OMF方式管理。因此数据库是可以OMF与非OMF混合方式管理存在的

  1. OMF支持下列文件的自动管理
  1. Tablespaces
  2. Redo log files
  3. Control files
  4. Archived logs
  5. Block change tracking files
  6. Flashback logs
  7. RMAN backups

This feature does not affect the creation or naming of administrative files such as trace files, audit files, alert logs, and core files.

  1. OMF适用场景
  1. 数据库使用了逻辑卷,支持条带及raid,可动态扩展空间
  2. 对OS端不关心或测试库

OMF对使用raw disk的数据库没影响,因为它使用的是操作系统函数来进行空间分配的(即通过文件系统分配),而裸盘不支持文件系统(it is done manually)。另外因为你不能指定数据文件位置,所以可能I/O性能上有所损耗。所以推荐在逻辑卷上使用

  1. 开启OMF

可以在三个位置使用OMF,每个位置互不影响,即如果你没设置DB_CREATE_FILE_DEST, 但设置了DB_CREATE_ONLINE_LOG_DEST_n, 则只对redo log及control file使用OMF, 对datafile及tempfile还是正常指定数据文件

Show parameters db_create

Show parameters db_recovery

  1. DB_CREATE_FILE_DEST: 数据文件,临时文件默认创建位置。如果未指定DB_CREATE_ONLINE_LOG_DEST_n,还会把redo log及control files存于此目录
  2. DB_CREATE_ONLINE_LOG_DEST_n: redo log及control files默认创建位置,通过n来指定多个位置,对它们进行多路复用,n最大为5
  3. DB_RECOVERY_FILE_DEST: Fast Recovery Area的位置,默认存RMAN备份,归档日志,闪回日志。如果未指定DB_CREATE_ONLINE_LOG_DEST_n,它还会保存redo log与control files以达到多路复用
  4. DB_RECOVERY_FILE_DEST_SIZE:指定Fast Recovery Area的大小
  1. OMF命名

OFA(Optimal Flexible Architecture)是Oracle的一个标准安装目录结构,不同的目录用于存放特定的文件,见《OFA安装目录 》

OMF是按OFA标准来对文件命名的,如设置了db_create_file_dest为/u01/app/oracle/oradata,则它会在oradata/db_unique_name/datafile下创建相应数据库的文件。文件后缀也是一致的,日志是log,数据文件是dbf

如一个数据文件命名为o1_mf_tbs1_2ixh90q_.dbf, o1_mf跟操作系统相关,tbs1为表空间名,2ixh90q是唯一生成id;日志文件是把表空间名替换成了日志组号。

  1. 注意事项
  1. 虽然创建不让写路径和文件名,但可以对已创建的数据文件操作:

ALTER DATABASE RENAME FILE '/u01/oradata/mydb/datafile/o1_mf_tbs01_ziw3bopb_.dbf'

TO '/u01/oradata/mydb/tbs0101.dbf';

ALTER DATABASE DROP LOGFILE '/u01/oradata/mydb/onlinelog/o1_mf_1_wo94n2xi_.log';

ALTER TABLE emp ALLOCATE EXTENT (DATAFILE '/u01/oradata/mydb/datafile/o1_mf_tbs1_2ixfh90q_.dbf');

  1. OMF下通过 ALTER DATABASE BACKUP CONTROLFILE TO TRACE备份出来的控制文件脚本

Noresetlogs:

CREATE CONTROLFILE

    DATABASE sample

    LOGFILE

      GROUP 1 ('/u01/oradata/SAMPLE/onlinelog/o1_mf_1_o220rtt9_.log',

               '/u02/oradata/SAMPLE/onlinelog/o1_mf_1_v2o0b2i3_.log')

                 SIZE 100M,

      GROUP 2 ('/u01/oradata/SAMPLE/onlinelog/o1_mf_2_p22056iw_.log',

               '/u02/oradata/SAMPLE/onlinelog/o1_mf_2_p02rcyg3_.log')

                 SIZE 100M

    NORESETLOGS

    DATAFILE '/u01/oradata/SAMPLE/datafile/o1_mf_system_xu34ybm2_.dbf'

              SIZE 100M,

             '/u01/oradata/SAMPLE/datafile/o1_mf_sysaux_aawbmz51_.dbf'

              SIZE 100M,

             '/u01/oradata/SAMPLE/datafile/o1_mf_sys_undo_apqbmz51_.dbf'

              SIZE 100M

    MAXLOGFILES 5

    MAXLOGHISTORY 100

    MAXDATAFILES 10

    MAXINSTANCES 2

    ARCHIVELOG;

Resetlogs:

CREATE CONTROLFILE

    DATABASE sample

    RESETLOGS

    DATAFILE '/u01/oradata/SAMPLE/datafile/o1_mf_system_aawbmz51_.dbf',

             '/u01/oradata/SAMPLE/datafile/o1_mf_sysaux_axybmz51_.dbf',

             '/u01/oradata/SAMPLE/datafile/o1_mf_sys_undo_azzbmz51_.dbf'

    SIZE 100M

    MAXLOGFILES 5

    MAXLOGHISTORY 100

    MAXDATAFILES 10

    MAXINSTANCES 2

    ARCHIVELOG;

另外如果要使用OMF,在建库前不要配置参数文件的CONTROL_FILES参数,这样才会使用OMF.

  1. redo日志操作

Alter database add logfile [Group 4];   --创建新的日志组,根据参数设置自动多路复用

Alter database add logfile member '/u01/app/oracle/oradata/orcl/redo04-2.log' to group 4;  

---加member必须要指定文件名,不能不写

Alter database drop logfile group 4;

你可能感兴趣的:(Oracle,ORACLE)