Где хранятся файлы базы данных oracle

Обновлено: 02.07.2024

Файлы данных


Все данные в базе данных Oracle сохраняются в файлах данных. Все таблицы, индексы, триггеры, последовательности, программы на PL/SQL, представления - все это находится в файлах данных. И хотя эти и другие объекты базы данных логически содрежатся в табличных пространствах, в дейстительности они сохраняются в файлах на жестком диске компьютера.

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

У каждого файла данных имеется специальный формат, внутренний для программногообеспечения Oracle. Важно отдавать себе отчет в том, что файл данных состоит из заголовка и свовокупности блоков. Заголовок файла данных Oracle содержит несколько структур, в том числе и идентификатор базы данных, номер и имя файла, тип файла, SCN создания и состояния файла.

Данные в файлы вносятся исключительно средствами Oracle.

Получить некоторые данные по файлам данных, можно выполнив команды:

SQL> desc v$datafile;

Последний раз редактировалось Marley; 06.06.2011 в 12:06 .

Оперативные файлы журналов повтора (Online Redo Log Files)

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

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

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

Посколько файлы повтора необходимы для выполнения восстановления базы данных и являются критичными, их объединяют в группы. Запись происходит одновременно в файлы одной группы.

SQL> desc v$logfile;

// Группа, расположение, статус, размер в мегабайтах.


Архивные файлы журналов повтора


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

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

Архивные файлы журналов повтора жизненно важны при воссатновлении. Если часть базы данных потеряна или повреждена, то для устранения повреждений обычно треуется несколько архивных журналов. Файлы журналов повтора должны применяться к базе данных последовательно. Если один из архивных файлов журналов повтора пропущен, то остальные архивные файлы журналов не могут использоваться. Храните все свои архивные файлы журналов потора с момента выполнения последенй резервной копии. Файлы журналов постепенно накапливаются и разрастаются. Иногда необходимо их удалять. Все операции с данными файлами выполняются исключительно средствами базы данных.


SQL> desc v$archived_log;

SQL> select name from v$archived_log;

Последний раз редактировалось Marley; 06.06.2011 в 13:07 .

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

Поскольку база данных Oracle является физическим набором связанных файлов данных, то для их синхронизации и контроля требуется особые методы. Для этих целей используются управляющие файлы.

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


SQL> desc v$controlfile;

SQL> select name from v$controlfile;

Последний раз редактировалось Marley; 06.06.2011 в 13:16 .

Файлы параметров (pfile, spfie) обязательный дисковый компонент. Используется для конфигурирования действий Oracle во время эксплуатации. Для того, чтобы запустить экземпляр базы данных, Oracle должен прочесть файл параметров и определить, какие параметры инициализации установлены для этого экземпляра. В файле параметров содержатся многочисленные параметры и их установленные значения. Oracle считывает файл параметров при запуске базы данных. Можно создать несколько файлов параметров, каждый будет соответствовать различным конфигурациям экземпляра, которые могут быть использованы в различные моменты времени.


spfile - бинарный файл, который используется сервером Oracle при старте.
pfile - текстовый файл с параметрами, будет использоваться при старте, если не будет найден spfile.

При старте, Oracle считает файл spfileora112.ora. (файл серверных параметров). Преимущество spfile заключается в том, что при работе с базой данных, любые изменения в базе касающиеся изменения параметра системы, автоматически записываются в данный файл.

Если используется pfile, для сохранения изменений, необходимо либо "руками вносить эти изменения" в файл, либо выполнять команды для создания данных файлов из текущей системы.

// создания pfile из памяти (в 11 версии Oracle)
SQL> Create pfile from memory;

// создать pfile из spfile
SQL> Create pfile from spfile;

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

$ ls /u01/app/oracle/product/11.2/dbs/orapw*
/u01/app/oracle/product/11.2/dbs/orapwora112

Alert log и трассировочные файлы

При работе базы данных события и ошибки регистрируются в текстовых файлах на сервере базы данных. Файл журнала предупреждений (alert log) нужен администратору базы данных для отслеживания важнейших фействий с базой данных - наподобие открытия и закрытия базы данных, установления параметров загрузки базы данных и переключения оперативных журналов повтора. Также в эти файлы записываются многие ошибки базы данных для последующего расследования их причин. Любые структурные изменения базы данных также регистрируются в файле журнала предупрежденияй.

// в 11 версии базы данных
$ ls /u01/app/oracle/diag/rdbms/ora112/ora112/alert
log.xml

Когда возникает ошибка базы данных, может генерироваться файл трассировки (trace file). Они содержит подробную информацию о возникновении ошибки.

// в 11 версии базы данных
/u01/app/oracle/diag/rdbms/ora112/ora112/trace

Oracle Database — это объектно-реляционная СУБД (система управления базами данных), созданная компанией Oracle. В настоящее время она имеет множество разных версий и типов. Однако в этой статье мы поговорим не о видах баз данных Oracle, а о структуре и основных концепциях, которые относятся к СУБД Oracle Database. Поняв архитектуру СУБД Oracle, вы заложите фундамент, необходимый для понимания прочих средств (а они весьма обширны), предоставляемых базой данных Oracle.

Базы данных Oracle: экземпляры и сущности

СУБД Oracle Database включает в себя физические и логические компоненты. Особого упоминания заслуживает понятие экземпляра. Замечено, что некоторые используют термины «база данных» и «экземпляр» в качестве синонимов. Да, это взаимосвязанные, но всё же разные вещи. База данных в терминологии Oracle — это физическое хранилище информации, а экземпляр — это программное обеспечение, которое работает на сервере и предоставляет доступ к информации, содержащейся в базе данных Oracle. Экземпляр исполняется на конкретном сервере либо компьютере, в то самое время как база данных хранится на дисках, подключённых к этому серверу:

instans_and_Oracle_Database_1-20219-067a61.jpg

При этом база данных Oracle является физической сущностью, состоящей из файлов, которые хранятся на дисках. В то же самое время, экземпляр – это сущность логическая, состоящая из структур в оперативной памяти и процессов, которые работают на сервере. Экземпляр может являться частью только одной базы данных. При этом с одной базой данных бывает ассоциировано несколько экземпляров. Экземпляр ограничен по времени жизни, тогда как БД, условно говоря, может существовать вечно.

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

Если упрощённо, то экземпляр — это мост к базе данных, а сама БД – это остров. Когда экземпляр запущен, мост работает, а данные способны попадать в базу данных Oracle и покидать её. Если мост перекрыт (экземпляр остановлен), пользователи не могут обращаться к базе данных, несмотря на то, что физически она никуда не исчезла.

Структура базы данных Oracle

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

Табличные пространства Oracle

Любые данные, которые хранятся в базе данных Oracle, просто обязаны существовать в каком-либо табличном пространстве. Под табличным пространством (tablespace) понимают логическую структуру, то есть вы не сможете попросить ОС показать вам табличное пространство Oracle.

При этом каждое табличное пространство включает в себя физические структуры, называемые файлами данных (data files). Одно табличное пространство Oracle способно содержать один либо несколько файлов данных, в то время как каждый файл данных может принадлежать лишь одному tablespace. Создавая таблицу, мы можем указать, в какое именно табличное пространство мы её поместим — Oracle находит для неё место в каком-нибудь из файлов данных, которые составляют указанное табличное пространство.

На рисунке ниже вы можете посмотреть на соотношение между файлами данных и табличными пространствами в базе данных Oracle.

tablespaces_data_files_Oracle_1-20219-802832.jpg

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

Файлы базы данных Oracle

База данных Oracle может включать в себя физические файлы 3-х основных типов: • control files — управляющие файлы; • data files — файлы данных; • redo log files — журнальные файлы либо журналы.

Посмотрим на отношения между ними:

oracle_database_files_1-20219-34b3e2.jpg

В управляющих файлах содержится информация о местонахождении других физических файлов, которые составляют базу данных Oracle, — речь идёт о файлах данных и журналов. Также там хранится важная информация о содержимом и состоянии БД Oracle. Что это за информация: • имя базы данных Oracle; • время создания БД; • имена и местонахождение журнальных файлов и файлов данных; • информация о табличных пространствах; • информация об архивных журналах; • история журналов, порядковый номер текущего журнала; • информация о файлах данных в автономном режиме; • информация о резервных копиях, контрольных точках, копиях файлов данных.

При этом функция управляющих файлов не ограничивается хранением важной информации, нужной при запуске экземпляра, — полезны они и в процессе удалении БД Oracle. К примеру, уже с версии Oracle Database 10g можно посредством команды DROP DATABASE удалить все файлы, которые перечислены в управляющем файле БД, включая сам управляющий файл.

Инициализация СУБД Oracle

Когда вы запускаете экземпляр Oracle, происходит считывание параметров инициализации. Параметры определяют, каким образом базе данных Oracle следует использовать физическую инфраструктуру и прочую конфигурационную информацию об экземпляре.

Как правило, инициализационные параметры хранятся в файле параметров инициализации экземпляра (обычно это INIT.ORA) либо, начиная с Oracle9i, в репозитории, называемом файлом параметров сервера (SPFILE). С выходом каждой новой версии Oracle число обязательных параметров инициализации уменьшается.

Кстати, в дистрибутиве Oracle можно найти пример файла инициализации, который пригоден для запуска базы данных. Также можно воспользоваться специальной программой Database Configuration Assistant (DCA) — она подскажет обязательные значения.

Более подробную информацию смотрите в официальной документации для СУБД Oracle Database.

Как найти и отобразить файлы Oracle на устройстве или в системе хранения RAID

Если ваши файлы Oracle являются файлами операционной системы, или же вы используете “чистую” (raw) файловую систему, совсем не сложно отобразить файлы данных на устройства, хранящие их. Однако если не отображать точки монтирования UNIX непосредственно на физические диски, трудно сказать, где именно в дисковой системе находится определенный файл Oracle. Чаще всего предприятия используют диспетчеры логических томов (Logical Volume Manager — LVM) и системы хранения на базе RAID, и узнать, где именно расположены определенные файлы в системе хранения, так просто не удастся.

Для сбора информации о файлах данных можно использовать динамические представления V$DATAFILE и V$TABLESPACE наряду с некоторыми другими. В основанных на LVM и RAID системах хранения операции ввода-вывода и файлы данных охватывают множество устройств хранения — составных частей сложной системы хранения. Как администратор баз данных, вы не можете определить, где именно хранятся объекты в стеке ввода-вывода.

Тем не менее, с помощью средства отображения файлов Oracle можно ознакомиться с физическим отображением всех файлов данных базы. Oracle предоставляет в ваше распоряжение API-интерфейсы отображения хранилищ, которые могут быть использованы поставщиками систем хранения для поставки соответствующих библиотек отображения, обеспечивающих полное отображение файлов данных. Используя средство отображения файлов, можно связать файлы данных с логическими устройствами и физическими приводами. Вдобавок можно отображать индивидуальные объекты, включая их файлы и определенные блоки, в которых они располагаются. Такого рода детальная информация поможет действительно понять и оценить производительность ввода-вывода.

Как найти и скопировать файлы базы данных Oracle на устройстве или в системе хранения

Архитектура отображения файлов

При использовании средства отображения файлов в игру вступает дополнительный фоновый процесс 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 в виде следующей строки:

Например, для библиотеки отображения VERITAS можно использовать следующую строку:

После внесения изменений в файл filemap.ora нужно либо перезапустить базу данных (если применяется файл init.ora , а не SPFILE ), либо воспользоваться командой ALTER SYSTEM для установки инициализационного параметра 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 . Можно просмотреть всю иерархию хранения от индивидуальной таблицы до диска в системе хранения.

Читайте, с помощью каких инструментов можно создать бэкап или восстановить утерянную базу Oracle Database . Рассмотрим как встроенные в базу инструменты так и сторонние приложения. Oracle Database хранит все файлы созданной базы в файлах данных. Часто, для восстановления данных определённой базы , достаточно восстановить её файлы данных и импортировать их в Oracle Database.

Структура базы данных Oracle Database

В процессе работы экземпляр базы данных Oracle Database использует несколько групп файлов, которые следует архивировать для последующего восстановления. Это:

  • Файлы данных и табличных пространств (*.DBF) .

Название файлов данных и табличных пространств, а также пути к ним можно посмотреть с помощью SQL Plus если выполнить следующий запрос:

В результате работы этого запроса получится подобный отчет:

Конфигурационные файлы базы данных Oracle имеют расширение *.ora и расположены в папке:

C:\oraclexe\app\oracle\product\11.2.0\server\dbs

Самый простой способ определить путь и названия управляющих файлов, это найти в конфигурационном файле *.ORA строку control_files , в которой будут перечислены используемые этим экземпляром управляющие файлы.

Также, чтобы определить названия и пути к управляющим файлам в SQL Plus необходимо выполнить запрос:

SELECT value FROM v$parameter WHERE name = ‘control_files’;

Чтобы узнать имена онлайновых журналов транзакций и пути к ним, необходимо в SQL Plus выполнить следующий запрос:

SELECT member FROM v$logfile;

В результате работы этого запроса получится подобный отчет:

Чтобы определить пути к папкам, где хранятся архивные журналы транзакций, необходимо выполнить такой запрос:

SELECT destination FROM v$archive_dest where status=’VALID’;

В результате работы этого запроса получится отчет:

Как правило, это файлы с расширением *.ora, имя которых начинается с символов PWD.
Например: PWDXE.ora

Путь: C:\oraclexe\app\oracle\product\11.2.0\server\database

Итак, для сохранения, архивирования или бэкапа базы данных Oracle Database, копии именно указанных групп файлов следует создавать, а это:

  • *.DBF – файлы данных, табличных пространств и управляющие файлы базы данных. Расположены:
    C:\oraclexe\app\oracle\oradata\XE
  • *.ora – файлы конфигурации базы данных и файлы паролей.
    Файлы конфигурации:
    C:\oraclexe\app\oracle\product\11.2.0\server\dbs
    Файлы паролей (PW…ora):
    C:\oraclexe\app\oracle\product\11.2.0\server\database
  • *.LOG – файлы журналов транзакций:
    C:\oraclexe\app\oracle\fast_recovery_area\XE\ONLINELOG

где, ХЕ – это название базы данных в нашем случае.

Резервная копия базы данных Oracle Database

Резервную копию базы данных Oracle Database можно создать двумя способами:

  • Архивации средствами операционной системы.
  • Используя встроенные инструменты Oracle Application Express – Import / Export.

Архивация средствами операционной системы

Архивация средствами операционной системы подразумевает «ручное» копирование всех рабочих файлов базы данных, таких как:

  • Файлы табличных пространств.
  • Управляющие файлы.
  • Файлы журналов транзакций.
  • Файлы конфигурации.

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

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

Архивация и восстановление при помощи инструментов Export / Import

Архивацию и восстановление базы данных Oracle Database можно производить с помощью стандартных механизмов Экспорта и Импорта в Oracle. Для повышения надежности сохранности данных необходимо периодически, в зависимости от интенсивности работы с базой, производить полный экспорт. При достаточно интенсивном внесении изменений в данные, необходимо делать экспорт один раз в неделю.

Читайте также: