Oracle Database: обзор базы данных

Oracle Database: обзор базы данных
Илья Дергунов

Илья Дергунов

Автор статьи. ИТ-специалист с 20 летним стажем, автор большого количества публикаций на профильную тематику (разработка ПО, администрирование, новостные заметки). Подробнее.

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

 

Базы данных и экземпляры Oracle

Многие пользователи Oracle Database употребляют термины экземпляр и база данных как синонимы. На самом деле это разные (хотя и взаимосвязанные) вещи. Различие существенно, так как проливает свет на архитектуру Oracle.

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

Взаимосвязь экземпляра и базы Oracle Database

Рис. 1. Экземпляр и база данных

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

Например, Oracle использует область разделяемой памяти System Global Area (SGA, системная глобальная область) и области памяти в каждом процессе – Program Global Area (PGA, программная глобальная область). Экземпляр может быть частью одной и только одной базы данных. Напротив, с одной базой данных может быть ассоциировано несколько экземпляров. Время жизни экземпляров ограничено, тогда как база данных при должном обслуживании может существовать вечно.

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

В реальном мире есть хорошая аналогия экземплярам и базам данных. Можно считать экземпляр мостом к базе данных, а саму ее – островом. Транспорт попадает на остров и уходит с него по мосту. Если мост перекрыт, то остров на месте, но транспорту туда не попасть. В терминологии Oracle, если экземпляр запущен, то данные могут попадать в базу и уходить из нее. Физическое состояние базы данных при этом изменяется. Если же экземпляр остановлен, то пользователи не могут обращаться к базе данных, пусть даже физически она никуда не делась. База данных в этом случае статична, никаких изменений в ней не происходит. Экземпляр снова запущен – и данные тут как тут.

 

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

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

 

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

Любые данные, хранящиеся в базе Oracle, должны находиться в каком-то табличном пространстве. Табличное пространство (tablespace) – это логическая структура; нельзя попросить операционную систему показать вам табличное пространство. Каждое табличное пространство состоит из физических структур, называемых файлами данных (data files). В одном табличном пространстве может быть один или несколько файлов данных, тогда как каждый файл данных принадлежит ровно одному табличному пространству. При создании таблицы можно указать, в какое табличное пространство ее поместить. Тогда Oracle найдет для нее место в одном из файлов данных, составляющих указанное табличное пространство.

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

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

Начиная с версии Oracle Database 10g Release 2 для всех типов таблиц по умолчанию подразумеваются локально управляемые табличные пространства. В таком табличном пространстве можно создавать большие файлы, то есть при работе в 64-разрядных системах задействуется возможность создавать сверхбольшие файлы.

Табличные пространства и файлы данных

Рис. 2. Табличные пространства и файлы данных Oracle

В Oracle9i появился механизм файлов, управляемых Oracle (Oracle Managed Files, OMF), позволяющий автоматически создавать, именовать и, если понадобится, удалять все файлы, составляющие базу дан­ных. OMF упрощает обслуживание базы данных, поскольку не нужно помнить имена всех составляющих ее файлов. К тому же не возникают проблемы из-за ошибок человека, ответственного за именование фай­лов. Начиная с версии Oracle Database 10g сочетание OMF и таблич­ных пространств с большими файлами делает работу с файлами дан­ных совершенно прозрачной.

Максимальное количество файлов данных в базе Oracle - 64 000. По­скольку табличное пространство с большими файлами может содер­жать файл, который в 1024 раза больше файла в табличном пространст­ве с малыми файлами, а размер блока в табличном пространстве с боль­шими файлами для 64-разрядных операционных систем составляет 32 Кбайт, общий размер базы данных Oracle может достигать 8 экза­байт (1 экзабайт = 1 000 000 терабайт). Табличные пространства с большими файлами предназначены для использования совместно с подсис­темой автоматического управления хранением Automatic Storage Ma­nagement (ASM), иными менеджерами логических томов, поддержи­вающими расслоение, и RAID-массивами.

 

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

База данных Oracle состоит из физических файлов трех основных ти­пов:

  • управляющие файлы (control files);
  • файлы данных (datafiles);
  • журнальные файлы, или журналы (redo log files).

На рис. 3 показаны эти три типа файлов и отношения между ними.

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

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

 Файлы, составляющие базу данных

 Рис. 3. Файлы, составляющие базу данных

Управляющие файлы не только содержат важную информацию, необ­ходимую при запуске экземпляра, они полезны и при удалении базы данных. Начиная с версии Oracle Database 10g с помощью команды DROP DATABASE можно удалить все файлы, перечисленные в управ­ляющем файле базы данных, а также сам управляющий файл.

Инициализация базы данных

 

При запуске экземпляра Oracle считываются параметры инициализа­ции. Они определяют, как база данных должна использовать физиче­скую инфраструктуру и иную конфигурационную информацию об эк­земпляре. Параметры инициализации хранятся в файле параметров инициализации экземпляра, который обычно называют просто INIT.ORA, или, начиная с версии Oracle9i, в репозитории, который на­зывается файлом параметров сервера (или SPFILE). Количество обяза­тельных параметров инициализации уменьшается с выходом каждой новой версии Oracle. В дистрибутиве Oracle есть пример файла инициа­лизации, пригодный для запуска базы данных. Либо можно воспользо­ваться программой Database Configuration Assistant (DCA), которая подскажет обязательные значения (например, имя базы данных).

Вот обязательные параметры инициализации для версии Oracle Data­base 11g:

CONTROLFILES

Местонахождение управляющих файлов.

DB_NAME

Локальное имя базы данных.

DBDOMAIN

Имя домена базы данных (например, us.companyname.com).

LOGARCHIVEDEST

Местонахождение архивного журнала.

LOG_ARCHIVE_DEST_STATE

Параметр, включающий архивирование журналов.

DBRECOVERYFILEDEST

Местонахождение области быстрого восстановления (flash recovery area) (каталог, файловая система или группа дисков ASM).

DBRECOVERYFILEDESTSIZE

Максимальный размер области быстрого восстановления базы дан­ных в байтах.

DBBLOCKSIZE

Размер блока базы данных в байтах (например, для 4 Кбайт указы­вается значение 4096).

PROCESSES

Максимальное число процессов операционной системы, обслужи­вающих одновременный доступ к базе данных.

SESSIONS

Максимальное число сеансов работы с базой данных.

OPEN_CURSORS

Максимальное число открытых в базе данных курсоров.

SHARED_SERVERS

Минимальное число разделяемых серверов базы данных.

REM O TE_LI S TENER

Имя удаленного прослушивателя.

COMPATIBLE

Версия базы данных, с которой должна поддерживаться совмести­мость, в тех случаях, когда то или иное средство затрагивает фор­мат файла (например, 11.1.0, 10.0.0).

MEMORY_TARGET

Размер области памяти, автоматически выделяемой для SGA и PGA экземпляра.

DDLLOCKTIMEOUT

Для команд языка определения данных (DDL) - время (в секундах) ожидания возможности установить монопольную блокировку, пре­жде чем сообщить об ошибке.

NLS_LANGUAGE

Язык, определенный в подсистеме поддержки национальных язы­ков (National Language Support, NLS) для базы данных.

NLS_TERRITORY

Территория, определенная в подсистеме поддержки национальных языков для базы данных.

В качестве признака взятого курса на автоматизацию отметим, что в версии Oracle Database 11g параметр UNDO_MANAGEMENT по умол­чанию устанавливается в режим автоматического управления откатом (undo). Механизм отката применяется при откате транзакций, а также для восстановления базы данных, обеспечения согласованности по чтению и реализации ретроспекции. (Однако записи о повторном вы­полнении располагаются в физических журналах повтора, или нака­та, redo log; в них хранятся изменения, произведенные в сегментах данных и блоках сегментов отката, там же хранится таблица транзак­ций для сегментов отката.) Время хранения информации для отката Oracle теперь подбирает автоматически, исходя из того, как сконфигу­рировано табличное пространство отката.

Изучите поставляемую с вашей версией СУБД документацию в части дополнительных параметров инициализации, поскольку эта информа­ция изменяется от версии к версии.

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

Проверка оставшегося свободног...
Проверка оставшегося свободног... 3445 просмотров Александров Попков Tue, 21 Nov 2017, 13:18:46
Oracle изменения изменений!
Oracle изменения изменений! 2430 просмотров Stas Belkov Tue, 21 Nov 2017, 13:18:46
Разница между базой данных и э...
Разница между базой данных и э... 2356 просмотров Александров Попков Tue, 21 Nov 2017, 13:18:46
Версии СУБД Oracle Database 10...
Версии СУБД Oracle Database 10... 3990 просмотров Илья Дергунов Sat, 11 Aug 2018, 11:43:08
Войдите чтобы комментировать

OraDevel аватар
OraDevel ответил в теме #9412 11 авг 2019 15:03

Ждем обзор новой версии - базы данных Oracle 18c ;-)

Илья, спасибо за статью. Да, новшества в Оракл 18С серьезные. Ждем обзор! Ждем именно от Вас, да?
ildergun аватар
ildergun ответил в теме #9149 01 сен 2018 10:58
Ждем обзор новой версии - базы данных Oracle 18c ;-)