1 added
1 removed
Original
2026-01-01
Modified
2026-03-10
1
<p><strong>Oracle Database</strong>- это объектно-реляционная СУБД (система управления базами данных), созданная компанией Oracle. В настоящее время она имеет множество разных версий и типов. Однако в этой статье мы поговорим не о видах баз данных Oracle, а о структуре и основных концепциях, которые относятся к СУБД Oracle Database. Поняв архитектуру СУБД Oracle, вы заложите фундамент, необходимый для понимания прочих средств (а они весьма обширны), предоставляемых базой данных Oracle.</p>
1
<p><strong>Oracle Database</strong>- это объектно-реляционная СУБД (система управления базами данных), созданная компанией Oracle. В настоящее время она имеет множество разных версий и типов. Однако в этой статье мы поговорим не о видах баз данных Oracle, а о структуре и основных концепциях, которые относятся к СУБД Oracle Database. Поняв архитектуру СУБД Oracle, вы заложите фундамент, необходимый для понимания прочих средств (а они весьма обширны), предоставляемых базой данных Oracle.</p>
2
<h2>Базы данных Oracle: экземпляры и сущности</h2>
2
<h2>Базы данных Oracle: экземпляры и сущности</h2>
3
<p>СУБД Oracle Database включает в себя физические и логические компоненты. Особого упоминания заслуживает понятие экземпляра. Замечено, что некоторые используют термины "база данных" и "экземпляр" в качестве синонимов. Да, это взаимосвязанные, но всё же разные вещи. База данных в терминологии Oracle - это физическое хранилище информации, а экземпляр - это программное обеспечение, которое работает на сервере и предоставляет доступ к информации, содержащейся в базе данных Oracle. Экземпляр исполняется на конкретном сервере либо компьютере, в то самое время как база данных хранится на дисках, подключённых к этому серверу:</p>
3
<p>СУБД Oracle Database включает в себя физические и логические компоненты. Особого упоминания заслуживает понятие экземпляра. Замечено, что некоторые используют термины "база данных" и "экземпляр" в качестве синонимов. Да, это взаимосвязанные, но всё же разные вещи. База данных в терминологии Oracle - это физическое хранилище информации, а экземпляр - это программное обеспечение, которое работает на сервере и предоставляет доступ к информации, содержащейся в базе данных Oracle. Экземпляр исполняется на конкретном сервере либо компьютере, в то самое время как база данных хранится на дисках, подключённых к этому серверу:</p>
4
<p>При этом база данных Oracle является<strong>физической сущностью</strong>, состоящей из файлов, которые хранятся на дисках. В то же самое время, экземпляр - это<strong>сущность логическая</strong>, состоящая из структур в оперативной памяти и процессов, которые работают на сервере. Экземпляр может являться частью только одной базы данных. При этом с одной базой данных бывает ассоциировано несколько экземпляров. Экземпляр ограничен по времени жизни, тогда как БД, условно говоря, может существовать вечно.</p>
4
<p>При этом база данных Oracle является<strong>физической сущностью</strong>, состоящей из файлов, которые хранятся на дисках. В то же самое время, экземпляр - это<strong>сущность логическая</strong>, состоящая из структур в оперативной памяти и процессов, которые работают на сервере. Экземпляр может являться частью только одной базы данных. При этом с одной базой данных бывает ассоциировано несколько экземпляров. Экземпляр ограничен по времени жизни, тогда как БД, условно говоря, может существовать вечно.</p>
5
<p>Также стоит заметить, что у пользователей нет прямого доступа к информации, которая хранится в базе данных Oracle - они должны запрашивать эту информацию у экземпляра Oracle.</p>
5
<p>Также стоит заметить, что у пользователей нет прямого доступа к информации, которая хранится в базе данных Oracle - они должны запрашивать эту информацию у экземпляра Oracle.</p>
6
<p>Если упрощённо, то экземпляр - это мост к базе данных, а сама БД - это остров. Когда экземпляр запущен, мост работает, а данные способны попадать в базу данных Oracle и покидать её. Если мост перекрыт (экземпляр остановлен), пользователи не могут обращаться к базе данных, несмотря на то, что физически она никуда не исчезла.</p>
6
<p>Если упрощённо, то экземпляр - это мост к базе данных, а сама БД - это остров. Когда экземпляр запущен, мост работает, а данные способны попадать в базу данных Oracle и покидать её. Если мост перекрыт (экземпляр остановлен), пользователи не могут обращаться к базе данных, несмотря на то, что физически она никуда не исчезла.</p>
7
<h2>Структура базы данных Oracle</h2>
7
<h2>Структура базы данных Oracle</h2>
8
<p>База данных Oracle включает в себя: - табличные пространства; - управляющие файлы; - журналы; - архивные журналы; - файлы трассировки изменения блоков; - ретроспективные журналы; - файлы резервных копий (RMAN).</p>
8
<p>База данных Oracle включает в себя: - табличные пространства; - управляющие файлы; - журналы; - архивные журналы; - файлы трассировки изменения блоков; - ретроспективные журналы; - файлы резервных копий (RMAN).</p>
9
<h3>Табличные пространства Oracle</h3>
9
<h3>Табличные пространства Oracle</h3>
10
<p>Любые данные, которые хранятся в базе данных Oracle, просто обязаны существовать в каком-либо<strong>табличном пространстве</strong>. Под табличным пространством (tablespace) понимают логическую структуру, то есть вы не сможете попросить ОС показать вам табличное пространство Oracle.</p>
10
<p>Любые данные, которые хранятся в базе данных Oracle, просто обязаны существовать в каком-либо<strong>табличном пространстве</strong>. Под табличным пространством (tablespace) понимают логическую структуру, то есть вы не сможете попросить ОС показать вам табличное пространство Oracle.</p>
11
<p>При этом каждое табличное пространство включает в себя физические структуры, называемые<strong>файлами данных</strong>(data files). Одно табличное пространство Oracle способно содержать один либо несколько файлов данных, в то время как каждый файл данных может принадлежать лишь одному tablespace. Создавая таблицу, мы можем указать, в какое именно табличное пространство мы её поместим - Oracle находит для неё место в каком-нибудь из файлов данных, которые составляют указанное табличное пространство.</p>
11
<p>При этом каждое табличное пространство включает в себя физические структуры, называемые<strong>файлами данных</strong>(data files). Одно табличное пространство Oracle способно содержать один либо несколько файлов данных, в то время как каждый файл данных может принадлежать лишь одному tablespace. Создавая таблицу, мы можем указать, в какое именно табличное пространство мы её поместим - Oracle находит для неё место в каком-нибудь из файлов данных, которые составляют указанное табличное пространство.</p>
12
<p>На рисунке ниже вы можете посмотреть на соотношение между файлами данных и табличными пространствами в базе данных Oracle.</p>
12
<p>На рисунке ниже вы можете посмотреть на соотношение между файлами данных и табличными пространствами в базе данных Oracle.</p>
13
<p>Создавая новую таблицу, мы можем поместить её в табличное пространство DATA1 либо DATA2. Таким образом, физически наша таблица окажется в одном из файлов данных, которые составляют указанное табличное пространство.</p>
13
<p>Создавая новую таблицу, мы можем поместить её в табличное пространство DATA1 либо DATA2. Таким образом, физически наша таблица окажется в одном из файлов данных, которые составляют указанное табличное пространство.</p>
14
<h3>Файлы базы данных Oracle</h3>
14
<h3>Файлы базы данных Oracle</h3>
15
<p>База данных Oracle может включать в себя физические файлы 3-х основных типов: • control files - управляющие файлы; • data files - файлы данных; • redo log files - журнальные файлы либо журналы.</p>
15
<p>База данных Oracle может включать в себя физические файлы 3-х основных типов: • control files - управляющие файлы; • data files - файлы данных; • redo log files - журнальные файлы либо журналы.</p>
16
<p>Посмотрим на отношения между ними:</p>
16
<p>Посмотрим на отношения между ними:</p>
17
<p>В управляющих файлах содержится информация о местонахождении других физических файлов, которые составляют базу данных Oracle, - речь идёт о файлах данных и журналов. Также там хранится важная информация о содержимом и состоянии БД Oracle. Что это за информация: • имя базы данных Oracle; • время создания БД; • имена и местонахождение журнальных файлов и файлов данных; • информация о табличных пространствах; • информация об архивных журналах; • история журналов, порядковый номер текущего журнала; • информация о файлах данных в автономном режиме; • информация о резервных копиях, контрольных точках, копиях файлов данных.</p>
17
<p>В управляющих файлах содержится информация о местонахождении других физических файлов, которые составляют базу данных Oracle, - речь идёт о файлах данных и журналов. Также там хранится важная информация о содержимом и состоянии БД Oracle. Что это за информация: • имя базы данных Oracle; • время создания БД; • имена и местонахождение журнальных файлов и файлов данных; • информация о табличных пространствах; • информация об архивных журналах; • история журналов, порядковый номер текущего журнала; • информация о файлах данных в автономном режиме; • информация о резервных копиях, контрольных точках, копиях файлов данных.</p>
18
-
<p>При этом функция управляющих файлов не ограничивается хранением важной информации, нужной при запуске экземпляра, - полезны они и в процессе удалении БД Oracle. К примеру, уже с версии Oracle Database 10g можно посредством команды DROP DATABASE удалить все файлы, которые перечислены в управляющем файле БД, включа�� сам управляющий файл.</p>
18
+
<p>При этом функция управляющих файлов не ограничивается хранением важной информации, нужной при запуске экземпляра, - полезны они и в процессе удалении БД Oracle. К примеру, уже с версии Oracle Database 10g можно посредством команды DROP DATABASE удалить все файлы, которые перечислены в управляющем файле БД, включая сам управляющий файл.</p>
19
<h2>Инициализация СУБД Oracle</h2>
19
<h2>Инициализация СУБД Oracle</h2>
20
<p>Когда вы запускаете экземпляр Oracle, происходит считывание параметров инициализации. Параметры определяют, каким образом базе данных Oracle следует использовать физическую инфраструктуру и прочую конфигурационную информацию об экземпляре.</p>
20
<p>Когда вы запускаете экземпляр Oracle, происходит считывание параметров инициализации. Параметры определяют, каким образом базе данных Oracle следует использовать физическую инфраструктуру и прочую конфигурационную информацию об экземпляре.</p>
21
<p>Как правило, инициализационные параметры хранятся в файле параметров инициализации экземпляра (обычно это INIT.ORA) либо, начиная с Oracle9i, в репозитории, называемом файлом параметров сервера (SPFILE). С выходом каждой новой версии Oracle число обязательных параметров инициализации уменьшается.</p>
21
<p>Как правило, инициализационные параметры хранятся в файле параметров инициализации экземпляра (обычно это INIT.ORA) либо, начиная с Oracle9i, в репозитории, называемом файлом параметров сервера (SPFILE). С выходом каждой новой версии Oracle число обязательных параметров инициализации уменьшается.</p>
22
<p>Кстати, в дистрибутиве Oracle можно найти пример файла инициализации, который пригоден для запуска базы данных. Также можно воспользоваться специальной программой Database Configuration Assistant (DCA) - она подскажет обязательные значения.</p>
22
<p>Кстати, в дистрибутиве Oracle можно найти пример файла инициализации, который пригоден для запуска базы данных. Также можно воспользоваться специальной программой Database Configuration Assistant (DCA) - она подскажет обязательные значения.</p>
23
<p>Вот, к примеру, как выглядит список обязательных параметров инициализации для СУБД Oracle Database 11g: 1. Местонахождение управляющих файлов - CONTROLFILES. 2. Локальное имя БД - DB_NAME. 3. Имя домена БД Oracle - DBDOMAIN. 4. Местонахождение архивного журнала - LOGARCHIVEDEST. 5. Параметр, который включает архивирование журналов - LOG_ARCHIVE_DEST_STATE. 6. Местонахождение области быстрого восстановления - DBRECOVERYFILEDEST. 7. Наибольший размер области быстрого восстановления БД Oracle в байтах -DBRECOVERYFILEDESTSIZE. 8. Размер блока БД в байтах - DBBLOCKSIZE. 9. Наибольшее количество процессов ОС, которые обслуживают одновременный доступ к СУБД Oracle - PROCESSES. 10. Наибольшее число сеансов работы с БД - SESSIONS. 11. Наибольшее количество открытых курсоров в базе данных - OPEN_CURSORS. 12. Наименьшее количество разделяемых серверов базы данных Oracle - SHARED_SERVERS. 13. Имя удалённого прослушивателя - REM O TE_LI S TENER. 14. Версия СУБД Oracle, с которой должна поддерживаться совместимость - COMPATIBLE. 15. Размер области памяти, которая автоматически выделяется для PGA и SGA экземпляра - MEMORY_TARGET. 16. Время ожидания возможности установить монопольную блокировку до отправки сообщения об ошибке (для команд DDL) - DDLLOCKTIMEOUT. 17. Язык, который определён в подсистеме поддержки национальных языков для базы данных Oracle - NLS_LANGUAGE. 18. Территория, которая определена в подсистеме поддержки национальных языков для БД - NLS_TERRITORY.</p>
23
<p>Вот, к примеру, как выглядит список обязательных параметров инициализации для СУБД Oracle Database 11g: 1. Местонахождение управляющих файлов - CONTROLFILES. 2. Локальное имя БД - DB_NAME. 3. Имя домена БД Oracle - DBDOMAIN. 4. Местонахождение архивного журнала - LOGARCHIVEDEST. 5. Параметр, который включает архивирование журналов - LOG_ARCHIVE_DEST_STATE. 6. Местонахождение области быстрого восстановления - DBRECOVERYFILEDEST. 7. Наибольший размер области быстрого восстановления БД Oracle в байтах -DBRECOVERYFILEDESTSIZE. 8. Размер блока БД в байтах - DBBLOCKSIZE. 9. Наибольшее количество процессов ОС, которые обслуживают одновременный доступ к СУБД Oracle - PROCESSES. 10. Наибольшее число сеансов работы с БД - SESSIONS. 11. Наибольшее количество открытых курсоров в базе данных - OPEN_CURSORS. 12. Наименьшее количество разделяемых серверов базы данных Oracle - SHARED_SERVERS. 13. Имя удалённого прослушивателя - REM O TE_LI S TENER. 14. Версия СУБД Oracle, с которой должна поддерживаться совместимость - COMPATIBLE. 15. Размер области памяти, которая автоматически выделяется для PGA и SGA экземпляра - MEMORY_TARGET. 16. Время ожидания возможности установить монопольную блокировку до отправки сообщения об ошибке (для команд DDL) - DDLLOCKTIMEOUT. 17. Язык, который определён в подсистеме поддержки национальных языков для базы данных Oracle - NLS_LANGUAGE. 18. Территория, которая определена в подсистеме поддержки национальных языков для БД - NLS_TERRITORY.</p>
24
<p>Более подробную информацию смотрите в<a>официальной документации</a>для СУБД Oracle Database.</p>
24
<p>Более подробную информацию смотрите в<a>официальной документации</a>для СУБД Oracle Database.</p>
25
25