Программирование >>  Oracle 

1 ... 20 21 22 [ 23 ] 24 25 26 ... 469


Файлы параметров

С базой данных Oracle связано много файлов параметров: от файла TNSNAMES.ORA на клиентской рабочей станции (используемого для поиска сервера) и файла LISTENER.ORA на сервере (для запуска процесса прослушивания Net8) до файлов SQLNET.ORA, PROTOCOL.ORA, NAMES.ORA, CMAN.ORA и LDAP.ORA. Наиболее важным является файл параметров инициализации экземпляра, потому что без него не удастся запустить экземпляр. Остальные файлы тоже важны; они связаны с поддержкой сети и обеспечением подключения к базе данных. Однако их рассмотрение в этом разделе они не будут. Сведения об их конфигурировании и настройке можно найти в руководстве OracleNet8 Administrators Guide. Обычно разработчик не настраивает эти файлы - они создаются администратором.

Файл параметров инициализации экземпляра обычно называют файлом init или файлом init.ora. Это название происходит от стандартного имени этого файла, - init<ORACLE SID>.ora. Например, экземпляр со значением SID, равным tkyte816, обычно имеет файл инициализации inittkyte816.ora. Без файла параметров инициализации нельзя запустить экземпляр Oracle. Поэтому файл этот достаточно важен. Однако, поскольку это обычный текстовый файл, который можно создать в любом текстовом редакторе, сохранять его ценой собственной жизни не стоит.

Для тех, кому незнаком термин SID или параметр ORACLE SID, представлю полное определение. SID - это идентификатор экземпляра (сайта). В ОС UNIX он хеши-руется совместно со значением ORACLE HOME (задающим каталог, в котором установлено ПО Oracle) для создания уникального ключа при подсоединении области SGA. Если значение ORACLE SID или ORACLE HOME задано неправильно, выдается сообщение об ошибке ORACLE NOT AVAILABLE, поскольку невозможно подключиться к сегменту разделяемой памяти, определяемому этим магическим ключом. В ОС Windows разделяемая память используется не так, как в ОС UNIX, но параметр SID все равно важен. В одном и том же базовом каталоге ORACLE HOME может быть несколько баз данных, так что необходимо иметь возможность уникально идентифицировать их и соответствующие конфигурационные файлы.

В Oracle файл init.ora имеет очень простую конструкцию. Он представляет собой набор пар имя параметра/значение. Файл init.ora может иметь такой вид:

db name = tkyte816 db block size = 8192

control files = ( C:\oradata\control01.ctl , C:\oradata\control02.ctl )

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



В файле параметров инициализации обычно содержится и много других параметров. Количество и имена параметров меняются с каждой новой версией. Например, в Oracle 8.1.5 б]л параметр plsql load without compile. Его не б1ло ни в одной из предыдущих версий и нет в последующих. В моих базах данных версий 8.1.5, 8.1.6 и 8.1.7 имеется, соответственно, 199, 201 и 203 различных параметра инициализации. Большинство параметров, например db block size, существует очень давно (они б1ли во всех версиях), но со временем необходимость во многих параметрах отпадает, так как меняется реализация. Если захочется прочитать об этих параметрах и разобраться, что они позволяют установить, обратитесь к руководству Oracle8i Reference. В первой главе этого руководства представлены официально поддерживаемые параметры инициализации.

Обратите внимание на слова официально поддерживаемые в предыдущем абзаце. Не поддерживаются (и не описаны в руководстве) параметры, имена которых начинаются с символа подчеркивания. Вокруг этих параметров много спекуляций: поскольку они не поддерживаются официально, значит, имеют магические свойства. Многие полагают, что эти параметры хорошо известны посвященным сотрудникам корпорации Oracle и используются ими. По моему мнению, все как раз наоборот. Их мало кто вообще знает и редко использует. Большинство из неописанных параметров - лишние, представляют устаревшие возможности или обеспечивают обратную совместимость. Другие помогают при восстановлении данных, но не всей базы данных: они позволяют запустить экземпляр в определенных экстремальных ситуациях, но лишь для извлечения данных - базу данных затем придется пересоздавать. Я не вижу смысла использовать неописанные параметры файла init.ora в реальной базе данных, если только этого не требует служба технической поддержки. Многие из них имеют побочные эффекты, которые могут оказаться разрушительными. В базе данных, которую я использую для разработки, установлен только один неописанный параметр:

TRACE FILES PUBLIC = TRUE

Это делает трассировочные файлы доступными всем, а не только членам группы dba. Я хочу, чтобы разработчики как можно чаще использовали установки SQL TRACE, TIMED STATISTICS и утилиту TKPROF (более того, я это требую), поэтому всем им необходимо читать трассировочные файлы. В производственной базе данных я неописанных параметров не использую.

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

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

init$ORACLE SID.ora (переменная среды Unix)

init%ORACLE SID%.оrа (переменная среды Windows)

Как правило, они находятся в каталогах

$ORACLE HOME/dbs (в ОС Unix)

%ORACLE HOME%\DATABASE (в ОС Windows)



Часто в файле параметров содержится всего одна строка примерно такого вида: IFILE= С:\oracle\admin\tkyte816\pfile\init. ora

Директива IFILE работает аналогично директиве препроцессора #include в языке С. Она вставляет в данном месте текущего файла содержимое указанного файла. В данном случае включается содержимое файла init.ora из нестандартного каталога.

Следует отметить, что файл параметров не обязательно должен находится в одном и том же стандартном месте. При запуске экземпляра можно использовать параметр pfile = имя файла. Это особенно полезно при попытке проверить результаты установки других значений для параметров.

Файлы данных

Файлы данных вместе с файлами журнала повторного выполнения являются наиболее важными в базе данных. Именно в них хранятся все данные. В каждой базе данных есть хотя бы один файл данных, но обычно их намного больше. Только самые простые, тестовые базы данных имеют один файл данных. В любой реальной базе данных должно быть минимум два файла данных: один - для системных данных (табличное пространство SYSTEM), другой - для пользовательских (табличное пространство USER). В этом разделе мы рассмотрим организацию файлов данных в Oracle и способы хранения данных в этих файлах. Но прежде надо разобраться, что такое табличное пространство, сегмент, экстент и блок. Все это - единицы выделения пространства под объекты в базе данных Oracle.

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

Сегменты, в свою очередь, состоят из одного или нескольких экстентов. Экстент - это непрерывный фрагмент пространства в файле. Каждый сегмент первоначально состоит хотя бы из одного экстента, причем для некоторых объектов требуется минимум два экстента (в качестве примера можно назвать сегменты отката). Чтобы объект мог вырасти за пределы исходного экстента, ему необходимо выделить следующий экстент. Этот экстент не обязательно должен выделяться рядом с первым; он может находиться достаточно далеко от первого, но в пределах экстента в файле пространство всегда непрерывно. Размер экстента варьируется от одного блока до 2 Гбайт.

Экстенты состоят из блоков. Блок - наименьшая единица выделения пространства в Oracle. В блоках и хранятся строки данных, индексов или промежуточные результаты сортировок. Именно блоками сервер Oracle обычно выполняет чтение и запись на диск. Блоки в Oracle бывают размером 2 Кбайт, 4 Кбайт или 8 Кбайт (хотя допустимы также блоки размером 16 Кбайт и 32 Кбайт). Отношения между сегментами, экстентами и блоками показаны на следующей схеме:



1 ... 20 21 22 [ 23 ] 24 25 26 ... 469

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика