Spfile oracle что это

Обновлено: 05.07.2024

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

Файлы параметров инициализации До Oracle 9i ORACLE всегда использовал PFILE для хранения параметров инициализации, который представляет собой текстовый файл.
Файлы параметров сервера. Начиная с Oracle 9i, Oracle представила файлы SPFILE, которые имеют двоичный формат и не могут быть изменены вручную.

1: Разница между PFILE и SPFILE

1: PFILE - это текстовый файл, а SPFILE - это двоичный формат. Файл PFILE можно открыть и вручную настроить с помощью текстового редактора, но SPFILE не может и может быть изменен только онлайн с помощью команд SQL. Разницу между ними можно увидеть в операционной системе, файл параметров инициализации - это текстовый файл ASCII, а SPFILE - это файл данных.

image

Многие задаются вопросом, почему SPFILE - это двоичный файл, но его можно просмотреть с помощью команды more? Следующим образом

Когда вы откроете этот файл в текстовом редакторе, вы обнаружите, что это действительно двоичный файл, как показано на следующем рисунке:

image

2: Модификация SPFILE может быть изменена онлайн с помощью команд SQL, и ручная модификация больше не требуется.Все изменения динамических параметров могут вступить в силу немедленно, в то время как изменение PFILE должно быть перезапущено, чтобы вступить в силу.

3: Создайте базу данных вручную вместо использования DBCA, когда вы начинаете создавать базу данных, вы можете определить только PFILE.

Три режима изменения параметров spfile:


scope = Немедленно и постоянно вступают в силу (режим по умолчанию)


В процессе начальной настройки параметров Oracle возникает путаница между PFILE и SPFILE. Все дело в том, что у них одинаковое предназначение и надо четко понимать какой вид конфигурационного файла использует ваш Oracle.

Хочу рассказать о преимуществах и недостатках SPFILE и PFILE. И показать как конвертировать один вид конфигурационного файла в другой и переключаться с SPFILE на PFILE и обратно.

Инициализационные файлы параметров: PFILE-ы против SPFILE-ов

После запуска экземпляра Oracle, его характеристики определяются набором параметров, указанных в инициализационном файле параметров. Эти параметры инициализации могут задаваться как в PFILE-е, так и в SPFILE-е. SPFILE используется, начиная с версии Oracle 9i. Все предыдущие релизы Oracle используют только PFILE-ы.

  • RMAN может сделать резервную копию SPFILE-а (PFILE можно сохранить только вручную).
  • Сокращаются возможные ошибки администратора. SPFILE управляется сервером. Параметры проверяются перед их применением.
  • Исчезают некоторые проблемы конфигурирования (например, вам не надо иметь локальный PFILE для запуска экземпляра Oracle с удаленной машины).
  • Легко найти - хранится в определенной директории.

Какая разница между PFILE-ом и SPFILE-ом:

PFILE - статичный, пользовательский текстовый файл, который редактируется стандартными текстовыми редакторами (например, "блокнот" или "vi"). Обычно этот файл находится на сервере, однако, для запуска Oracle с удаленной машины необходимо иметь локальную копию. АБД (Администраторы Баз Данных) обычно ссылаются на этот файл: INIT.ORA.

SPFILE (Server Parameter File), с другой стороны, постоянно находящийся на сервере бинарный файл, который может быть изменен только с помощью команды "ALTER SYSTEM SET". Это значит, что больше нет необходимости хранить локальную копию файла параметров для запуска экземпляра с удаленной машины. Редактирование SPFILE-а вручную повредит его, после чего он станет неработоспособным.

Как я могу узнать, что моя база данных использует PFILE или SPFILE:

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

Кроме того, вы можете воспользоваться представлением V$SPPARAMETER чтобы проверить, используете ли вы PFILE или нет: если столбец "value" имеет значение NULL для всех параметров, значит, вы используете PFILE.

Просмотр установок параметров:

Вы можете просмотреть значения параметров с помощью следующих методов (независимо от того, где они установлены - в PFILE или в SPFILE):

  • Команда "SHOW PARAMETERS" в SQL*Plus (напр., SHOW PARAMETERS timed_statistics)
  • Представление V$PARAMETER - содержит все текущие значения параметров
  • Представление V$PARAMETER2 - тоже содержит все текущие значения, но значения многозначных параметров разнесены в разные столбцы
  • Представление V$SPPARAMETER - содержит значения файла параметров, управляемого сервером (SPFILE)

Запуск экземпляра посредством PFILE или SPFILE:

Oracle ищет подходящий файл параметров в следующем порядке:

  • Пытается использовать файл spfile$.ora в директории $ORACLE_HOME/dbs (Unix) или ORACLE_HOME/database (Windows)
  • Пытается использовать файл spfile.ora в директории $ORACLE_HOME/dbs (Unix) или ORACLE_HOME/database (Windows)
  • Пытается использовать файл init$.ora в директории $ORACLE_HOME/dbs (Unix) or ORACLE_HOME/database (Windows)

Вы можете переопределить местонахождение PFILE, заданное по-умолчанию, указав параметр PFILE в команде запуска экземпляра:

SQL> STARTUP PFILE='/oradata/spfileORCL.ora'


Заметьте, что эквивалентной команды "STARTUP SPFILE background-color: white; margin-bottom: 1em; text-align: justify;"> SPFILE=/path/to/spfile

Изменение значений параметров в файле SPFILE:

PFILE можно отредактировать в любом простейшем текстовом редакторе, поскольку он имеет текстовый формат. SPFILE - это бинарный файл. Для изменения значений параметров в файле SPFILE используют команды "ALTER SYSTEM SET" и "ALTER SYSTEM RESET". Вот примеры:

Здесь опция SCOPE может принимать значения SPFILE, MEMORY или BOTH:

  • MEMORY: Новое значение параметра будет присвоено только текущему экземпляру. По-умолчанию используется именно эта опция, если при запуске (STARTUP) был использован PFILE.
  • SPFILE: изменить SPFILE, значение параметра будет применено при следующем запуске экземпляра.
  • BOTH: значение параметра будет изменено как в текущем экземпляре, так и в файле SPFILE. Эта опция используется по-умолчанию, если при запуске (STARTUP) был использован SPFILE. Опция COMMENT (необязательная) позволяет сохранить некий пользовательский комментарий.

Опция SID (необязательная, только при использовании RAC) указывает на экземпляр, для которого будет применено изменение соответствующего параметра (По-умолчанию * : для всех экземпляров).

Для задания значений многозначных параметров используйте следующий синтаксис:

SQL> ALTER SYSTEM SET utl_file_dir='/tmp/','/oradata','/home/' SCOPE=SPFILE;


Для задания недокументированных инициализационных параметров (по просьбе службы технической поддержки Oracle), используйте следующий синтаксис:

SQL> ALTER SYSTEM SET "_allow_read_only_corruption"=TRUE SCOPE=SPFILE;

Для того, чтобы удалить какой-либо параметр из файла SPFILE, используйте одну из следующих команд:

Конвертирование файлов PFILE и SPFILE:

Вы можете легко перейти от использования файла PFILE к файлу SPFILE (и наоборот). Выполните одну из следующих команд пользователем, имеющим привелегию SYSDBA или SYSOPER:


SQL> CREATE PFILE FROM SPFILE;
SQL> CREATE SPFILE FROM PFILE;


Также, вы можете указать свой путь для PFILE или SPFILE (или для обоих файлов). Взгляните на пример:

SQL> CREATE SPFILE='/oradata/spfileORCL.ora' from PFILE='/oradata/initORCL.ora';

Существует альтернативная процедура для изменения значений файла SPFILE, используя вышеуказанный метод:

Резервное копирование файла параметров:

RMAN (Oracle's Recovery Manager) сохраняет SPFILE вместе с управляющим файлом при установке "CONFIGURE CONTROLFILE AUTOBACKUP" в ON (по-умолчанию - OFF). PFILE не может быть скопирован с использованием RMAN. Вот пример:

Для восстановления файла SPFILE используйте такую команду:

От себя хочу добавить, что лучше на всякий случай подстраховаться и после внесения настроек конвертировать настройки в другой вид файла. И я бы не сказал, что SPFILE однозначно лучше PFILE. В PFILE куда проще внести изменения, особенно в критических ситуациях, когда базу требуется срочно запустить на более слабом сервере.

Oracle Instance

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

Обязательные файлы:

Необязательные файлы:

    (необязательные в том смысле, что база может быть настроена для работы без данных файлов) (Alertlog - если нет необходимости в изучении данных по ошибкам, можно удалить. Трассировочные файлы по умолчанию не создаются. Чтобы создавались, нужно включать трассировку и потом не забыть отключить) (По умолчанию не используются. Нужно специально создавать специальными командами.)

Файлы данных (Data Files)

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

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

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

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

Следующий запрос, покажет, где находятся файлы данных.

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

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

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

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

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

Управляющие файлы (Control Files)

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

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

Файлы параметров pfile, spfie (Parameter Files)

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

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

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

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

Как я могу узнать, что моя база данных использует PFILE или SPFILE?

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

Архивные файлы журналов повтора (Archive Log Files)

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

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

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

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

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

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

Файлы паролей (Password File)

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

Tags: Oracle Database, Файлы базы данных Oracle,

Oracle DBA

Лучше потратить какое-то количество времени, чтобы записать успешный опыт, чем потом повторно воспроизводить его по памяти.

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

Blue Flower

Инициализация Oracle: PFILE и SPFILE

В процессе запуска экземпляра Oracle, его параметры определяются инициализационным файлом параметров. Начиная с версии Oracle 9i в качестве файла параметров может быть как используемый во всех версиях текстовый файл, называемый pfile, так и не редактируемый непосредственно файл, называемый spfile (Server Parameter File).

Безусловно, spfile имеет ряд преимуществ, прежде всего в связи с уменьшением вероятности ошибок, так как задаваемые параметры проходят валидацию. Утилита rman может делать резервную копию spfile. Изменить spfile вы имеете право только используя команду ALTER SYSTEM SET .Но pfile нагляден, и позволяет быстрее оценить состояние сервера, так как вы имеете перед глазами весь набор используемы параметров не по умолчанию..
Для того, чтобы узнать какой файл использует экземпляр Oracle, можно выполнить следующий запрос

SQL>SELECT DECODE(value, NULL, 'PFILE', 'SPFILE') ftype FROM v$parameter WHERE name = 'spfile';

При запуске экземпляра Oracle ищет файл spfile$.ora в директории $ORACLE_HOME/dbs (Unix) или %ORACLE_HOME%/database (Windows). Если файл найден, то он и используется, иначе в этом же каталоге ищется файл spfile.ora . Если файл найден, то он и используется, иначе в этом же каталоге ищется файл init$.ora .
Вы по прежнему можете переопределить местонахождение PFILE, заданное по-умолчанию, указав его, например следующим образом в команде запуска экземпляра:

SQL> STARTUP PFILE='/opt/oracle/pfileORCL.ora'

В pfile может содержаться директива, отсылающая к spfile :
SPFILE=/opt/oracle/spfileORCL.ora
Таким образом Вы можете изменять расположение и имя spfile.

При использовании spfile у нас имеется возможность изменить значение динамических параметров во время работы экземпляра одновременно и в файле, и в экземпляре. Так же можно изменять только значение в файле.. Например, следующая команда изменяет только spfile
SQL> ALTER SYSTEM SET processes=150 SCOPE=SPFILE;

а следующая и в файле, и в экземпляре

SQL> ALTER SYSTEM SET timed_statistics=TRUE SCOPE=BOTH;

Параметр SCOPE может принимать значения SPFILE (новое значение параметра будет зафиксировано только в файле), MEMORY (новое значение параметра будет присвоено только текущему экземпляру) или BOTH (изменения и в экземпляре, и в файле).

Вы можете перейти от использования файла PFILE к файлу SPFILE (и наоборот). Для этого есть команды
SQL> CREATE PFILE FROM SPFILE;
SQL> CREATE SPFILE FROM PFILE;

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