На заметку! Хотя по умолчанию файл SPFILE находится в каталоге $ORACLE_HOME/dbs, его можно помещать в любом месте, если указать размещение файла параметров инициализации посредством параметра SPFILE.
Динамическое представление V$SPPARAMETER аналогично представлению V$PARAMETER и служит для записи всех имен параметров инициализации и их значений при использовании файла SPFILE вместо init.ora.
Создание файла параметров сервера
Oracle позволяет использовать традиционный файл init.ora (или PFILE) в качестве файла конфигурации. Однако рекомендуется также для всех баз данных создавать и работать с файлом SPFILE. Файл SPFILE можно создать из init.ora. Этот процесс очень прост.
Вначале нужно зарегистрироваться в качестве пользователя с полномочиями SYSDBA или SYSOPER. Затем выдайте следующую команду, в которой PFILE — файл init.ora новой базы данных (initnina.ora):
SQL> CREATE spfile
FROM
pfile = '/u03/app/oracle/dbs/initnina.ora';
File created.
SQL>
Внимание! После того как файл SPFILE создан, последующие запросы для его создания из файла init.ora будут перезаписывать существующий файл SPFILE.
Приведенная команда создаст файл SPFILE в заданном по умолчанию каталоге ($ORACLE_HOME/dbs). Файл получит имя spfilenina.ora. Файл SPFILE можно создать, присваивая ему явное имя, как показано в следующем примере:
SQL> CREATE spfile = '/u03/app/oracle/dbs/nina_spfile.ora'
FROM
pfile = '/u03/app/oracle/dbs/initnina.ora';
Если нужно, чтобы был создан файл SPFILE из init.ora, и оба файла размещаются в своих заданных по умолчанию местоположениях ($ORACLE_HOME/dbs), можно просто запустить следующую команду:
SQL> CREATE spfile FROM pfile;
File created.
SQL>
Можно также создать новый файл init.ora из файла SPFILE в заданном по умолчанию каталоге, используя такую команду:
SQL> CREATE pfile FROM spfile;
File created.
SQL>
Если теперь перезапустить базу данных, экземпляр будет запущен с использованием нового файла SPFILE. Программа Oracle осуществит поиск списков параметров инициализации в заданных по умолчанию местоположениях в следующем порядке и применит первый из найденных списков.
Выполнит поиск файла spfile$ORACLE_SID.ora в заданном по умолчанию каталоге.
Выполнит поиск файла spfile.ora в заданном по умолчанию каталоге.
Выполнит поиск традиционного файла init.ora с именем init$ORACLE_SID.ora в заданном по умолчанию каталоге.
Совет. Хотя текстовый файл init.ora можно изменять любым удобным способом, не изменяйте файл SPFILE непосредственно. Это приведет к его повреждению, и запуск экземпляра может оказаться невозможным при следующей попытке использования файла SPFILE!
Создание файла SPFILE из файла init.ora не означает, что файл init.ora больше нельзя использовать. Если нужно запустить экземпляр с применением исходного файла init.ora, это можно сделать, как и раньше, указав его явно:
SQL> STARTUP PFILE='/u01/app/oracle/product/10.1.0.2.0/dbs/initnina.ora';
Однако в приведенном примере нельзя указать файл SPFILE вместо PFILE — Oracle не позволит указать SPFILE непосредственно в команде STARTUP. Тем не менее, это можно сделать косвенно, используя файл PFILE (init.ora), содержащий всего один параметр инициализации — SPFILE:
spfile = '/u01/app/oracle/product/10.1.0.2.0/dbs/spfilenina.ora'
После создания этого нового файла init.ora переменную PFILE можно указать в команде STARTUP, как было показано ранее.
Содержимое файла SPFILE (названного SPFILEnina.ora), который был создан из файла initnina.ora, приведено в листинге 10.8.
*.compatible='11.1.0.6'
*.control_files='/u01/app/oracle/oradata/nina/control1.ctl',
'/u01/app/oracle/oradata/nina/control2.ctl'
*.cursor_sharing='force'
*.db_block_size=8192
*.db_domain='world'
*.db_file_multiblock_read_count=16
*.db_files=1000
* db_flashback_retention_target=720 *.db_name='nina'
*.db_recovery_file_dest='/u02/app/oracle/flash_recov_area'
*.db_recovery_file_dest_size=1000M
* instance_type='RDBMS' *.log_archive_dest_1='LOCATION=/u02/app/oracle/arch/'
*.log_archive_format='log%t_%s_%r.arc'
*.pga_aggregate_target=1000M
*.processes=600
*.remote_login_passwordfile='none'
*.resumable_timeout=1800
*.sga_target=300M
*.statistics_level='typical'
*.undo_management='auto'
*.undo_retention=7200
*.undo_tablespace='undotbs_01'
*.
Совет. Администраторы баз данных привыкли помещать комментарии в файл init.ora, но файл SPFILE не будет содержать строки комментариев из init.ora. Тем не менее, файл SPFILE будет сохранять комментарии, помещенные в файл init.ora в одной строке с параметром (например, CURSOR_SHARING=false # комментарий).
Установка диапазона динамических изменений параметров
Теперь мы располагаем файлом SPFILE, который содержит все параметры инициализации, и можем управлять тем, будут ли любые изменения параметров инициализации сохраняться в SPFILE. Как только SPFILE создан, специальную конструкцию SCOPE можно использовать в качестве составной части всех команд ALTER SYSTEM, которая будет определять, будут ли сохраняться изменения. Конструкция SCOPE может принимать одно из следующих трех значений:
Когда конструкция SCOPE установлена в MEMORY, изменения являются всего лишь временными и утрачиваются при перезапуске базы данных. Когда SCOPE установлена в BOTH, все динамические изменения записываются в SPFILE и немедленно становятся действующими в экземпляре. Когда SCOPE установлена в SPFILE, изменения не применяются немедленно, а только записываются в SPFILE. Динамические и статические параметры конфигурации вступают в действие только после следующего запуска базы данных. Если экземпляр базы данных запускается с применением SPFILE, по умолчанию Oracle использует вариант SCOPE=BOTH.
Do'stlaringiz bilan baham: |