Обзор физической структуры базы данных

Статьи про Oracle -> Архитектура

Обзор физической структуры базы данных

Предлагаю вам мой перевод части документации Oracle Database Concepts 10g Release 2 (10.2) B14220-02.

v:1.1 2007.10.10

Datafiles (файлы данных)
Каждая база данных Oracle имеет один или несколько файлов хранения данных. Datafiles содержат все данные базы данных. Информация о логической структуре базы: таблицы, индексы и т.д. физически хранится в файлах данных.

    Можно выделить несколько особенностей файлов данных:
  • Datafile может принадлежать только одной базе данных.
  • Параметры Datafile могут быть настроены таким образом, что он автоматически расширится, если базе потребуется дополнительное место.
  • Один или несколько Datafile'ов формируют логический блок хранения данных, называемый табличным пространством (TabeSpace).
Во время обычных операций базы данных данные читаются из Datafile'ов и сохраняются в специальном кэше. Например, предположим, что пользователь обращается к некоторым данным таблицы базы данных. Если запрашиваемой информации еще нет в кэше, то она вычитывается из соответствующего Datafile'а и сохраняется в кэше.
Измененные или новые данные не обязательно сразу записываются в Datafile. Чтобы сократить число обращений к диску и повысить производительность, данные хранятся в памяти и сохраняются в нужный Datafile одновременно. Этими действиями управляют фоновые процессы Database Writer Process (DBW).

Control Files (управляющие файлы)
Каждая база данных Oracle содержит Control files. Control File содержит записи, определяющие физическую структуру базы.

    Например, он хранит следующую информацию:
  • Имя базы данных.
  • Имена и размещение Datafile'ов и Redo log файлов.
  • Время создания базы данных.
Oracle может мультиплексировать(переключать) Control file'ы - это одновременное управление несколькими одинаковыми копиями Control file'ов. Механизм мультиплексирования позволяет защитить Control file'ы от повреждения.
При запуске Oracle все необходимые настройки и параметры извлекаются из Control file'а. Если физические параметры базы изменяются (например, создается новый Datafile), то Control file'ы автоматически изменяются, чтобы отразить эти изменения. В случае сбоя Control file используется в процессе восстановления.

Redo Log Files (Файлы истории отката)
В состав каждой базы Oracle входит набор из как минимум двух Redo Log File'ов. Набор Redo Log File'ов также называется Redo Log (история откатов). Основная функция истории откатов - запись всех изменений данных. Если в результате сбоя данные еще не успели записаться в Datafile'ы, то изменения можно восстановить по истории откатов. Чтобы повысить надежность в Oracle используется механизм мультиплексирования Redo Log File'ов - это механизм одновременного ведения двух или нескольких копий файлов, которые могут храниться на разных физических дисках. Информация файлов отката может быть использована только для восстановления данных, которые еще не успели сохраниться в Datafile'ы по причине физического сбоя диска или ошибки программных средств. Например, в результате неожиданного отключения электроэнергии данные из памяти не успели сохранится на диск и пропали. Однако пропавшие данные еще можно восстановить. При следующем запуске Oracle, используя данные отката, восстановит свое состояние на момент перед сбоем, тем самым сохранив проделанную работу. Процесс применения файлов отката для восстановления данных называется Rolling forward (откат вперед).

Archive Log Files (Файлы истории архивирования)
Вы можете включить автоматическое архивирование журнала отката(Redo log). Oracle автоматически архивирует файлы истории, если включен режим ARCHIVELOG.

Parameter Files (Конфигурационные файлы)
Конфигурационные файлы хранят список настроек базы данных. Oracle рекомендует создавать серверный конфигурационный файл (SPFILE) как динамическое средство поддержки инициализационных параметров.

Alert and Trace Log Files (Файлы трассировки и аварийных сообщений)
Каждый сервер и фоновые процессы могут вести специальные трассировочные файлы (файлы историй). Когда в процессе появляется ошибка, он делает дамп отладочной информации и сохраняет его в трассировочный файл. Часть этой информации предназначена для администратора базы данных, а другая часть для службы поддержки Oracle. Трассировочные файлы также используются и для настройки производительности.

Alert File или Alert Log (файлы с сообщениями об ошибках)
Это специализированные трассировочные файлы, в которые сервер сохраняет сообщения об ошибках.

Backup Files (Файлы резервных копий)
Чтобы восстановить файл, его надо заменить резервной копией. Обычно, восстановление требуется после аппаратного сбоя или ошибочного действия пользователя, приведшего к повреждению или удалению оригинально файла. Процесс создания резервных копий и последующего восстановления может быть ручным, в этом случае вам самостоятельно придется делать актуальные резервные копии, чтобы ими можно было воспользоваться. Создание резервных копий можно поручить серверу, в этом случае рутинные процессы будут автоматизированы.

Замечания читателей

Замечание №1

1. Не могу согласится с трактовкой Redo Log Files как "Файлы истории отката". В данных файлах фиксируются изменения, как вы и сами пишете ниже по тексту, но никак не "откаты" (данные об отмене изменений). Кроме того существует устоявшиеся русские термины "журнал повторного выполнения" или "журнал транзакций", которые, как мне кажется, вполне точно отражают назначение данного элемента физической структуры БД Oracle. В литературе также используется выражение "накатить транзакцию" в противовес выражению "откатить транзакцию". Накат (или повторное выполнение транзакций) как раз и выполняется с помощью журнала транзакций (повторного выполнения) при восстановлении после сбоя экземпляра.

2. Archive Log Files (Файлы истории архивирования) точнее было бы перевести как "архив журналов повторного выполнения". Заметьте, что смысл совсем другой.

Ренат Шакеров wg_driller@mail.ru

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

Петрелевич Сергей
petrelevich@yandex.ru

Метки: Oracle Concepts  

Комментарии.

Внимание.
Комментировать могут только зарегистрированные пользователи.
Возможно использование следующих HTML тегов: <a>, <b>, <i>, <br>.