Если ваши файлы Oracle являются файлами операционной системы, или же вы используете “чистую” (raw) файловую систему, совсем не сложно отобразить файлы данных на устройства, хранящие их. Однако если не отображать точки монтирования UNIX непосредственно на физические диски, трудно сказать, где именно в дисковой системе находится определенный файл Oracle. Чаще всего предприятия используют диспетчеры логических томов (Logical Volume Manager — LVM) и системы хранения на базе RAID, и узнать, где именно расположены определенные файлы в системе хранения, так просто не удастся.
Для сбора информации о файлах данных можно использовать динамические представления
иV$DATAFILE
наряду с некоторыми другими. В основанных на LVM и RAID системах хранения операции ввода-вывода и файлы данных охватывают множество устройств хранения — составных частей сложной системы хранения. Как администратор баз данных, вы не можете определить, где именно хранятся объекты в стеке ввода-вывода. V$TABLESPACE
Тем не менее, с помощью средства отображения файлов Oracle можно ознакомиться с физическим отображением всех файлов данных базы. Oracle предоставляет в ваше распоряжение API-интерфейсы отображения хранилищ, которые могут быть использованы поставщиками систем хранения для поставки соответствующих библиотек отображения, обеспечивающих полное отображение файлов данных. Используя средство отображения файлов, можно связать файлы данных с логическими устройствами и физическими приводами. Вдобавок можно отображать индивидуальные объекты, включая их файлы и определенные блоки, в которых они располагаются. Такого рода детальная информация поможет действительно понять и оценить производительность ввода-вывода.
Архитектура отображения файлов
При использовании средства отображения файлов в игру вступает дополнительный фоновый процесс Oracle — FMON, — который запускается как часть группы фоновых процессов экземпляра. Этот фоновый процесс FMON будет запущен только в том случае, если значение инициализационного параметра
в файле FILE_MAPPING
init.ora
или SPFILE
установлено в TRUE
. Этот параметр можно также установить динамически с помощью оператора
.ALTER SYSTEM
Процесс FMON запускает процесс операционной системы по имени FMPUTL, который взаимодействует с библиотеками отображения, содержащими детальную информацию о местоположении файлов. Поставщики систем хранения предоставляют такие библиотеки, хотя и Oracle предлагает библиотеку отображения для систем хранения, произведенных EMC — ведущим поставщиком систем хранения. Процесс FMPUTL снабжает FMON информацией отображения для различных уровней стека ввода-вывода, и FMON хранит эту информацию в словаре данных Oracle.
Oracle использует структуры отображения для построения соответствий между файлами данных и их физическими воплощениями. В основе структуры отображения лежат компоненты Oracle, именуемые элементами, которые могут быть дисками RAID 0, RAID 1 или RAID 5, либо же просто целыми дисками. Процесс FMON собирает информацию о файлах и их элементах с помощью процесса FMPUTL и сохраняет эту информацию в SGA и некоторых представлениях словаря данных. Всякий раз, когда вы добавляете, удаляете или изменяете размеры файла данных, FMON изменяет информацию в SGA и связанных с ним таблицах V$
.
Настройка отображения файлов
Теперь давайте рассмотрим, какие шаги необходимы для настройки отображения в базе данных Oracle.
Предоставление библиотеки отображения
Прежде всего, необходимо иметь библиотеку отображения от поставщика системы хранения, если это не EMC (библиотека отображения EMC поставляется Oracle). Затем потребуется отредактировать файл filemap.ora
, расположенный в каталоге $ORACLE_HOME/rdbms/filemap/etc
, в соответствии со спецификой системы. Путь к библиотеке отображения и имя поставщика должны быть добавлены в файл filemap.ora
в виде следующей строки:
lib:название_поставщика:путь_к_библиотеке_отображения
Например, для библиотеки отображения VERITAS
можно использовать следующую строку:
lib=VERITAS:/opt/VRTSdbed/lib/libvxoramap_32.so
После внесения изменений в файл filemap.ora
нужно либо перезапустить базу данных (если применяется файл init.ora
, а не SPFILE
), либо воспользоваться командой ALTER SYSTEM
для установки инициализационного параметра FILE_MAPPING
в TRUE
.
SQL> ALTER SYSTEM SET FILE_MAPPING=TRUE;
Запуск отображения файлов
При установке инициализационного параметра FILE_MAPPING
в TRUE
Oracle не запускает отображение файлов автоматически. Это делается с помощью пакета DBMS_STORAGE_MAP
, который, взаимодействуя с фоновым процессом Oracle FMON, выполняет операции отображения, заполняющие представления отображения. Если вы вызовете процедуру MAP_ALL
из этого пакета, то информация отображения обо всех файлах данных базы будет собрана.
Для просмотра отображения между файлами данных Oracle и физическими элементами системы хранения можно соединять три динамических представления производительности — V$MAP_FILE, V$MAP_ELEMENT
и V$MAP_FILE_IO_STACK
. Можно просмотреть всю иерархию хранения от индивидуальной таблицы до диска в системе хранения.