Oracle Managed Files - облегчение управления файлами

Предыдущие разделы были посвящены управлению файлами операционной системы, где вы, как администратор баз данных, вручную создаете, удаляете и манипулируете файлами данных. Инструмент Oracle Managed Files (OMF) позволяет миновать непосредственное обращение к файлам операционной системы.

В базе данных Oracle вы имеете дело с различными видами файлов, включая файлы данных, управляющие файлы, файлы онлайновых журналов повторного выполнения, файлы резервных копий RMAN и файлы, хранящие ретроспективные журналы (архивные журналы).

Обычно при создании каждого из этих файлов не приходится устанавливать его полные спецификации. При установке в OMF, однако, определяется каталог файловой системы для всех ранее упомянутых типов файлов Oracle указанием значений трех параметров инициализации: DB_CREATE_FILE_DEST, DB_CREATE_ONLINE_LOG_DEST_n и DB_RECOVERY_FILE_DEST. После этого Oracle автоматически создает эти файлы в указанных местах, не требуя дополнительных действий.

OMF предлагает более простой способ управления файловой системой — вам даже не нужно беспокоиться об указании длинных спецификаций файлов при создании табличных пространств, групп журналов повторного выполнения или управляющих файлов. Когда вы хотите создать табличное пространство или добавить файлы данных, используя OMF, не нужно задавать местоположение файлов данных. Oracle автоматически создаст файл или добавит файл данных в место, специфицированное в init.ora.Обратите внимание, что в случае использования файловой системы на базе OMF применять конструкцию DATAFILE или TEMPFILE при создании табличного пространства не потребуется.

Ниже приведены примеры, демонстрирующие, насколько просто создать табличное пространство и расширить его под OMF: 

SQL> CREATE TABLESPACE finance01;
SQL> ALTER TABLESPACE finance01 ADD DATAFILE 500M;

Аналогично, когда вы хотите уничтожить табличное пространство, достаточно ввести команду DROP TABLESPACE, и файлы данных OMF будут автоматически удалены Oracle вместе с определением табличного пространства:

SQL> DROP TABLESPACE finance01; 

Файлами OMF определенно легче управлять, чем традиционными вручную созданными файлами операционной системы. Однако существуют некоторые ограничения.

  • Файлы OMF не могут быть использованы на “чистых”, т.е. без файловой системы,устройствах (raw devices), которые некоторым приложениям (наподобие Oracle Real Application Clusters) обеспечивают превосходную производительность по сравнению с файлами операционной системы.
  • Все файлы данных OMF должны быть созданы в одном каталоге. Трудно представить, что крупная база данных поместится в эту единственную файловую систему.
  • Нельзя выбирать собственные имена для файлов данных, создаваемых под OMF.Oracle использует собственное соглашение об именовании, которое включает имя базы данных и уникальную символьную строку для именования файлов данных.

Oracle рекомендует применять OMF для небольших и тестовых баз данных. Обычно,если вы уничтожаете файл данных, то база лишается каких-либо ссылок на него, однако сам физический файл остается на своем прежнем месте, и его потребуется удалить самостоятельно. Если вы используете OMF, то Oracle удалит файл, когда вы исключите его из базы данных. Согласно Oracle, файловая система OMF более удобна для баз данных, использующих диспетчеры логических томов (Logical Volume Manager), которые поддерживают RAID и расширяемые файловые системы. Мелкие базы данных больше всего выигрывают от OMF, потому что сокращается объем операций по управлению файлами. Тестовые базы данных — еще одна область применения файловой системы OMF, где это средство позволяет сократить затраты времени на управление.

Вы должны использовать файлы на основе операционной системы, если хотите применять средство OMF; использовать “необработанные” (raw) файлы нельзя. При этом,применяя файлы OMF, вы теряете некоторый контроль над размещением данных в хранилище, но даже с учетом этих ограничений преимущества управления файлами OMF в определенных ситуациях перевешивают их недостатки.

Преимущества использования OMF

Можно создавать табличные пространства с файлами на базе OMF. Можно также указать, что онлайновые файлы журналов повторного выполнения и управляющие файлы должны быть в формате OMF. Файлы OMF предоставляют несколько преимуществ по сравнению с управляемыми пользователем файлами.

Oracle автоматически создает и удаляет файлы OMF.

  • Не нужно беспокоиться о соблюдении какого-либо соглашения в именовании файлов.
  • При непосредственном управлении файлами данных легко по ошибке удалить их.
  • Имея дело с файлами OMF, вы защищены от риска нечаянного удаления файлов данных.
  • Oracle автоматически удаляет файл, когда он больше не нужен.
  • Можно смешивать традиционные файлы и файлы OMF в одной и той же базе данных.

Теперь мы рассмотрим средство OMF более подробно.

Создание файлов OMF

Создавать файлы OMF можно при создании базы данных либо же добавлять их к базе данных, созданной ранее. В любом случае потребуется установить некоторые инициализационные параметры для разрешения создания файла OMF.

Инициализационные параметры для OMF

Чтобы разрешить использование файлов OMF, следует установить четыре параметра инициализации в файле параметров. Изменять их можно в оперативном режиме с помощью команды ALTER SYSTEM или ALTER SESSION. Эти параметры служат для спецификации местоположения для разных типов файлов OMF, таких как файлы данных и онлайновые файлы журналов повторного выполнения.

  • DB_CREATE_FILE_BEST. Этот параметр специфицирует местоположение по умолчанию файлов данных, файлов онлайновых журналов повторного выполнения,управляющих файлов, файлов отслеживания изменений блоков и временных файлов. При желании можно также специфицировать местоположение управляющего файла. К сожалению, параметр DB_CREATE_FILE_DEST может принимать только единственный каталог в качестве значения; специфицировать в нем несколько файловых систем нельзя. Если назначенный для создания файлов каталог будет заполнен, вы всегда можете указать новый каталог, потому что параметр DB_CREATE_FILE_DEST является динамическим. Это позволяет размещать файлы данных Oracle в любом месте файловой системы без каких-либо ограничений.
  • DB_CREATE_ONLINE_LOG_DEST_n. Этот параметр можно использовать для указания местоположения по умолчанию файлов онлайновых журналов повторного выполнения. В этом параметре n ссылается на количество файлов журналов повторного выполнения или управляющих файлов, которые должен создать Oracle. Если вы хотите мультиплексировать файлы онлайновых журналов повторного выполнения, как это рекомендовано Oracle, то должны установить n в 2.
  • DB_RECOVERY_FILES_DEST. Этот параметр определяет местоположение по умолчанию управляющих файлов, архивных файлов журналов повторного выполнения,резервных копий RMAN и ретроспективных журналов. Если опустить DB_CREATE_ONLINE_LOG_DEST_n, то этот параметр определит местоположение файлов онлайновых журналов повторного выполнения и управляющих файлов. Местоположение каталога, указанное в этом параметре, также известно как область пакетного восстановления (flash recovery area).

В дополнение к предыдущим трем, инициализационный параметр DB_RECOVERY_FILE_DEST_SIZE специфицирует размер области пакетного восстановления.

Если не указать ни одного из перечисленных параметров инициализации в файле init.ora или SPFILE, все равно с помощью команды ALTER SYSTEM можно динамически включить создание файлов OMF, как показано в следующем примере:

SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST =
2 '/test01/app/oracle/oradata/finance1';
System altered.
SQL> 

Если специфицирован параметр DB_CREATE_FILE_DEST, можно заставить Oracle создавать файлы OMF и использовать параллельно управляемые пользователем файлы и файлы OMF без каких-либо проблем.

Соглашения об именовании файлов

При генерации имен файлов Oracle использует стандарты OMF, поэтому имена получаются уникальными, и файлы данных легко идентифицировать по принадлежности к определенному табличному пространству. В табл. 6.1 показаны соглашения об именовании для различных файлов OMF вместе с примерами каждого типа. Обратите внимание, что буква t подставляется для уникального имени табличного пространства,g — для онлайновой группы повторного выполнения, а u — для 8-символьной строки.

Тип файла OMF Соглашение об именовании Пример
Файл данных ora_t%_u.dbf ora_data_Y2ZV8P00.dbf
Временный файл (размер по умолчанию — 100 Мбайт) ora_%t_u.tmp ora_temp_Y2ZWGD00.tmp
Онлайновый файл журнала повторного выполнения (размер по умолчанию — 100 Мбайт) ora_%g_%u.log ora_temp_Y2ZWGD00.tmp
Управляющий файл ora_u%.ctl ora_Y2ZROW00.ctl

Разные типы файлов OMF

OMF можно применять для создания всех трех типов файлов, необходимых базе данных Oracle: управляющих файлов, файлов журналов повторного выполнения и, разумеется, файлов данных. Однако существуют некоторые интересные отличия в том, как OMF требует специфицировать (или не специфицировать) каждый из этих типов файлов. Теперь рассмотрим, как Oracle создает разные типы файлов.

Управляющие файлы

Как вы, вероятно, уже заметили, нет каких-то специфических параметров, которые нужно включать в файл init.ora, чтобы специфицировать формат OMF. Если вы указываете параметр инициализации CONTROL_FILES, то, конечно, должны специфицировать полное местоположение этих файлов, и очевидно, что они не будут файлами OMF — вы будете управлять ими самостоятельно. Если же не указать параметр CONTROL_FILES, но использовать параметр CREATE_FILE_DSEST или CREATE_ONLINE_LOG_DEST_n, то управляющие файлы будут файлами OMF.

В случае применения традиционного файла init.ora понадобится добавить к нему местоположение управляющего файла. Если же используется SPFILE, то Oracle автоматически добавит туда информацию об управляющем файле.

Файлы журнала повторного выполнения

Создание файлов OMF журналов повторного выполнения похоже на создание управляющего файла. Если вы не укажете местоположение файлов журнала повторного выполнения, но установите в init.ora параметр DB_CREATE_FILE_DEST или DB_CREATE_ONLINE_LOG_DEST_n, то Oracle автоматически создаст файлы OMF журнала повторного выполнения.

Файлы данных

Если вы не специфицируете местоположение базы данных в операторах CREATE или ALTER для обычного файла данных или временного файла для временного табличного пространства, а вместо этого укажете параметр DB_CREATE_DEST, то все эти файлу будут файлами OMF.

Простое создание базы данных Oracle с использованием OMF

Рассмотрим небольшой пример, чтобы увидеть, как файлы OMF позволяют упростить создание базы данных. Когда вы создаете новую базу данных, то должны указать Oracle местоположения управляющего файла, файла журнала повторного выполнения и файла данных. Вы специфицируете некоторые местоположения файлов в файле инициализации (местоположения управляющих файлов), а некоторые — при создании базы данных (например, местоположения журнала повторного выполнения). Однако если вы используете файлы на основе OMF, то создание базы данных может оказаться элементарным, в чем вы убедитесь в далее.

Установка параметров размещения файлов

Для новой базы данных, основанной на OMF, применяются следующие инициализационные параметры:

db_name=nicko
DB_CREATE_FILE_DEST = '/u01/app/oracle/oradata'
DB_RECOVERY_FILE_DEST_SIZE = 100M
DB_RECOVERY_FILE_DEST = '/u04/app/oracle/oradata'
LOG_ARCHIVE_DEST_1 = 'LOCATION = USE_DB_RECOVERY_FILE_DEST' 

Обратите внимание, что из четырех инициализационных параметров, касающихся OMF, указаны только DB_CREATE_FILE_DEST, DB_RECOVERY_FILE_DEST_SIZE и DB_RECOVERY_FILE_DEST. В этом примере четвертый параметр DB_CREATE_ONLINE_LOG_DEST_n использовать не обязательно. Когда этот параметр опущен, Oracle создает копию файла журнала и файла журнала повторного выполнения в местах, заданных параметрами DB_CREATE_FILE_DEST и DB_RECOVERY_FILE_DEST. Таким образом, имеется по две копии управляющего файла и онлайнового журнала повторного выполнения.

Установка последнего параметра — LOG_ARCHIVE_DEST_1 — сообщает Oracle, что архивированные журналы повторного выполнения следует сохранять в области быстрого восстановления, специфицированной параметром DB_RECOVERY_FILE_DEST.

Запуск экземпляра

Используя простой файл init.ora, приведенный в выше в данной статье блога, можно запустить экземпляр, как показано в листинге ниже.


SQL> connect sys/sys_passwd as sysdba
Connected to an idle instance.
SQL> STARTUP NOMOUNT PFILE='initnicko.ora';
ORACLE instance started.
Total System Global Area           188743680 bytes
Fixed Size                           1308048 bytes
Variable Size                      116132464 bytes
Database Buffers                    67108864 bytes
Redo Buffers                         4194304 bytes
SQL> 

Создание базы данных Oracle

Теперь, успешно создав новый экземпляр Oracle, с помощью следующей простой команды можно создать новую базу данных nicko:

SQL> CREATE DATABASE nicko;
Database created.
SQL> 

Вот и все! Эти две простые строки — все, что нужно для создания функциональной базы данных с перечисленными ниже структурами.

  • Табличное пространство System в файловой системе по умолчанию, специфицированной параметром DB_CREATE_FILE_DEST (/u01/app/oracle/oradata).
  • Табличное пространство Sysaux в файловой системе по умолчанию (/u01/app/oracle/oradata).
  • Две дублирующие группы журналов повторного выполнения.
  • Две копии управляющего файла.
  • Временное табличное пространство по умолчанию.
  • Табличное пространство отмены (undo), автоматически управляемое Oracle.

Где находятся файлы OMF?

Заглянув в журнал предупреждений новой базы данных, можно увидеть различные файлы, входящие в нее. Этот файл, alert_nicko.log, находится в каталоге $ORACLE_HOME/rdbms/log, поскольку не был специфицирован каталог BACKGROUND_DUMP_DIR в init.ora.

В следующем сегменте файла журнала предупреждений базы данных можно видеть, как создаются различные файлы, необходимые новой базе данных. Сначала Oracle создает управляющие файлы и помещает их в место, указанное в параметре DB_CREATE_ONLINE_LOG_DEST_n:

Sun Jan 13 17:44:51 2008
create database nicko
default temporary tablespace temp
Sun Jan 13 17:44:51 2008
WARNING: Default passwords for SYS and SYSTEM will be used.
Please change the passwords.
Created Oracle managed file /u01/app/oracle/oradata/NICKO/controlfile/o1_mf_150w
. . .
Sun Jan 13 17:46:37 2008
Completed: create database nicko
default temporary tablespace
MMNL started with pid=13, OS id=28939 

А вот что журнал предупреждений показывает относительно создания управляющих файлов:

Created Oracle managed file /u01/app/oracle/oradata/NICKO/controlfile/o1_mf_150w
h3r1_.ctl
Created Oracle managed file /u04/app/oracle/oradata/NICKO/controlfile/o1_mf_150w
h3_.ctl
 

Затем сервер Oracle создает файлы дублированных журналов повторного выполнения. При этом Oracle создает минимальное количество необходимых групп и дублирует их, создавая набор (из двух файлов) онлайновых файлов журнала в местах, указанном параметрами DB_CREATE_ONLINE_LOG_DEST и DB_RECOVERY_FILE_DEST:

Created Oracle managed file /u01/app/oracle/oradata/NICKO/onlinelog/o1_mf_1_150w
h48m_.log
Created Oracle managed file /u04/app/oracle/oradata/NICKO/onlinelog/o1_mf_1_150w
hf07_.log
Created Oracle managed file /u01/app/oracle/oradata/NICKO/onlinelog/o1_mf_2_150w
honc_.log
Created Oracle managed file /u04/app/oracle/oradata/NICKO/onlinelog/o1_mf_2_150w
hwh0_.log 

Затем создается табличное пространство System в месте, указанном в параметре DB_CREATE_FILE_DEST:

create tablespace SYSTEM datafile /* OMF datafile */
default storage (initial 10K next 10K) EXTENT MANAGEMENT DICTIONARY online
Created Oracle managed file /u01/app/oracle/oradata/NICKO/datafile/o1_mf_system_
150wj4c3_.dbf
Completed: create tablespace SYSTEM datafile /* OMF datafile 

Далее создается табличное пространство Sysaux, как показано ниже:

create tablespace SYSAUX datafile /* OMF datafile */
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO online
Sun Jan 33 17:46:16 2008
Created Oracle managed file /u01/app/oracle/oradata/NICKO/datafile/o1_mf_sysaux_
150wkk9n_.dbf
Completed: create tablespace SYSAUX datafile /* OMF datafile 

Затем создается табличное пространство undo с именем по умолчанию SYS_UNDOTS в месте, указанном в параметре DB_CREATE_FILE_DEST. Временное табличное пространство по имени TEMP создается в том же каталоге:

CREATE UNDO TABLESPACE SYS_UNDOTS DATAFILE SIZE 10M AUTOEXTEND ON
Created Oracle managed file
/test01/app/oracle/oradata/ora_omf/finDATA/ora_sys_undo_yj5mg123.dbf
...
Successfully onlined Undo Tablespace 1.
Completed: CREATE UNDO TABLESPACE SYS_UNDOTS DATAFILE SIZE 1
CREATE TEMPORARY TABLESPACE TEMP TEMPFILE
Created Oracle managed file
/test01/app/oracle/oradata/ora_omf/finDATA/ora_temp_yj5mg592.tmp
Completed: CREATE TEMPORARY TABLESPACE TEMP TEMPFILE 

Добавление табличных пространств

Добавление других табличных пространств и файлов данных внутри файловой системы OMF осуществляется просто. Все, что нужно для этого — вызвать команду CREATE TABLESPACE с ключевым словом DEFAULT. При этом Oracle автоматически создаст файлы данных для табличного пространства, указанного в параметре DB_CREATE_FILE_DEST.Следующий пример показывает, как создать табличное пространство:

SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST =
2 '/test01/app/oracle/ora_omf/finance1';
System altered.
SQL> CREATE TABLESPACE omftest;
Tablespace created.
SQL> SELECT file_name FROM dba_data_files
2 WHERE tablespace_name='OMFTEST';
FILE_NAME
-----------------------------------------------------------
/test01/app/oracle/oradata/ora_omf/ora_omftest_yj7590bm.dbf
SQL> 

Сравните этот оператор создания табличного пространства OMF с ранее показанным оператором создания типичного табличного пространства, и вы убедитесь, на сколько OMF упрощает задачу администрирования базы данных. Добавление файлов данных с OMF также просто, что доказывает следующий пример:

SQL> ALTER TABLESPACE omftest ADD DATAFILE; 

Как видите, файлы OMF упрощают администрирование файлов и позволяют создавать и управлять базами данных с минимальным набором инициализационных параметров. Довольно легко установить нужное количество местоположений для онлайновых файлов журнала повторного выполнения, управляющих файлов и архивных файлов журнала, специфицируя соответствующее значение различных параметров OMF. Файловая система Oracle на основе ASM полагается на файловую систему OMF.

Вас заинтересует / Intresting for you:

Версии СУБД Oracle Database 10...
Версии СУБД Oracle Database 10... 5763 просмотров Илья Дергунов Sat, 11 Aug 2018, 11:43:08
Oracle Database 11g Enterprise...
Oracle Database 11g Enterprise... 5661 просмотров Надин Tue, 21 Nov 2017, 13:32:12
Oracle Database: обзор базы да...
Oracle Database: обзор базы да... 23563 просмотров Илья Дергунов Sun, 11 Aug 2019, 15:01:35
Oracle alerts: генерируемые се...
Oracle alerts: генерируемые се... 7242 просмотров Алексей Вятский Tue, 21 Nov 2017, 13:18:05
Войдите чтобы комментировать

admin аватар
admin ответил в теме #10602 1 год 9 мес. назад
Благодарю за хорошую статью!
ildergun аватар
ildergun ответил в теме #8680 6 года 7 мес. назад
Да, отличная стать по OMF. Спасибо, комраденс OraDevel! Так держать админы баз данных Oracle и программисты!
OraDevel аватар
OraDevel ответил в теме #8539 6 года 9 мес. назад
Немножко подрихтавал статью - поправил структуру разделов (подчиненность) + навел лоск немного.